Documentos de Académico
Documentos de Profesional
Documentos de Cultura
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Curso de Java
POO: Programacion orientada a objetos
Luis Guerra Velasco
Curso INEM 02830. Programaci
on en Java
Marzo 2010
Introducci
on a la POO
Herencia y polimorfismo
Indice
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Indice
Introducci
on a la POO
POO en Java
Herencia y polimorfismo
Empaquetado de proyectos
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Paradigma
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Caractersticas de la POO
Facilidad de dise
no y relaci
on con el mundo real (UML)
Reusabilidad y facilidad de mantenimiento
Sistemas mas complejos
Abstracci
on
Trabajo en equipo
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
UML
UML (Unified Modeling Language): Lenguaje unificado de
modelos
Mapa del codigo. No sirve para desarrollar, sino para
describir
Se utilizan diferentes diagramas. 13 en UML 2.0
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Elementos de la POO
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Elementos de la POO
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Clases
Plantillas para definir elementos (objetos)
Pueden estar directamente relacionadas unas con otras
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Clases
Plantillas para definir elementos (objetos)
Pueden estar directamente relacionadas unas con otras
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Ejemplo de plantilla
p u b l i c c l a s s NombreClase {
/
Atributos :
t i p o nombreAtributo1 ;
t i p o nombreAtributo2 ;
/
/
Metodos :
s a l i d a nombreMetodo1 ( p a r a m e t r o s ) { c o n t e n i d o d e l
metodo } ;
s a l i d a nombreMetodo2 ( p a r a m e t r o s ) { c o n t e n i d o d e l
metodo } ;
/
}
Introducci
on a la POO
POO en Java
Herencia y polimorfismo
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
POO en Java
p e r r o ( ) {}
comer ( ) {}
d o r m i r ( ) {}
l a d r a r ( ) {}
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Encapsulacion
Introducci
on a la POO
Herencia y polimorfismo
POO en Java
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
POO en Java
void
void
void
void
p e r r o ( ) {}
comer ( ) {}
d o r m i r ( ) {}
l a d r a r ( ) {}
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
POO en Java
Operadores
Operador .
Acceso a miembros de una clase:
p e r r o 1 . nombre = Pancho ;
perro1 . ladrar () ;
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
POO en Java
Operadores
Operador .
Acceso a miembros de una clase:
p e r r o 1 . nombre = Pancho ;
perro1 . ladrar () ;
Si soy la clase Due
no...
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
POO en Java
Operadores
Operador .
Acceso a miembros de una clase:
p e r r o 1 . nombre = Pancho ;
perro1 . ladrar () ;
Si soy la clase Due
no... Cuidado con la visibilidad!
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
POO en Java
Operadores
Operador .
Acceso a miembros de una clase:
p e r r o 1 . nombre = Pancho ;
perro1 . ladrar () ;
Si soy la clase Due
no... Cuidado con la visibilidad!
Operador this
Acceso a atributos dentro de la propia clase:
t h i s . nombre = Pancho ;
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Metodos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Metodos habituales
Constructor
Sirve para inicializar un objeto al crearlo
Existe sobrecarga (distintos parametros) (para cualquier
metodo)
Coincide con el nombre de la clase y no devuelve nada por
definicion
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Metodos habituales
Constructor
Sirve para inicializar un objeto al crearlo
Existe sobrecarga (distintos parametros) (para cualquier
metodo)
Coincide con el nombre de la clase y no devuelve nada por
definicion
Get & Set
Sirven para obtener o para modificar los atributos de una clase
Introducci
on a la POO
Herencia y polimorfismo
POO en Java
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Metodos tpicos
Destructor
No es tan tpico, no se suele usar (se hace de manera
automatica)
Se tiene que sobreescribir
No devuelve nada por definici
on
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Metodos tpicos
Destructor
No es tan tpico, no se suele usar (se hace de manera
automatica)
Se tiene que sobreescribir
No devuelve nada por definici
on
finalize
protected void f i n a l i z e ( )
Introducci
on a la POO
Herencia y polimorfismo
POO en Java
Instanciacion de objetos
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Instanciacion de objetos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Uso de objetos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Uso de objetos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Tipos de variables
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Tipos de variables
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
POO en Java
Tipos de variables
Introducci
on a la POO
Herencia y polimorfismo
Indice
Introducci
on a la POO
Herencia y polimorfismo
Herencia
Polimorfismo
Empaquetado de proyectos
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Herencia
Herencia
Introducci
on a la POO
Herencia y polimorfismo
Herencia
Superclase y Subclase
Trabajador es la superclase
Empleado y consultor son subclases
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Herencia
Superclase y subclase
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Herencia
Clase Object
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Herencia
Clase Object
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Herencia
Ejemplo de superclase
p u b l i c c l a s s Mamifero {
private String origen ;
private int patas ;
p r i v a t e S t r i n g nombre ;
...
p u b l i c Mamifero ( S t r i n g nombre , S t r i n g o r i g e n , i n t
patas ){
t h i s . nombre = nombre ;
this . origen = origen ;
this . patas = patas
}
...
}
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Herencia
Ejemplo de subclase
p u b l i c c l a s s P e r r o e x t e n d s Mamifero {
private String raza ;
...
p u b l i c P e r r o ( S t r i n g nombre , S t r i n g o r i g e n ) {
s u p e r ( nombre , o r i g e n , 4 )
}
...
}
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Herencia
Palabras reservadas
extends
Sirve para indicar la superclase de la cual se hereda
super
Sirve para acceder a miembros de la superclase desde la subclase
super = Llamada al constructor
super.metodoquesea = Llamada al metodoquesea
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Herencia
Recordatorio
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Polimorfismo
Redefinicion de metodos
Introducci
on a la POO
Herencia y polimorfismo
Polimorfismo
Ejemplo
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Polimorfismo
Ejemplo
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Polimorfismo
Ejemplo
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Polimorfismo
Apuntes
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Polimorfismo
Clases Abstractas
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Polimorfismo
Clases Abstractas
Introducci
on a la POO
Herencia y polimorfismo
Polimorfismo
Ejemplo abstract
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Polimorfismo
Ejemplo abstract
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Polimorfismo
Ejemplo abstract
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Polimorfismo
Clases Interfaz
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Polimorfismo
Palabras reservadas
interface
public interface Figura
implements
p u b l i c c l a s s C i r c u l o implements F i g u r a
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Polimorfismo
Interfaz
Introducci
on a la POO
Herencia y polimorfismo
Polimorfismo
Herencia multiple
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Polimorfismo
Herencia multiple
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Polimorfismo
Herencia multiple
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Indice
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Ficheros
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Ficheros
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Paquetes
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Paquetes
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Paquetes
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Paquetes
Introducci
on a la POO
Herencia y polimorfismo
Importar clases
Empaquetado de proyectos
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Accesos directos
No es recomendable usarlo
Se utilizara si vamos a acceder a algo muy concreto de otro
paquete
Acceso directo
e j e m p l o . C o n c r e t o ejem = new e j e m p l o .
Concreto () ;
Introducci
on a la POO
Herencia y polimorfismo
Empaquetado de proyectos
Librerias externas
Introducci
on a la POO
Herencia y polimorfismo
.JAR
Empaquetado de proyectos