Sunteți pe pagina 1din 26

Conceptos claves

• Abstracción vs Modularización
• Objetos y Componentes
• Clases
• Atributos
• Métodos / Operaciones
• Encapsulación / Herencia / Polimorfismo
• Mensajes
• Interfaces
• Visibilidad de atributos y operaciones
Clases

Persona Nombre de la clase

Nombre
Edad Atributos
Dirección

Cambiar nombre Comportamiento


Cambiar dirección

Representación gráfica de una clase


Atributos

• De instancia
• De clase
Operaciones y Métodos
• Representan el comportamiento de una clase

• Determinan que cambios pueden sufrir los


atributos especificando la forma en que se
controlan los datos de dicho objeto
Mensajes

• Es una solicitud para que se lleve a


cabo la operación indicada y se
produzca un resultado

• El mensaje contiene el nombre del


objeto, el nombre de una operación y
a veces un grupo de parámetros
Interfaces
• Es un resumen de lo que se puede hacer con un objeto,
o lo que un objeto hace.

• En términos de codificación, es una lista global de


funciones públicas especificando los parámetros que
ello toman y su valor de retorno

• Una implementación es como se ejecuta estos servicios


Interfaces

Caja Negra
Fecha desastre
Hora desastre
Grabación

Escuchar grabación
Principios de la Orientación a
Objetos

– Encapsulación

– Herencia

– Polimorfismo
Encapsulación

• Objetivo: Proteger a los datos de cambios no


deseados desde el exterior del objeto

Objeto = Atributos + Operaciones

• Los atributos deberían ser privados


• Las operaciones pueden ser públicas
Encapsulación
Herencia

• Definición de clases y subclases


• También llamadas clases bases y clases
derivadas
• Objetivo: Reutilización de código
• Generalización y especificación
Herencia
Persona
-Nombre
-Edad
+Cambiar nombre()

Empleado Cliente
-Cargo -Limite Crédito
-Sueldo -Saldo
Herencia

• Dos tipos:

– Herencia simple: Cuando una subclase


hereda características de una sola superclase

– Herencia múltiple: Cuando una subclase


hereda características de varias superclases
Polimorfismo
• “Propiedad de los cuerpos que pueden cambiar de
forma sin variar su naturaleza ”

• Se aplica a las operaciones.

• Representa a algo o alguien que es capaz de cambiar


de forma.

• Una operación es polimórfica si se puede realizar de


muchas formas, dependiendo del objeto al cual se le
aplica.
Polimorfismo
Empleado
-Nombre
-Edad
+Calcular Pago()

Administrativo Obrero
-Sueldo -Horas Trabajadas
-Bonificación -Valor Hora
Polimorfismo

• El objetivo principal del polimorfismo es eliminar las


estructuras, optimizando el código.

• Al aplicar polimorfismo se logra:


– Un mayor entendimiento del código.
– Una mejor velocidad de proceso.

• Si no hay herencia, no puede haber polimorfismo.


Polimorfismo

A calcular()
{
calcular()
}

B C D
calcular() calcular() calcular()

calcular() calcular() calcular()


{ { {
x+y x- y x*y
} } }
Polimorfismo
§ La búsqueda automática del código que
en cada momento se va a ejecutar lo que
se conoce como enlace dinámico
Clases abstractas y concretas

• Una clase abstracta es una clase que no puede ser


instanciada directamente, pero si a través de sus
subclases.

• Una clase concreta es una clase que si tiene instancias


directas
Clases abstractas y concretas

Empleado
Cargo

CalcValorPagar( )

Normal Obrero Especial


Sueldo Horas Trabajadas Descripción
Bonificación Valor Hora Valor

CalcValorPagar( ) CalcValorPagar( ) CalcValorPagar( )


Overriding
• Sobrecarga de métodos

• Un método de una superclase es redefinido en una o


varias de las subclases de manera total o parcial

• El método de la subclase debe tener la misma “firma”


que el método de la superclase

• La firma define el nombre del método, el número y tipo


de parámetros, y el tipo de dato de retorno
Overloading

• Cuando dos o más métodos de una clase tienen el


mismo nombre, pero con diferente “firma”.

• En tiempo de ejecución se determina a cual de las


versiones de los métodos se llama, dependiendo de la
firma de la llamada
Visibilidad de los atributos
• Indica el nivel de accesibilidad que
tendrán los datos:
– Públicos
– Protegidos
– Privados
– Clases amigas (lenguaje C)
– Paquetes (Java)
Niveles de visibilidad en java
Clases abstractas e interfaces
Ejemplo

S-ar putea să vă placă și