Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ORIENTADO A OBJETOS
Resumen
Se estudiara el paradigma de la orientacin a objetos y como se emplea en Java.
2.2. Encapsulamiento
El encapsulamiento oculta como las cosas funcionan dentro de un objeto
Solo nos comunicamos con el objeto a travs sus mtodos
Los mtodos son una interfaz que permite ignorar como estn implementados.
No es posible evadir el encapsulamiento en OO
El cajero automtico P5 es un objeto que entrega dinero.
El cajero encapsula todas las operaciones a los tarjetahabientes.
Evadir este encapsulamiento es un robo al cajero.
Ejercicio
Complete con operaciones y atributos lo siguiente:
Objeto
Operaciones
Cajero automtico P5
Universidad
Computadora
Auto de carreras
DVD
Satlite
Atributos
Cliente
o
Transmisor
Mensaje
getEdad()
Persona
getEdad
getNombre
Edad
getDireccio Nombre
n
Direccion
setEdad
setNombre
setDireccion
Nueva posicin
Cambio de
orbita Satlite
Monitorear
Ejemplos:
El radar en tierra monitorea el satlite. El satlite es monitoreado por el radar en tierra.
Un cliente tiene una cuenta de ahorros. La cuenta de ahorros pertenece a un cliente.
2.4. Clases
Una clase es una molde para crear objetos.
Para definir una clase se tiene que indicar las operaciones y atributos
Los objetos son instancias de la clase.
Cuando se cree un cajero automtico P3 no se requiere indicar sus operaciones y
atributos.
Solo se requiere indicar a que clase pertenece.
Clase
Atributos
Mtodos
Cliente
int edad
String nombre
String direccin
cambiarDireccion()
Pelcula
String titulo
double precio
String categoria
cambiarPrecio()
Identificacin de clases
Reconocer una estructura y comportamiento comunes entre varios objetos.
Objeto
Operaciones
Atributos
Escribir
Recargar
Cantidad de tinta
Color de tinta
Escribir
Recargar
Cantidad de tinta
Color de tinta
Lapicero rojo
Pluma y tinta
Ejercicio
A que clase pertenecen estos dos objetos?
Clases y Objetos.
Las clases son definiciones estticas que nos permite entender todos los objetos de esa
clase.
Los objetos son entidades dinmicas que existen en el mundo real y en simulaciones del
mundo real.
2.5. Herencia
Entre diferentes clases pueden haber similitudes
La herencia es una relacin entre clases donde una es padre de otra.
Las propiedades comunes definen la superclase. Clase padre.
Las subclases heredan estas propiedades. Clase hijo.
Un objeto hijo es un-tipo-de una superclase.
Un Helicptero es un tipo de Nave Area.
Nave Area
Jumbo
Helicptero
Globo
Dirigible
Ejercicio
Indique que propiedades tiene la clase Nave Area.
2.6. Polimorfismo
Significa que la misma operacin se realiza en las clases de diferente forma.
Abordar pasajeros
Barco
Tren
Helicptero
Ejemplos
Enviar calcularIntereses a objetos como: Cuenta de Ahorros, Cuenta CTS, Cuenta
Corriente.
En java se representa como: cuenta.calcularIntereses();
2.7.1. Paquetes
Un paquete es un contenedor (agrupador) de clases que estan relacionadas lgicamente.
Un paquete tiene sus clases en un mismo directorio
Varias clases pueden tener el mismo nombre pero en diferente paquete.
Para el problema de los Paquete:
Directorio:
alquileres se encuentran las
alquiler
C:/alquiler
clases:
Clases:
Archivos en C:/alquiler
Clase Pelicula
alquiler.Pelcula
Pelcula.java
Clase Contrato
alquiler.Contrat
Contrato.java
Clase Cliente
o
Cliente.java
alquiler.Cliente
Paquete
NO
NO
private
SOLO
SI
SOLO
SI
protecte HERED
almacen
HERED
A
SI
public
SI
SI
NO
Odisea 2001
1.Cada objeto es una instancia de alguna Ciencia
clase. Ficcion
El Padrino
Drama
Pelicula
private String titulo;
private String tipo;
public
void
mostrarDetalles()
public
void
obtenerTitulo()
2.Los objetos se crean con el operador new.
Pelcula
Pelcula
Pelicula pelicula1 =
new
pelicula1
Pelicula();
La Strada
Drama
int i;
int j = 3;
null
Pelicula pelicula1;
pelicula1
Pelicula pelicula2
=
pelicula2
new
Pelicula();
Dias de
Radio
- Se puede comparar un
objeto con null
2.8. Mtodos
Un mtodo es equivalente a una funcin o subrutina de otros lenguajes.
Los mtodos solo se definen dentro de una clase.
modificador tipoDeRetorno nombreMetodo (ListaDeArgumentos)
{
// desarrollo del mtodo;
}
2.8.1. Argumentos
En la definicin del mtodo se indica el tipo y el nombre de los argumentos del mtodo.
public void setTipo (String nuevoTipo) {
tipo = nuevoTipo;
}
Si el mtodo tiene varios argumentos, estos se separan por comas.
Laboratorio
Pelicula.java
public class Pelicula {
private String titulo,tipo;
//...
public String getTipo () {
return tipo;
}
public String setTipo (String nuevoTipo) {
tipo = nuevoTipo;
}
}
PruebaPeliculas.java
public class PruebaPeliculas {
public static void main (String[] args) {
Pelicula pelicula1 = new Pelicula();
pelicula1.setTipo("Comedia");
if (pelicula1.getTipo().equals("Drama")) {
System.out.println("La pelicula es un drama");
}
else {
System.out.println("La pelicula no es un drama");
}
}
}
2.9. Encapsulamiento
1. Las variables de instancia de una clase deberan ser declaradas como privadas
Solo un mtodo debera acceder a las variables privadas.
No se debe acceder a las variables de instancia directamente, sino a travs de un
mtodo.
Pelicula pelicula1 = new Pelicula();
if
(pelicula1.titulo.equals("Los doce del patibulo")) {
pelicula1.setTipo("Accion");
}
Cual de estas lneas no cumple con el encapsulamiento?
2. Cdigo de una clase.
Laboratorio
Pelicula.java
public class Pelicula {
private String titulo;
private String tipo;
//metodos settitulo,settipo,gettipo y gettipo, tostring
public void setTitulo (String nuevoTitulo) {
titulo = nuevoTitulo;
}
public void setTipo (String nuevoTipo) {
tipo = nuevoTipo;
}
public String getTitulo () {
return titulo;
}
public String getTipo () {
return tipo;
}
public String toString () {
return "titulo "+titulo+" tipo "+tipo;
}
}
Laboratorio
TestPrimitivas.java
public class TestPrimitivas {
public static void main (String[] args)
{
Laboratorio
TestReferencias.java
public class TestReferencias {
public static void main (String[] args)
{
}
}
Que muestra el programa?
// implicito
// explicito
// implicito
3.1.3. Constructores
Para una adecuada iniciacin de variables de instancia, la clase debe tener un constructor.
Un constructor se invoca automticamente cuando se crea un objeto.
Se declaran de forma pblica.
Tiene el mismo nombre que la clase.
No retorna ningn valor.
Si no se codifica un constructor, el compilador crea uno por defecto sin argumentos que solo
inicia las variables de instancia.
Laboratorio
Pelicula.java
System.out.println(pelicula2.getTitulo()
+pelicula2.getTipo());
System.out.println(pelicula3.getTitulo()
+pelicula3.getTipo());
}
}
Que muestra el programa?
TestThis.java
public class TestThis {
public static void main (String[] args) {
Pelicula pelicula1 = new Pelicula();
Pelicula pelicula2 = new Pelicula("Todo sobre mi madre");
System.out.println(pelicula1.getTitulo());
System.out.println(pelicula2.getTitulo());
}
}
this.titulo = titulo;
}
public String getTitulo() {
return titulo;
}
public static void setPrecio(float nuevoPrecio) {
precio = nuevoPrecio;
}
public static float getPrecio() {
return precio;
}
}
TestStatic2.java
public class TestStatic2 {
public static void main (String[] args) {
Pelicula.setPrecio(3.98f);
Pelicula oscar = new Pelicula("Ben Hur");
System.out.println(oscar.getPrecio());
oscar.setPrecio(4.98f);
System.out.println(Pelicula.getPrecio());
}
}
Indique que resultados que se obtienen, ?