La programación orientada a objetos (POO) representa el mundo real mediante objetos y sus interacciones. Una clase define los atributos y métodos comunes a todos los objetos de un tipo dado. Las instancias de clase son objetos individuales que pueden heredar atributos de clases padre. La herencia permite extender y reutilizar código. El encapsulamiento oculta las implementaciones internas de un objeto. El polimorfismo permite que métodos con el mismo nombre tengan comportamientos diferentes dependiendo del objeto.
2. POO
• POO o Programación Orientada a Objetos es una manera de
interpretar la programación basándose en el mundo real y
transportándolo al mundo virtual, tomando representaciones de
objetos reales tales como sus características o propiedades, para
hacerlos interactuar con el usuario tal como se haría realmente.
6. HERENCIA
• Es la Cualidad mas importante de la
OOP.
• Es un mecanismo mediante el cual VehiculoDeMotor
A ttributes
se puede crear una nueva clase + Cilindrada : int
+ NumeroDeRueda : int
partiendo de una existente, se dice Operations
+ acelelar() : void
que la nueva clase hereda las
características de la clase
existente, aunque se le puede Coches Motos
A ttributes A ttributes
añadir mas capacidades o modificar + NumeroDePuertas : int + TipoCarenado : string
Operations Operations
las que tiene.
7. Conceptos básicos: HERENCIA
• Generalización / Especialización
• Los objetos “heredan” las características de la clase.
• Las clases pueden heredar de otras clases.
– Extensión.
– Restricción.
Electrodoméstico
– Modificación. tensión
consumo
• Utilidad: Conectar
– Abstracción. Desconectar
– Reutilización.
Lavadora
Hormiga Televisor Plancha
capacidad numCanales vapor
8. Ejemplo de herencia
Objeto material
Animal Planta
Mamífero Flor
Perro Humano Ornitorrinco
Comerciante Artista Dentista
Florista
Relámpago Flo Beth Ken Pepe flores de la abuela
9. ENCAPSULAMIENTO
• Es el ocultamiento de la Funcionalidad interna de sus
operaciones, de otros objetos y del mundo exterior.
10. ENCAPSULAMIENTO
• Principio que establece que los atributos propios de un objeto
no deben ser visibles desde otros objetos
– Deben ser declarados como privados
• Permite abstraer al resto del mundo de la complejidad de la
implementación interna
• Permite exponer el estado del objeto sólo a través del
comportamiento que le hayamos definido mediante miembros
públicos
• ¿Por qué es útil?
– Punto de Control/Validación
– Mejor respuesta ante los Cambios
12. public class persona
ENCAPSULAMIENTO
{
private String Nombre;
private String Apellido;
private int Edad;
private String Ciudad;
private int id;
public persona()
{ }
public String getNombre()
{
return Nombre;
}
public void setNombre(String Nombre)
{
this.Nombre = Nombre;
}
public String getApellido()
{
return Apellido;
}
public void setApellido(String Apellido)
{
this.Apellido = Apellido;
}
13. public int getEdad()
{
return Edad;
}
public void setEdad(int Edad)
{
this.Edad = Edad;
}
public String getCiudad()
{
return Ciudad;
}
public void setCiudad(String Ciudad)
{
this.Ciudad = Ciudad;
}
public int getId()
{
return id;
}
14. POLIMORFISMO
• En ocasiones una acción tiene el mismo nombre en diferentes
Clases o en la misma, pero realizara una operación diferente.
• En la OOP cada Clase “SABE” como realizar cada operación.
• Es la posibilidad de que dos Métodos implementen distintas
acciones, aun teniendo el mismo nombre, dependiendo del
Objeto que lo ejecuta o de los parámetros que recibe.
15. POLIMORFISMO
• La Sobrecarga es un tipo especial del Polimorfismo.
• Varios Métodos con el mismo nombre, siempre y cuando que
el tipo de parámetros que recibe o el numero sean diferentes.
16. POLIMORFISMO
• Es la propiedad que tienen los objetos de permitir invocar
genéricamente un comportamiento (método) cuya
implementación será delegada al objeto correspondiente recién
en tiempo de ejecución
• El polimorfismo tiende a existir en las relaciones de
herencia, pero no siempre es así.
17. Polimorfismo - Ejemplo
• La definición del método reside en la clase base
• La implementación del método reside en la clase derivada
• La invocación es resuelta al momento de ejecución
Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
18. Conceptos básicos: POLIMORFISMO
• Ej: Operación “Abrir”
Puerta Cuenta Puerto Plazo
Abrir() Abrir() Abrir() Abrir()
Permite al modelador hablar el lenguaje del cliente.
Evita asignar identificadores artificiosos para distinguir las
operaciones.
Contribuye a la reutilización de código.
Ej: Operación “Enchufar”
TomaDeCorriente
tensión
Enchufar(e:Electrodoméstico)
Tema 5. El Paradigma
18
Orientado a Objetos.
19. POLIMORFISMO
public persona()
{
}
public persona(String Nombre, String Apellido)
{
this.Nombre= Nombre;
this. Apellido= Apellido;
}
public persona(String Nombre, String Apellido, int Edad)
{
this.Nombre= Nombre;
this. Apellido= Apellido;
this.Edad= Edad;
}
20. CLASE
• Una clase es una agrupación de datos (variables o
campos) y de funciones (métodos) que operan
sobre esos datos.
• Una clase es una plantilla que define las variables
y los métodos que son comunes para todos los
objetos de un cierto tipo.
public class Classname
{ ... // definición de variables y
métodos
}
21. CLASE
¿Qué es una clase?
Una clase es una plantilla para crear objetos.
La definición de una clase especifica las operaciones y los atributos para todas las
instancias de la clase(objetos).
22. CONCEPTO DE INSTANCIA
• Una de las características más útiles de Java es
la posibilidad de crear clases e instancias a
partir de estas clases.
• class Perro es la declaración de la clase Perro a
partir de la cual podremos crear varias
instancias.
23. clase Perro
Inicio
//Variables de instancia de Perro.
Cadena nombre;
Cadena color;
Entero edad;
//Constructor de Perro.
publico Perro(Cadena nombre, Cadena color, Entero edad)
Inicio
Perro.nombre = nombre;
Perro.color = color;
Perro.edad = edad;
Fin
//Métodos de Perro.
Publico comer()
Inicio
Escriba(nombre + " comiendo.");
Fin
publico morder()
Inicio
Escriba(nombre + " mordiendo.");
Fin
Fin//Fin clase Perro
Para crear ahora objetos de la clase Perro es tan sencillo como:
dogo = nuevo Perro(Koky, Negro, 2);
danes= nuevo Perro(Rififi, Café,4);
Ahorrandonos escribir mucho código
24. class Perro
{
//Variables de instancia de Perro.
String nombre;
String color;
int edad;
//Constructor de Perro.
public Perro(String nombre, String color, int edad)
{
this.nombre = nombre;
this.color = color;
this.edad = edad;
}
//Métodos de Perro.
public void comer()
{
System.out.println(nombre + " comiendo.");
}
public void morder()
{
System.out.println(nombre + " mordiendo.");
}
}//Fin clase Perro
dogo = new Perro(Koky, Negro, 2);
danes= new Perro(Rififi, Café,4);
Nota:
Ejemplo de implementación en Java.