Programacion Orientada A Objetos
Programacion Orientada A Objetos
Unidad #2
Programación Orientada
a Objetos
PILARES DE LA
ORIENTACION A OBJETOS
Abstracción, Encapsulamiento, Herencia, Polimorfismo
Abstracción
Permite centrarse en
lo que hace el objeto
en lugar de como lo
hace.
Abstracción consiste
en imaginar un
objeto para poder
obtener sus
características,
atributos y funciones
esenciales para
luego crear un
modelo de ese
objeto y poder
generalizarlo.
Abstracción
Al empaquetamiento
de las variables de un
objeto bajo la
protección de sus
métodos se le llama
encapsulamiento
Encapsulamiento – Por
qué usarlo?
Proporciona CONTROL
La utilización del objeto es solamente a través de sus métodos
públicos (interfaz pública). Ocultamiento de su estructura
interna.
Permite realizar CAMBIOS transparentes para los usuarios
del objeto
La utilización del objeto no se ve afectada si se producen
cambios en el tipo de datos de la parte privada.
En POO se considera buena
práctica
package ruta.del.paquete;
Consideraciones:
• El paquete en Java se declara antes que
cualquier otra cosa.
• Cada punto en la ruta del paquete es una nueva
carpeta.
• Los paquetes en java se declaran siempre en
minúsculas y en caso de ser necesario las
palabras se separan usando un guion bajo.
• Si no se declara un paquete (paquete por
defecto)
Creación de un paquete 10
Ejemplos:
package otro_paquete.mi_paquete;
public class mi_clase {
package mis_clases.clases_publicas.clase_1;
public class Clase_1 {
}
Modificadores de acceso 11
PUBLIC:
•Este nivel de acceso permite acceder al elemento desde cualquier clase,
independientemente de que esta pertenezca o no al paquete en que se
encuentra el elemento.
PRIVATE
•Es el modificador más restrictivo y especifica que los elementos que lo
utilizan sólo pueden ser accedidos desde la misma clase en la que se
encuentran.
PROTECTED
•Indica que los elementos sólo pueden ser accedidos desde su mismo paquete y
desde cualquier clase que extienda la clase en que se encuentra,
independientemente de si esta se encuentra en el mismo paquete o no
DEFAULT
•Si no elegimos ningún modificador, se usa el de por defecto, que sólo puede
ser accedido por clases que están en el mismo paquete.
Modificadores de acceso 12
Clases 13
Clase - Sintaxis:
<modificador de acceso> class NombreClase
{
//miembros: atributos y metodos
}
Métodos – Sintaxis
<modificador de acceso> Tipo_Retorno nombreMetodo (<Parametros>)
{
//instrucciones
}
Objetos 14
Un constructor es un
Su función es inicializar el
método especial de una
objeto y sirve para
clase que se llama
asegurarnos que los
automáticamente
objetos siempre
siempre que se declara un
contengan valores
objeto a partir de esa
válidos.
clase.
Características:
• Generalmente de tipo publico.
• No tiene de dato para devolver.
• Puede tener o no parámetros de
Los constructores se
entrada. pueden sobrecargar
• Se invoca automáticamente al
crear un objeto.
Constructor - tipos 16
Constructor implicito o
Constructor explicito.
por defecto.
Si para una clase no se Es un constructor
define ningún método incluido por el
constructor se crea programador para
uno realizar alguna tarea
automáticamente por de inicialización en el
defecto. momento de
construcción de la
Es un constructor sin clase.
parámetros que no
hace nada.
Constructor - Ejemplo 17
//constructor
public automovil(String marcaNueva, String modeloNuevo,
String colorNuevo)
{
this.color = colorNuevo;
this.marca = marcaNueva;
this.modelo = modeloNuevo;
this.estado = 0;
this.velocidadActual = 0;
}
}
Sobrecarga 18
Tipos
Simple.- Una clase
hereda de un solo
clase padre
Cada clase tiene una y solo una superclase directa (herencia única).
•En ausencia de cualquier otra superclase explícita, cada clase es implícitamente una subclase
de la clase object.
gato g1 = (gato)a1;
Orientada a Objetos
Polimorfismo
Permite implementar múltiples
formas de un mismo procedimiento
(método) haciendo una variedad
de funciones con el mismo
nombre.
Un mensaje puede ser enviado a
diferentes objetos.
Características de la Programación 32
Orientada a Objetos
Polimorfismo - Ejemplo
Si tuvieras un auto, una moto y una
bicIcleta. ¿Cómo manejarías cada uno?
Lo observamos en ls objetos
Auto.- Meter cambios,
usar volante
manejar
Moto .- Usar timón, meter
cambios.
un objeto
Atributo.- Para usar el atributo de un objeto
Sintaxis:
nombreObjeto.nombreAtributo
Método.- Para invocar o llamar a los métodos de
un objeto
Sintaxis:
nombreObjeto.nombreMetodo()
34
Ejercicio - Almuerzo
Ejercicio - Almuerzo
Ejercicio - Almuerzo