Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Orientada a Objetos
Programacion
Procedimiental
Programa:
– Secuencia de instrucciones que describen
la solucion
– Conjunto de llamadas a funciones
Codigo y datos: separados, sin ninguna
conección formal
– Codigo --> funciones
– Datos --> estructuras
Programacion Orientada a
Objetos
Todo es un objeto, descrito por caracteristicas
y acciones.
– Caracteristicas --> datos
– Acciones --> funciones que operan sobre los
datos
Programa:
– Conjunto de objetos que se relacionan entre
si,
– “Comunicandose" a traves de mensajes.
Quebrado a, b, c; Quebrado a, b, c;
a = Quebrado_Pedir(); a = new Quebrado();
b = Quebrado_Pedir(); b = new Quebrado();
c = Quebrado_Sumar(a,b); a.Pedir();
b.Pedir();
c = a.Sumar(b);
Lenguajes Orientados a Objetos
Simula
Smalltalk
C++
Object Pascal
Java
C#
Conceptos de Orientación a
Objetos
Abstracción
Visión simplificada de una realidad
– Enfocarse en lo esencial.
POO intenta abstraer lo mas importante de
un objeto:
Estado del objeto (Atributos).
Comportamiento del objeto (Métodos).
Comportamientos comunes entre objetos
relacionados.
Abstracción
Qué es un objeto?
Un objeto es una abstracción de un conjunto de
cosas del mundo real de tal forma que:
Todos los elementos del conjunto (las instancias)
tienen las mismas características.
Todas las instancias están sujetas a y conforman
las mismas reglas.
Mundo Real Software
Abstracción
Características de los objetos:
Identidad
Clasificación
Herencia
Polimorfismo
Doris caballo
Una bicicleta roja
Variable Dirección
unCredito 10001324
unDebito 54647875
unaCuenta 87896545
antena parabólica unaCuentadeAhorros 87020486
Mi Computadora
Una tabla de símbolos
Vehículo
Animal
Punto
Figura (1,3)
(5,2.5)
(2,2)
(2,1)
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 idéntica,
– Pero identidad propia
Clase
Clase Bicicleta
Atributos
Tamaño de frame
Tamaño de llanta
Material ...
Abstraídos en
Métodos
Cambio
Mover
Frenar...
Objetos bicicletas
Ejemplo de Clase
Java
UML public class Alumno
{
Alumno private String nombre;
private String domicilio;
-nombre:: String
- domicilio: String
public Alumno(String n, String d)
+ Alumno (n:String, d:String) {}
+ setNombre(n:String):void public void setNombre (String n)
+ getNombre():String {}
public String getNombre()
{}
}
Instancia
alumno2: Alumno
Creación de instancias u objetos a partir de la clase Alumno:
Alumno alumno1 = new Alumno(“Juan Perez”, “Las Peñas”); nombre = Abel García
domicilio = Los ceibos
Alumno alumno2 = new Alumno(“Abel Garcia”, “Los ceibos”);
Mamífero
# colorOjo:String
+
getcolorOjo():String
Perro Gato
# frecLadrido:int # frecMaullido:int
+ ladrar():void +maullar():void
PastorAlemán Poodle
+ + esFrances():void
esAleman():void
Ejemplo de Herencia
Herencia
ANTES DESPUES
Auto Vehiculo
maxFuel maxFuel superclase
maxNroDePasajeros maxNroDePasajeros
modelo velocidad
velocidad
acelerar()
Avion desacelerar()
acelerar()
desacelerar() maxAltitud
doblarAIzq() maxFuel
doblarADcha() maxNroDePasajeros
velocidad
nroDeMotores Auto Avion
modelo maxAltitud
acelerar() nroDeMotores
doblarAIzq()
desacelerar()
doblarADcha()
descender()
descender()
ascender()
ascender()
subclases
Herencia
UML Java
}
Auto Avion
public class Avion extends Vehiculo{
}
Tipos de Herencia
Figura {Abstracto}
public abstract class Figura {
...
}
método abstracto
Método Figura {abstracto}
abstracto Figura f = new Rectangulo();
+obtenerArea() int s = f.obtenerArea();
Circulo Rectangulo
circle
draw_2
Figura {abstracto}
Figura1 f = new Rectangulo();
+obtenerArea() int s = f.obtenerArea();
Circulo Rectangulo
+obtenerArea() +obtenerArea()
Interfases
Objeto A Objeto B
Me do Me do
tod tod
o Meto o Meto
M
M
o
o
tod
tod
e
e
tod
tod
Me
Me
Datos Datos
o
o
Datos Datos
Datos Datos
o
o
tod
tod
Datos Datos
Me
Me
Me
Me
tod
tod
o
o
Me o Me o
tod tod tod tod
o Me o Me
Mensajes
f:Fa ct ura i:Ite m a :Articulo
obtenerPrecio() obtenerCosto()
calcularPrecio()
La reutilización de código:
Esta ahorra tiempo en el desarrollo de
programas.
Se utiliza software que ya ha sido probado.
Fácil mantenimiento y depuración de programas.
Extensibilidad: posibilidad de ampliar la
funcionalidad de la aplicación de manera
sencilla.
Modularidad y encapsulación: el sistema se
descompone en objetos con unas
responsabilidades claramente especificadas.