LP02
LP02
OOP
representan la interacción de las cosas en el
mundo real.
Riqueza y precisión
Objetivismo
(simulación)
• Abstracción
en la documentación de Mejor comunicación
Análisis y Diseño
Representación de
elementos conocidos
Entre técnicos y usuarios • Encapsulamiento
en el mundo real
• Herencia
Mayor capacidad para Herencia y
• Polimorfismo
construir software Mayor facilidad para
Reutilizacion de
complejo mantenimiento de
Código. No se altera
software
o solo lo diferente
Ing. Jesús Bernardo Olavarria Paz Ing. Jesús Bernardo Olavarria Paz
operaciones.
Ing. Jesús Bernardo Olavarria Paz Ing. Jesús Bernardo Olavarria Paz
1
OOP con Java OOP con Java
Herencia Polimorfismo
• La herencia define una relación entre clases donde una • Es la posibilidad de definir clases diferentes que tienen
clase comparte la estructura y/o el comportamiento métodos o atributos denominados de forma idéntica, pero
definido en una o más clases. que se comportan de manera distinta.
• Por ejemplo, podemos crear dos clases distintas: Pez y
Ave que heredan de la Clase Animal que tiene el método
abstracto mover que se implementa de forma diferente en
Pez y Ave.
Ing. Jesús Bernardo Olavarria Paz Ing. Jesús Bernardo Olavarria Paz
por sus características específicas. Los carros (las instancias de la clase “carro”)
Ing. Jesús Bernardo Olavarria Paz Ing. Jesús Bernardo Olavarria Paz
PERRO CLASE
public String nombre ;
raza, define public String raza ;
color... datos y Pe rro public String color ;
métodos nombre : String
come, raza : String public Perro ( String nombre ) {
color : String }
ladra...
Perro(nombre : String) public void comer ( ) {
comer() …
RAMBO OBJETO }
ladrar()
bulldog ocupa
gris espacio public void ladrar ( ) {
y …
dura un }
come caviar
ladra fuerte tiempo
}
Ing. Jesús Bernardo Olavarria Paz Ing. Jesús Bernardo Olavarria Paz
2
OOP con Java OOP con Java
Atributos y Estado Atributos
• Declaración
[acceso][static][final] tipo nombreAtributo [= valor_inicial];
Ing. Jesús Bernardo Olavarria Paz Ing. Jesús Bernardo Olavarria Paz
• Código que “entiende” y manipula el estado de un objeto. • Es un método que reserva recursos para las variables de
• Pueden ser llamados dentro de la clase o por otras clases. instancias de los objetos que se están creando.
• Es obligatorio indicar el tipo de retorno o void • Tiene el mismo nombre de la clase a la que pertenece.
• Es invocando al crear una instancia de la clase (objeto)
• Declaración: utilizando el operador new.
[acceso][static]tipoRetorno nombreMetodo ([Lista Parámetros]){
• Orientado a inicializar las variables.
//cuerpo del método • Puede tener varias implementaciones.
} • Pueden ser múltiples (SOBRECARGA).
• Invocación: Notación punto • Jamás retornan valor alguno.
objReceptor.nombreMetodo(argumentos); • Java siempre proporciona un constructor por defecto.
Ing. Jesús Bernardo Olavarria Paz Ing. Jesús Bernardo Olavarria Paz
• Cuando una clase tiene definido un método de diferentes • Un objeto es una instancia de una clase.
maneras. • La creación de un objeto se realiza en tres pasos.
• Estas pueden ser: – Declaración, proporcionar un nombre al objeto
– Diferente cantidad de parámetros, y/o Contador miContador; (null)
– Diferentes tipos de parámetros
– Instanciación, asignar memoria al objeto
• Por ejemplo: miContador = new Contador();
– método1(int x, int y): int
– Inicialización, opcionalmente se pueden proporcionar
– método1(int x, float y): int
valores iniciales a las variables de instancia del objeto en
– método1(int x): int la declaración o mediante CONSTRUCTORES.
Ing. Jesús Bernardo Olavarria Paz Ing. Jesús Bernardo Olavarria Paz