Introduccion a la poo

Preview:

DESCRIPTION

Pequeña descripcion de la metodologia para programar orientado a objetos

Citation preview

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