Conceptos

Anuncio
Conceptos
z
z
z
z
z
z
z
z
Objeto
Clase
Atributo / Método
Encapsulamiento
Mensaje
Herencia
Polimorfismo
Encadenamiento Dinámico
Objeto
z Representa una instancia de un elemento
p
del mundo del problema
z Es cualquier elemento que se pueda
describir en términos de su estado y su
comportamiento
Características de los
Objetos
z Pueden ser:
{ Cosas
{ Sencillos y Complejos
{ Reales o imaginarios(conceptuales)
z Ej. Cuenta bancaria, transacción, Juan,
,
Leon,etc.
Implementación oculta
zRepresenta elementos internos de un
j
q
que p
pueden ser dañadas p
por un
objeto
cliente poco cuidadoso.=> ocultar la
implementación disminuye errores
errores.
zEl diseñador de bibliotecas puede cambiar
el funcionamiento
f
interno de la clase sin
preocuparse
p
p
sobre cómo afectará al
programador cliente
Clases
zAgrupa un conjunto de objetos del mundo
problema q
que tienen las mismas
del p
características y el mismo comportamiento
zSon plantillas para crear objetos
objetos.
zUn objeto es una instancia de una clase
z Ej. Receta para hacer galletas de
chocolate Con ella creas una o muchas
chocolate.
galletas de chocolate
Atributo / Método
Atributos
Métodos
Color
Arrancar()
Placa
Detenerse()
Capacidad
Recoger pasajeros()
Atributos
z Describen el estado de un objeto
z Objetos
Obj t simples
i l
{ Tipos de datos primitivos
{ Ej. int, float, double, char, etc
z Objetos Complejos
{ Referencias a otros objetos
{ Ej.
Ej E
Estructuras
t t
de
d datos
d t u otros
t
objetos
bj t
Visibilidad de los Atributos Encapsulamiento
z Pública : Los otros objetos pueden
referenciar directamente el atributo
Colo
Obj t Conductor
Objeto
C d t
lo
l
i
r
a
m
r=a
* color
* placa
* capacidad
* amarillo
* XXX
* 50
Obj t Bus
Objeto
B
Visibilidad de los Atributos Encapsulamiento (cont.)
z Privada : solo el objeto puede referenciar
directamente sus atributos
Colo
Objeto Conductor
X
lo
l
i
r
a
m
r=a
* color
* placa
l
* capacidad
* amarillo
* XXX
* 50
Objeto Bus
Visibilidad de los Atributos
- Encapsulamiento
z Todos los atributos deben tener visibilidad
privada
z EL RESTO DE OBJETOS NO CONOCEN LOS
DETALLES DE LA IMPLEMENTACION
* color
* placa
* capacidad
S et
C ol
or (
am
a rill
o)
* amarillo
* XXX
* 50
Comportamiento
setColor (color)
getColor (): color
Objeto Conductor
Objeto Bus
Métodos
z Son servicios que describen el comportamiento
asociado a un objeto
z Pueden conducir al cambio del estado de un
objeto
j
z Se activa por medio de un mensaje al objeto
z Métodos se pueden llamar entre ellos
z Es posible darles visibilidad (Pública, Privada)
Tipos de Métodos
z Constructores
B
Buses(
( rojo,
j AAA
AAA, 20 ) B
Buses(( amarillo,
ill XXX
XXX, 20)
CLASE DE BUSES
Color
ESTADO Placa
COMPORTAMIENTO
Buses (color, placa, capacidad)
Buses ()
Capacidad
objetos
Tipos de Métodos (cont
(cont.))
z Analizadores: Permiten obtener el estado
* color
* placa
* capacidad
p
Col
or =
g et
Col
or
* amarillo
* XXX
* 50
Comportamiento
getColor (): color
getCapacidad()int
getPlaca():Placa
Objeto Conductor
Objeto Bus
Tipos de Métodos (cont
(cont.))
z Modificadores: Permiten cambiar el estado
* color
* placa
* capacidad
se t
Col
or
(am
ari ll
o)
* amarillo
* XXX
* 50
Comportamiento
setColor(color)
setCapacidad(capacidad)
setPlaca(placa)
Objeto Conductor
Objeto Bus
Tipos de Métodos (cont
(cont.))
z Destructores : permiten eliminar un objeto
des
tr oy
()
Comportamiento
destroy()
Objeto Conductor
Objeto Bus
Mensaje
z Mecanismo de comunicación ente objetos para
solicitar servicios
Color:
Amarillo
Placa:
Xxx
Capacidad:
50
Comportamiento
Objeto Conductor
Buses(color,placa, capacidad)
Buses()
getColor().Color
g
()
getPlaca():Placa
getCapacidad()int
setColor(color)
setPlaca(placa)
setCapacidad(capacidad)
y()
destroy()
Objeto
j
Bus
Herencia
z Construir
Co s u u
un obje
objeto
o a pa
partir de o
otro
o - Usa
Usar
atributos y métodos de antecesor
z Ventaja >> Re
Reutilización
tili ación
Persona
E t di t
Estudiante
Pregrado
g
Magister
g
Instructor
Asistente
Especialización
p
Herencia (cont
(cont.))
z Permite definir una clase en función de
otra
Superclase
Subclase
Agregar
atributos
Agregar
Métodos
Redefinir
Métodos
Herencia (cont
(cont.))
z Agregar Atributos
Persona
Promedio: float
Estudiante
Pregrado
Magister
Instructor
Asistente
Especialización
Herencia (cont
(cont.))
z Agregar métodos
estaAprobando():Boolean
p
()
Persona
Promedio: float
Estudiante
Pregrado
Magister
Instructor
Asistente
Especialización
Herencia (cont
(cont.))
z Redefinición de métodos
estaAprobando()
{If Promedio>=3.0
Promedio>=3 0
return TRUE;
else
return FALSE}
Persona
Promedio: float
Estudiante
Magister
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
Persona
Promedio: float
Estudiante
Magister
z Las instancias de magíster pueden referenciar
directamente el atributo promedio de la instancia
padre estudiante
Polimorfismo
z Habilidad para adoptar formas distintas
Persona
Estudiante
Objeto Persona
Objeto Estudiante: Métodos de persona y estudiante
M i t
Magister
Objeto Magister
Métodos de persona, estudiante y magister
Contenedor Polimorfico
z Colección de Personas (Arreglo)
Estudiante (Juan Pérez)
Pregrado (Margarita Rojas)
Magister (María Rodríguez)
Especialización (Carlos Ruiz)
Encadenamiento Dinámico
VEHÍCULO
BUS
Int calculeCapacidad()
{
return numerosillas *2+1;
}
Int calculeCapacidad()
{
return 0;
}
AUTOMOVIL
Int calculeCapacidad()
{
return numerosillas *3;
}
Encadenamiento Dinámico
VEHICULO_1 VEHICULO_2 VEHICULO_3 VEHICULO_4 VEHICULO_5
Z = ARREGLO [3].calculeCapacidad()
Automovil.calculeCapacidad()
VEHICULO_3
Sobrecarga de métodos
z Métodos dentro de una misma clase que
tienen el mismo nombre pero distinta firma
{ No rebuscar nombres de métodos para
operaciones
i
similares
i il
Sobrecarga de métodos
Buses() valores por defecto: Color=rojo
Color=rojo, Placa=AAA
Placa=AAA, Cap=20
Buses( amarillo, XXX, 20)
CLASE DE BUSES
Color
ESTADO Placa
COMPORTAMIENTO
Buses (color, placa, capacidad)
Buses ()
Capacidad
objetos
Interface
z Expone un conjunto de métodos sin
definir
zQuien 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
zEs
E una plantilla
l till para otras
t
clases
l
zNo es p
posible crear instancia >> Es
abstracta
zExpone métodos implementados que
pueden ser redefinidos con base en la
herencia
zExpone métodos abstractos
{ Deben
D b ser redefinidos
d fi id en S
Subclases
b l
{ Modelan funcionalidad
Descargar