Академический Документы
Профессиональный Документы
Культура Документы
Programacion Procedimiental
Programa: Secuencia de instrucciones que describen la solucion Conjunto de llamadas a funciones Codigo y datos: separados, sin ninguna coneccin formal Codigo --> funciones Datos --> estructuras
Abstraccin
Visin simplificada de una realidad Enfocarse en lo esencial. POO intenta abstraer lo mas importante de un objeto:
Estado del objeto (Atributos). Comportamiento del objeto (Mtodos). Comportamientos comunes entre objetos relacionados.
Abstraccin
Qu es un objeto?
Un objeto es una abstraccin de un conjunto de cosas del mundo real de tal forma que: Todos los elementos del conjunto (las instancias) tienen las mismas caractersticas. Todas las instancias estn sujetas a y conforman las mismas reglas.
Mundo Real Software
Abstraccin
Objetos: Caracteristicas
Caractersticas de los objetos:
Clasificacin Identidad Relacion entre ellos Tiene un Conoce un Es un Polimorfismo
Estas caractersticas pueden ser usadas en forma independiente, pero juntas se complementan.
Identidad
Doris
caballo
Variable
unCredito unDebito unaCuenta unaCuentadeAhorros
Direccin
10001324 54647875 87896545 87020486
antena parablica
Mi Computadora
Residencia de Doris
cuenta bancaria
Clasificacin
Vehculo
Animal
Clases y Objetos
Class Template
Objetos
Clase
Es la plantillas que describe a un conjunto de objeto, con los mismos atributos (variables) metodos (funciones) relaciones Un objeto es una instancia de una clase. Los objetos creados a partir de una clase, Tienen una estructura idntica, Pero identidad propia
Clase
Clase --> TDA
Tipo de Dato Abstracto
Ejemplo de Clase
Clase Bicicleta
Atributos Tamao de frame Tamao de llanta Material ... Mtodos Cambio Mover Frenar...
Abstrados en
Objetos bicicletas
Ejemplo de Clase
Java UML
Quebrado -numerador: : int -denominador : int +Quebrado (int, int) +setNumerador (n:int):void +getNumeradore () :int
public class Quebrado { private int numerador; private int denominador; public Quebrado(int n, int d) {} public void setNumerador(int n) {} public int getNumerador() {} }
Instancia
Una instancia es un objeto creado a partir de una clase. La clase describe la estructura de la instancia (informacin y comportamiento), mientras que el estado actual de la instancia es definido por las operaciones ejecutadas.
Instancia
Quebrado -numerador: : int -denominador : int +Quebrado (int, int) +setNumerador (n:int):void +getNumeradore () :int
q1: Quebrado numerador = 9 denominador 7 b: Quebrado numerador = 1 denominador 2 b: Quebrado numerador = 3 denominador = 19
Constructor
Mtodo especial Con el mismo nombre de la clase. Es llamado automticamente Cuando un objeto de una clase es creado. Inicializa las variables del objeto. Puede tomar argumentos Pero no pueden retornar un valor. Una clase puede tener mas de 1 constructor
Si no se define un constructor,
La clase ofrece uno por defecto El cual no recibe parametros y no hace nada
Si se define
El constructor por defecto se pierde
Ejemplo de Constructor
public class Quebrado { private int numerador; private int denominador; public Quebrado(int n, { numerador = n; denominador = d; } public Quebrado() { numerador = 1; denominador = 0; } //... }; int d)
Encapsulamiento
Consiste en separar Los aspectos externos de un objeto De los detalles internos de implementacin del mismo. Se protegen los datos(caracteristicas) de un objeto Se exhibe solo el comportamiento del mismo Haciendo enfasis en lo que se puede hacer No como se puede hacerlo
EJEMPLO
Ejemplo de Encapsulamiento
public class Quebrado { private int numerador, denominador; public Quebrado(int n, int d) { numerador = n; denominador = d; } public int getNumerador(){ return numerador; } public void setNumerador(int n){ numerador = n; } };
Overloading o Sobrecarga
Permite definir varios mtodos con el mismo nombre, Pero con diferentes parmetros (cantidad y/o tipo). Ejmplo:
public void setFecha(int anio, int dia, int mes ); public void setFecha(String strFecha); public void setFecha(float segundos);
ES UN: Herencia
Es un mecanismo para compartir atributos y mtodos entre clases. Por la herencia se forman jerarquas de clases (superclases y subclases). Las subclases heredan los atributos y mtodos de las superclases. Permite la reutilizacin de cdigo.
Superclase
Subclase
Ejemplo
DESPUES
Vehiculo maxFuel maxNroDePasajeros velocidad acelerar() desacelerar() superclase
subclases
Java
public class Vehiculo { } public class Auto extends Vehiculo{ }
Auto
Avion
Tipos de Herencia
Simple:
Clase A herada de otra Clase B
Mltiple:
Clase A hereda de varias otras clases C, D, etc
Herencia Multiple
Herencia Mltiple
Problema de ambigedad: unVehiculoAnfibio.Desplazarse();
Los lenguajes ofrecen mecanismos para deshacer la ambigedad (en C++ => unVehiculoAnfibio.VehiculoTerrestre::Desplazarse()).
Tipos de Clases
Clases abstractas Representan conceptos muy generales, Describen la interfaz comun para el resto de subclaes No pueden ser instanciadas Pueden tener operaciones abstractas Clases concretas o comunes Representan conceptos especificos Pueden ser instanciadas
Suelen implementar operaciones abstractas heredadas
Clases finales
Clases especiales que no pueden tener descendencia. Permiten instanciar objetos.
Clases abstractas
Figura {Abstracto}
public class Circulo extends Figura{ ... } public class Rectangulo extends Figura{ ... }
Polimorfismo
El polimorfismo est muy ligado a la herencia. Una misma operacin Puede ser ejecutada en forma diferente Por objetos de distintas clases Ejemplo: A una figura se le puede calcular el area Un circulo es una figura Un rectangulo es una figura A ambos se les puede calcular el area pero Cada uno tiene una forma distinta de calcularlo
Ejemplo de Polimorfismo
Atributo: Figura Geomtrica area Mtodo: obtenerArea
Rectangulo
Circulo
Atributo: radio
Ejemplo de Polimorfismo
Mtodo abstracto
mtodo abstracto
Circulo +obtenerArea()
Rectangulo +obtenerArea()
mtodo concreto
Redefinicion/Overriding
En ocasiones, una clase hija necesita redefinir las implementaciones heredadas Esto es debido a que La implementacin de un mtodo heredado No se aplica a la subclase Ejemplo: Todos los items de una biblioteca se ingresan de una forma dada, menos las tesis O el mtodo heredado No tiene an implementacion Ejemplo: calcArea de una Figura no se puede implementar calcArea de un Cuadrado si
Mensajes
f :F a c t u r a i :I t e m a :A r t i c u l o o b t e n e r P r e c io ( ) o b te n e rC o s to ()
c a lc u l a r P r e c io ( )
public class Item { public obtenerPrecio(){ a.obtenerCosto(); this.calcularPrecio(); } private calcularPrecio(){ ... } }
Identificando objetos: JavaZoo Los animales de un zoologico se encuentran ubicados en jaulas. Los animales pertenecen a una especie dada, tienen color, tamao y nombres. Las jaulas tienen diferentes tamaos, dependiendo de los animales que alberguen. Pueden tener una proteccion para la lluvia. Las jaulas a veces estn sucias. El celador cuida de los animales, los alimenta y limpia sus jaulas. Ejercicios: 1. Implemente la clase Punto 2. Implemente las clases Figura, Rectangulo y Circulo