conceptos objeto clase atributo / método encapsulamiento mensaje herencia polimorfismo...
TRANSCRIPT
![Page 1: Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/1.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/2.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/3.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/4.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/5.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/6.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/7.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/8.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/9.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/10.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/11.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/12.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/13.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/14.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/15.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/16.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/17.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/18.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/19.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/20.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/21.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/22.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/23.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/24.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/25.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/26.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/27.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/28.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/29.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/30.jpg)
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](https://reader037.vdocuments.site/reader037/viewer/2022102507/5528bde5497959977d8fcf18/html5/thumbnails/31.jpg)
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