Académique Documents
Professionnel Documents
Culture Documents
Orientacin a Objetos
La programacin orientada a objetos define los sistemas como un conjunto de objetos con comportamiento que interactan entre ellos. Cmo defino el comportamiento de los objetos? A travs de la definicin de las clases. Esto revierte en: Manera ms natural de encarar el diseo de un sistema. Concepto de modularidad. Mayor robustez. Mayor escalabilidad/extensibilidad.
Clase: Definicin de las propiedades y comportamiento de un tipo de objetos. Objeto: Entidades modulares con comportamiento segn el tipo especificado en su clase. Atributo: Caractersticas o propiedades de un objeto, se definen en su clase. Mtodo: Comportamiento de un objeto, se definen en su clase. Clase Atributos
public class Person { String name; String surname; Person (String nameArg, String surnameArg) { name = nameArg; surname = surnameArg; }
Objetos
Mtodo
Inicializacin: En el momento de creacin del objeto (new), se inicializan todos los atributos de ese objeto (0, ,false null).
Curso de Programacin Orientada a Objetos Sonia Abs JAVA- Orientacin a Objetos
Los mtodos de una clase pueden referenciar a los atributos de dicha clase sin utilizar la notacin .
public class GestionAlumnos { public static void main(String[] args) { Alumno a1 = new Alumno (Pepe,Prez); a1.setAddress(c/Villaroja 24 2A); } } public String String String class Alumno{ name; surname; adress;
public Alumno (String nameInput, String surnameInput) { name = nameInput; surname = surnameInput } public setAddress(String addressInput) { address = addressInput; } }
JAVA- Orientacin a Objetos
Person (String name, String surname) { this.name = name; this.surname = surname; } public String getFullName() { return getName() + " "+ getSurname(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSurname() { return surname; } public void setSurname(String surname) { this.surname = surname; }
Person.java
String name String surname String address String getName(); String getSurname(); String getAddress(); void setName(String name); void setSurname(String sname); void setAddress (String address);
Student.java
int curso int getCurso(); void setCurso( int curso);
public class Articulo { private float precio; public void setPrecio() { precio = 3.50; } public void setPrecio(float nuevoPrecio) { precio = nuevoPrecio; } }
Mtodos sobrecargados
Mtodos sobreescritos: Son aquellos mtodos que se definen en una subclase con el mismo nombre y mismos parmetros de entrada y retorno.
public class Animal { public void comer(){ System.out.println("Animal comiendo"); } } class Caballo extends Animal{ public void comer(){ System.out.println("Caballo comiendo"); } } public static void main(String[] args){ Animal a = new Animal(); Caballo c = new Caballo(); a.comer(); //Animal comiendo c.comer(); //Caballo comiendo }
En algunas ocasiones necesitamos invocar al mtodo escrito en la superclase en lugar de la versin que hemos sobreescrito, para ello se utiliza la palabra super
class Caballo extends Animal{ public void comer(){ super.comer(); } }
Curso de Programacin Orientada a Objetos Sonia Abs JAVA- Orientacin a Objetos
Los modificadores de acceso determinan la visibilidad de una clase o miembro de ella. Las clases pueden ser modificadas como public default (sin modificador explcito): Las clases public son visibles a todo el resto de clases. Las clases default son visibles slo dentro de su paquete (grupo de clases). Los miembros de las clases (propiedades y mtodos) pueden ser modificados como public -protected- default -private: Los miembros private son visibles slo dentro de la clase en la que se definen. Los miembros protected son visibles dentro de las clases del paquete al que pertenece la clase donde se definen y sus subclases. Protected = default + herencia
Class Y Y Y Y
Package Y Y Y
Subclass Y Y
World Y
no modifier
private
abstract
abstract
final final
static
Los miembros estticos (static) pertenecen a la clase y no son transferidos a los objetos. Su acceso es a partir del nombre de la clase, en vez de a la del objeto.
public class Person { private String name; private String surname; public static String CLASS_NAME = "PERSON"; public static void main(String[] args) { System.out.println(Person.CLASS_NAME); } }
Las clases final son aqullas que no se pueden heredar. E.g. clase String Las variables final (locales o de instancia) son aqullas cuyo valor slo puede ser asignado una vez. -> E.g.Constantes.
static final double PI = 3.141592653589793;
abstract
abstract
final final
Java no permite herencia mltiple; sin embargo, s permite implementar varios interfaces.
interface A { } interface B { } class X implements A, B { }