Académique Documents
Professionnel Documents
Culture Documents
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).
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
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
Instancia
Una instancia es un objeto creado a partir
de una clase.
Instancia
Quebrado - numerador: int : - denominador 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.
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;
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,
ES UN: Herencia
Es un mecanismo para compartir atributos y mtodos entre clases. Por la herencia se forman jerarquas de clases (superclases y subclases).
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:
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 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
Atributos:
longitud ancho Mtodos: Rectangulo obtenerArea
Mtodos:
Circulo obtenerArea
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:Factura i:Item a:Articulo obtenerPrecio() obtenerCosto()
calcularPrecio()
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