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
Características de losObjetos Pueden ser:
Cosas Sencillos y Complejos Reales o imaginarios(conceptuales)
Ej. Cuenta bancaria, transacción, Juan, Leon,etc.
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
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
Atributo / Método
Atributos Métodos
Color
Placa
Capacidad
Arrancar()
Detenerse()
Recoger pasajeros()
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
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
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
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
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)
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
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
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
Tipos de Métodos (cont.)
Objeto Conductor Objeto Bus
Comportamiento
destroy()
Destructores : permiten eliminar un objeto
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
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
Herencia (cont.)
Permite definir una clase en función de otra
Superclase
Subclase
RedefinirMétodos
AgregarMétodos
Agregaratributos
Herencia (cont.)
Agregar Atributos
Persona
Estudiante
Pregrado Magister Especialización
Instructor Asistente
Promedio: float
Herencia (cont.)
Agregar métodos
Persona
Estudiante
Pregrado Magister Especialización
Instructor Asistente
Promedio: floatestaAprobando():Boolean
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}
Visibilidad y Herencia
Visibilidad Hereda? Puede
Acceder?
Public Si Si
Private Si No
Visibilidad Protegida
Las instancias de magíster pueden referenciar directamente el atributo promedio de la instancia padre estudiante
Persona
Estudiante
Magister
Promedio: float
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
Contenedor Polimorfico
Colección de Personas (Arreglo)
Estudiante (Juan Pérez)
Pregrado (Margarita Rojas)
Magister (María Rodríguez)
Especialización (Carlos Ruiz)
Encadenamiento Dinámico
Int calculeCapacidad(){ return 0;}
Int calculeCapacidad(){ return numerosillas *3;}
Int calculeCapacidad(){ return numerosillas *2+1;}
VEHÍCULO
BUS AUTOMOVIL
Encadenamiento Dinámico
VEHICULO_1 VEHICULO_2 VEHICULO_3
VEHICULO_3
VEHICULO_4 VEHICULO_5
Z = ARREGLO [3].calculeCapacidad()
Automovil.calculeCapacidad()
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
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
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
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
Top Related