Upload
marco-pusda
View
233
Download
0
Embed Size (px)
Citation preview
8/4/2019 Fundamentos POO
1/38
Fundamentos de Orientacina Objetos
8/4/2019 Fundamentos POO
2/38
Introduccin
Smula (1961...)
Smula (1967...)
SmallTalk (1972-...)
C++ (1983...)
Eiffel (1985...) Java 1 (1995...)
60-70's 80's 90's
Self (1986...)Modula 3 (1986...)
ADA(1979-...)
Ruby (1991...)
C#(2000...)
Booch (1991...)
OMT (1991...) Objectory(1992...)
OBA,MOSES,
FUSION
(1994...)
RUP , POO(1999...)
Java 2 (2002...)
2000's
Php(2001...)
Punto net(2006...)
8/4/2019 Fundamentos POO
3/38
Programacin Lineal
Programa:
Secuencia de instrucciones que describenla solucion
Conjunto de instrucciones y operaciones enun solo metodo llamado Main
8/4/2019 Fundamentos POO
4/38
Programacin Procedimiental
Programa:
Secuencia de instrucciones que describenla solucion
Conjunto de llamadas a funciones
Codigo y datos: separados, sin ningunaconeccin formal
Codigo --> funciones Datos --> estructuras
8/4/2019 Fundamentos POO
5/38
Programacin Orientada a Objetos
Todo es un objeto, descrito por caracteristicasy acciones.
Caracteristicas --> datosAcciones --> funciones que operan sobre los
datos
Programa:
Conjunto de objetos que se relacionan entresi,
Comunicandose" a traves de mensajes.
8/4/2019 Fundamentos POO
6/38
En programacin orientada por objetosun programa es una comunidad de agentes(objetos) que interactuan entre ellos.
Cada objeto tiene un rol en la solucindel problema
Cada objeto provee un conjunto de
servicios (o mtodos)Los servicios de un objeto son usados por
otros objetos.
Programacin Orientada a Objetos
8/4/2019 Fundamentos POO
7/38
OO provee objetos como el principalmedio para abstraer y estructurar un
sistema.Un objeto puede modelar entidades delmundo real, puede capturarabstracciones de fenmenos complejos,
puede representar artefactos desoftware (pilas, grficos, ).
Programacin Orientada a Objetos
8/4/2019 Fundamentos POO
8/38
PROYECTO: Conjunto de paquetes, librerias,archivos, etc., que modelan un programainformtico
PAQUETE: En Java es un contenedor de clasesque permite agrupar las distintas partes de unprograma cuya funcionalidad tienen elementoscomunes.
Programacin Orientada a Objetos
8/4/2019 Fundamentos POO
9/38
CLASE: Descripcin de un objeto. Consta deuna serie de mtodos y datos que resumen lascaractersticas de este objeto.
VARIABLES: Caractersticas que aplican alobjeto para el uso del usuarioMENSAJES: Lenguaje de comunicacion entreobjetos, para poder trabajar en conjunto yconstruir as aplicaciones
INSTANCIA: Se llama instancia a todo objetoque derive de algn otro. De esta forma, todoslos objetos son instancias de algn otro
Programacin Orientada a Objetos
8/4/2019 Fundamentos POO
10/38
Propiedades de la POO
http://elvex.ugr.es/decsai/builder/intro/5.html
8/4/2019 Fundamentos POO
11/38
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 objetosrelacionados.
8/4/2019 Fundamentos POO
12/38
Abstraccin
8/4/2019 Fundamentos POO
13/38
Propiedades de los Objetos I
Las propiedades son como las variables enprogramacin estructurada, que pueden tomar unnico valor o varios y pueden ser de un tipo o dedistintos.
La gran diferencia con estructurada es que puedenheredarse de un objeto a otro.
Existen 3 propiedades para los objetos:
Encapsulacin: agrupa datos y procedimientos. Polimorfismo: un mismo nombre de procedimiento o un
smbolo de una operacin pueden realizar varias tareas. Herencia: se pasan componentes de una clase a otra.
8/4/2019 Fundamentos POO
14/38
Propiedades de los Objetos II
Tenemos 2 tipos de propiedades:
Propias: dentro del propio objeto.
Un pequeo ejemplo de un objeto y sus propiedades: Los atributos son ( Tipo, titular y saldo) ms abajo
estn los mtodos:
Atributospropios
http://www.programacion.com/bbdd/articulo/dondo_poo/
8/4/2019 Fundamentos POO
15/38
Propiedades de los objetos III Heredadas: definidas en otro objeto
(antepasado), se las llama propiedadesmiembro; el objeto las posee por el
simple hecho de ser miembro de unaclase.
Atributosheredados
Volar
Comer
.....
http://javacafesv.blogspot.com/2009/03/herencia-multiple-en-java-conveniente-o.html
8/4/2019 Fundamentos POO
16/38
Propiedades de las clases
Son datos especficos de una clase.
Definidos por un nombre (sustantivos) y con los atributos(propiedades) que van a poseer (sustantivos o adjetivos).
Deben ser nicos aunque el mismo nombre de un atributo puedeestar en distintas clases.
Definen la estructura de una clase y la de sus objetos.
La declaracin como pblicas significa que podr utilizarse encualquier parte del programa.
Para acceder a un atributo hay que indicarle el nombre delobjeto al que pertenece
8/4/2019 Fundamentos POO
17/38
Tipos de atributos
Public visible dentro y fuera de la clase;desde todo el programa.
Private slo accesible desde dentro de laclase.
Protected atributo no accesible desdefuera de la clase, slo por mtodos de lapropia clase o subclases.
8/4/2019 Fundamentos POO
18/38
Clases y ObjetosUna clase es un molde con el que se fabrican losobjetos
F1
V1
V2
F2
F3
F4F5
F6F1
V1
V2
F2
F3
F4F5
F6
F1
V1
V2
F2
F3
F4F5
F6
F1
V1V2
F2
F3
F4F5
F6
F1
V1
V2
F2
F3
F4F5
F6
ClaseO1
O2
O3O4
8/4/2019 Fundamentos POO
19/38
Clase
Es la plantillas que describe a un conjunto deobjeto, con los mismos
atributos (variables)
metodos (funciones)
relacionesUn objeto es una instancia de una clase.Los objetos creados a partir de una clase,
Tienen una estructura idntica, Pero identidad propia
8/4/2019 Fundamentos POO
20/38
Clase
Clase --> TDA
Tipo de Dato Abstracto
Es la definicion de un nuevo tipo de dato
Un objeto es la variable de dicho tipo
Ejemplo:
Clase: Perro Objetos: Balto, Firulais, etc
8/4/2019 Fundamentos POO
21/38
Ejemplo de Clase
Objetos bicicletas
Abstrados en
Clase Bicicleta
Atributos
Tamao de frameTamao de llantaMaterial ...
Mtodos
Cambio
MoverFrenar...
8/4/2019 Fundamentos POO
22/38
Ejemplo de Clase
public class Alumno
{
private String nombre;private String domicilio;
public Alumno(String n, String d)
{}
public void setNombre (String n)
{}public String getNombre()
{}
}
UML
Java
Alumno
-nombre:: String-domicilio: String
+Alumno (n:String, d:String)+setNombre(n:String):void
+getNombre():String
8/4/2019 Fundamentos POO
23/38
Estructura de una Clase
8/4/2019 Fundamentos POO
24/38
/* Alumno.java */class Alumno {
String nombre,direccion;int edad;void setNombre(String n) {
nombre = n;}
String getNombre() {return nombre;
}void setEdad(int e) {
edad = e;}int getEdad() {
return edad;}void setDireccion(String d) {
direccion = d;}String getDireccion() {
return direccion;}
}
Implementacin de una clase
8/4/2019 Fundamentos POO
25/38
Instancia
Una instancia es un objeto creado a partirde una clase.
La clase describe la estructura de lainstancia (informacin y comportamiento),mientras que el estado actual de la instanciaes definido por las operaciones ejecutadas.
8/4/2019 Fundamentos POO
26/38
Qu es un objeto?
Un objeto es una abstraccin de un conjunto decosas 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 conformanlas mismas reglas.
Mundo Real Software
Abstraccin
8/4/2019 Fundamentos POO
27/38
Comportamiento de los objetos
La caracterizacin del comportamientoes suficiente para disear el sistema. Elcomportamiento real del objeto puedeser implementado y refinado de acuerdocon las necesidades.
8/4/2019 Fundamentos POO
28/38
Caractersticas: Identidad
Clasificacin
Herencia
Polimorfismo
Estas caractersticas pueden ser usadas enforma independiente, pero juntas secomplementan.
Caracteristicas de los objetos
8/4/2019 Fundamentos POO
29/38
Identidad
Variable Direccin
unCredito 10001324unDebito 54647875unaCuenta 87896545
unaCuentadeAhorros 87020486
Una tabla de smbolos
caballoDoris
Residencia de Doris
Mi Computadora
Una bicicleta roja
cuenta bancaria
antena parablica
8/4/2019 Fundamentos POO
30/38
Clasificacin
Vehculo
Punto
Figura
Animal
(1,3)
(2,2)
(2,1)
(5,2.5)
8/4/2019 Fundamentos POO
31/38
Instancia
Alumno alumno3 = new Alumno(Jose Lopez, Centenario); alumno3:Alumno
nombre = Jose Lopezdomicilio = Centenario
alumno2:Alumno
nombre = Abel Garcadomicilio = Los ceibos
alumno1:Alumno
nombre = Juan Perezdomicilio = Las Peas
Alumno-nombre:: String-domicilio: String
+Alumno (n:String, d:String)+setNombre(n:String):void+getNombre():String
Creacin de instancias u objetos a partir de la clase Alumno:
Alumno alumno1 = new Alumno(Juan Perez, Las Peas);
Alumno alumno2 = new Alumno(Abel Garcia, Los ceibos);
8/4/2019 Fundamentos POO
32/38
Constructor
Mtodo especial con el mismo nombre de laclase.
Es llamado automticamente cuando un
objeto de una clase es creado.Se encarga inicializar las variables del objeto.
Puede tomar argumentos pero no puedenretornar un valor.
Se puede tener ms de un constructor en unaclase.
8/4/2019 Fundamentos POO
33/38
Constructor
Permite instanciar objetos de la clase
alumno1 = new Alumno(Juan Perez, Las Peas);
alumno2 = new Alumno(Abel Garcia, Los Ceibos);
Alumno
-nombre:: String
-domicilio: String+Alumno (n:String, d:String)+setNombre(n:String):void+getNombre():String
8/4/2019 Fundamentos POO
34/38
Ejemplo de Constructor
public class Count {
private int count;
public Count( ) {
count = 0;}
public Count (int number) {
count = number;
}
}
Count contador = new Count( );
8/4/2019 Fundamentos POO
35/38
Relaciones entre objetos
Tiene: a un objeto pertenecen objetosde otras clases
Ejemplo: Un computador tiene un teclado
Conoce: un objeto conoce datos sobreobjetos de otra clase
Ejemplo: un estudiante conoce en que curso
se registro
Es un: un objeto comparte caracteristicascon otra clase
Ejemplo: un estudiante es una persona
8/4/2019 Fundamentos POO
36/38
Ejemplos de Objetos
Un objeto empaqueta datos (unarepresentacin concreta) y procedimientosque operan sobre los datos.
8/4/2019 Fundamentos POO
37/38
Ejemplos de Objetos
Nombre
Datos/Atributos/Campos
Mtodos/Servicios/Interfaz
8/4/2019 Fundamentos POO
38/38
Resumen Principios
Todo es un objeto
Los objetos realizan operaciones (computan) solicitando serviciosentre ellos a travs del paso de mensajes
Todo objeto tiene su propia memoria, la cual consiste de otrosobjetos
Todo objeto es una instancia de una clase. Una clase agrupaobjetos similares.
En la clase se describe el comportamiento de los objetos.
Las clases estn organizadas en una jerarqua con una nica raz,llamada la jerarqua de herencia.