Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo...

31

Click here to load reader

Transcript of Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo...

Page 1: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Conceptos

Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico

Page 2: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Objeto

Representa una instancia de un elemento del mundo del problema

Es cualquier elemento que se pueda describir en términos de su estado y su comportamiento

Page 3: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Características de losObjetos Pueden ser:

Cosas Sencillos y Complejos Reales o imaginarios(conceptuales)

Ej. Cuenta bancaria, transacción, Juan, Leon,etc.

Page 4: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Implementación oculta

Representa elementos internos de un objeto que pueden ser dañadas por un cliente poco cuidadoso.=> ocultar la implementación disminuye errores.

El diseñador de bibliotecas puede cambiar el funcionamiento interno de la clase sin preocuparse sobre cómo afectará al programador cliente

Page 5: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Clases

Agrupa un conjunto de objetos del mundo del problema que tienen las mismas características y el mismo comportamiento

Son plantillas para crear objetos.Un objeto es una instancia de una clase Ej. Receta para hacer galletas de

chocolate. Con ella creas una o muchas galletas de chocolate

Page 6: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Atributo / Método

Atributos Métodos

Color

Placa

Capacidad

Arrancar()

Detenerse()

Recoger pasajeros()

Page 7: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Atributos

Describen el estado de un objeto Objetos simples

Tipos de datos primitivos Ej. int, float, double, char, etc

Objetos Complejos Referencias a otros objetos Ej. Estructuras de datos u otros objetos

Page 8: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Visibilidad de los Atributos -Encapsulamiento

Pública : Los otros objetos pueden referenciar directamente el atributo

* color * placa* capacidad

* amarillo* XXX* 50

Objeto Conductor Objeto Bus

Page 9: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Visibilidad de los Atributos -Encapsulamiento (cont.)

Privada : solo el objeto puede referenciar directamente sus atributos

* color * placa* capacidad

* amarillo* XXX* 50

Objeto Conductor Objeto Bus

X

Page 10: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Visibilidad de los Atributos- Encapsulamiento

Todos los atributos deben tener visibilidad privada

EL RESTO DE OBJETOS NO CONOCEN LOS DETALLES DE LA IMPLEMENTACION

* color * placa* capacidad

* amarillo* XXX* 50

Objeto Conductor Objeto Bus

Comportamiento

setColor (color)

getColor (): color

Page 11: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Métodos

Son servicios que describen el comportamiento asociado a un objeto

Pueden conducir al cambio del estado de un objeto

Se activa por medio de un mensaje al objeto Métodos se pueden llamar entre ellos Es posible darles visibilidad (Pública, Privada)

Page 12: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Tipos de Métodos

Constructores

Buses( rojo, AAA, 20 ) Buses( amarillo, XXX, 20)

ESTADO COMPORTAMIENTO

objetos

Color

Placa

Capacidad

Buses (color, placa, capacidad)

Buses ()

CLASE DE BUSES

Page 13: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Tipos de Métodos (cont.)

Analizadores: Permiten obtener el estado

* color * placa* capacidad

* amarillo* XXX* 50

Objeto Conductor Objeto Bus

Comportamiento

getColor (): colorgetCapacidad()intgetPlaca():Placa

Page 14: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Tipos de Métodos (cont.)

* color * placa* capacidad

* amarillo* XXX* 50

Objeto Conductor Objeto Bus

Comportamiento

setColor(color)setCapacidad(capacidad)setPlaca(placa)

Modificadores: Permiten cambiar el estado

Page 15: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Tipos de Métodos (cont.)

Objeto Conductor Objeto Bus

Comportamiento

destroy()

Destructores : permiten eliminar un objeto

Page 16: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Mensaje

Color:

Placa:

Capacidad:

Amarillo

Xxx

50

Objeto Conductor

Objeto Bus

Comportamiento

Buses(color,placa, capacidad)Buses()getColor().ColorgetPlaca():PlacagetCapacidad()intsetColor(color)setPlaca(placa)setCapacidad(capacidad)destroy()

Mecanismo de comunicación ente objetos para solicitar servicios

Page 17: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Herencia Construir un objeto a partir de otro - Usar

atributos y métodos de antecesor Ventaja >> Reutilización

Persona

Estudiante

Pregrado Magister Especialización

Instructor Asistente

Page 18: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Herencia (cont.)

Permite definir una clase en función de otra

Superclase

Subclase

RedefinirMétodos

AgregarMétodos

Agregaratributos

Page 19: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Herencia (cont.)

Agregar Atributos

Persona

Estudiante

Pregrado Magister Especialización

Instructor Asistente

Promedio: float

Page 20: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Herencia (cont.)

Agregar métodos

Persona

Estudiante

Pregrado Magister Especialización

Instructor Asistente

Promedio: floatestaAprobando():Boolean

Page 21: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Herencia (cont.)

Redefinición de métodos

Persona

Estudiante

Magister

Promedio: floatestaAprobando(){If Promedio>=3.0 return TRUE; else return FALSE}

estaAprobando(){If Promedio>=3.75 return TRUE; else return FALSE}

Page 22: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Visibilidad y Herencia

Visibilidad Hereda? Puede

Acceder?

Public Si Si

Private Si No

Page 23: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Visibilidad Protegida

Las instancias de magíster pueden referenciar directamente el atributo promedio de la instancia padre estudiante

Persona

Estudiante

Magister

Promedio: float

Page 24: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Polimorfismo

Habilidad para adoptar formas distintas

Persona

Estudiante

Magister

Objeto Magister

Objeto Persona

Objeto Estudiante: Métodos de persona y estudiante

Métodos de persona, estudiante y magister

Page 25: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Contenedor Polimorfico

Colección de Personas (Arreglo)

Estudiante (Juan Pérez)

Pregrado (Margarita Rojas)

Magister (María Rodríguez)

Especialización (Carlos Ruiz)

Page 26: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Encadenamiento Dinámico

Int calculeCapacidad(){ return 0;}

Int calculeCapacidad(){ return numerosillas *3;}

Int calculeCapacidad(){ return numerosillas *2+1;}

VEHÍCULO

BUS AUTOMOVIL

Page 27: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Encadenamiento Dinámico

VEHICULO_1 VEHICULO_2 VEHICULO_3

VEHICULO_3

VEHICULO_4 VEHICULO_5

Z = ARREGLO [3].calculeCapacidad()

Automovil.calculeCapacidad()

Page 28: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Sobrecarga de métodos

Métodos dentro de una misma clase que tienen el mismo nombre pero distinta firma No rebuscar nombres de métodos para

operaciones similares

Page 29: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Sobrecarga de métodos

Buses() valores por defecto: Color=rojo, Placa=AAA, Cap=20Buses( amarillo, XXX, 20)

ESTADO COMPORTAMIENTO

objetos

Color

Placa

Capacidad

Buses (color, placa, capacidad)

Buses ()

CLASE DE BUSES

Page 30: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Interface

Expone un conjunto de métodos sin definir

Quien la implementa es responsable de la programación de los métodos expuestos y por tanto expone todos los métodos de dicha clase

Page 31: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico.

Clase Abstracta

Es una plantilla para otras clasesNo es posible crear instancia >> Es

abstractaExpone métodos implementados que

pueden ser redefinidos con base en la herencia

Expone métodos abstractos Deben ser redefinidos en Subclases Modelan funcionalidad