introduccion a la poo
DESCRIPTION
Pequeña descripcion de la metodologia para programar orientado a objetosTRANSCRIPT
POOPROGRAAMACIÓN ORIENTADA A OBJETOS
BORIS SALLEG ROYEROING. DE SISTEMAS DE INFORMACIÓN
POO• POO o Programación Orientada a Objetos es una manera de
interpretar la programación basándose en el mundo real ytransportándolo al mundo virtual, tomando representaciones deobjetos reales tales como sus características o propiedades, parahacerlos interactuar con el usuario tal como se haría realmente.
ABSTRACCION DEL MUNDO REAL
DEFINICION DE OBJETO
HERENCIA
• Es la Cualidad mas importante de laOOP.
• Es un mecanismo mediante el cualse puede crear una nueva clasepartiendo de una existente, se diceque la nueva clase hereda lascaracterísticas de la claseexistente, aunque se le puedeañadir mas capacidades o modificarlas que tiene.
VehiculoDeMotor
Attributes
+ Cilindrada : int
+ NumeroDeRueda : int
Operations
+ acelelar() : void
Coches
Attributes
+ NumeroDePuertas : int
Operations
Motos
Attributes
+ TipoCarenado : string
Operations
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.
– Modificación.
• Utilidad:– Abstracción.
– Reutilización.
Hormiga PlanchaTelevisor
Electrodoméstico
tensión
consumo
Conectar
Desconectar
Lavadora
capacidad numCanales vapor
Ejemplo de herencia
Objeto material
Animal Planta
Mamífero
Perro Humano Ornitorrinco
Comerciante Artista Dentista
Florista
Relámpago Flo Beth Ken Pepe
Flor
flores de la abuela
• Es el ocultamiento de la Funcionalidad interna de sus
operaciones, de otros objetos y del mundo exterior.
ENCAPSULAMIENTO
• Principio que establece que los atributos propios de un objetono deben ser visibles desde otros objetos
– Deben ser declarados como privados
• Permite abstraer al resto del mundo de la complejidad de laimplementación interna
• Permite exponer el estado del objeto sólo a través delcomportamiento que le hayamos definido mediante miembrospúblicos
• ¿Por qué es útil?
– Punto de Control/Validación
– Mejor respuesta ante los Cambios
ENCAPSULAMIENTO
ENCAPSULAMIENTO
ENCAPSULAMIENTOpublic class persona
{
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;
}
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;
}
• 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.
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.
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í.
POLIMORFISMO
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
Conceptos básicos: POLIMORFISMO
• Ej: Operación “Abrir”
Tema 5. El Paradigma Orientado a Objetos.
18
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”
Puerta PlazoPuertoCuenta
Abrir()Abrir() Abrir()Abrir()
TomaDeCorriente
tensión
Enchufar(e:Electrodoméstico)
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;
}
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
}
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).
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.
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
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.
DIFERENCIA ENTRE CLASE E INSTANCIAS DE OBJETO
DIFERENCIA ENTRE CLASE E INSTANCIAS DE OBJETO
INSTANCIACION
BIBLIOGRAFIA
• http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf