2 Clases y Objetos en JAVA
Programación Orientada a Objetos
Curso 2009/2010
Begoña Moros Valle
Índice
Introducción
Clases
Objetos
Semántica referencia
Métodos y mensajes
Creación de objetos
Modelo de ejecución OO
Genericidad
Principios de diseño de clases
Tema 2
Clases y Objetos
2
Introducción
Programa OO
Colección estructurada
de clases
Clase
Implementación deun
Tipo Abstracto de Datos (TAD)
Objeto
Una instancia de una clase
Los objetos se comunican mediante mensajes
Tema 2
Clases y Objetos
3
Clases
DEFINICIÓN: Implementación total o parcial de un TAD
Entidad sintáctica que describen objetos que van a
tener la misma estructura y el mismo
comportamiento.
Doble naturaleza: Módulo + Tipo de Datos
Módulo (concepto sintáctico)
Mecanismopara organizar el software
Tipo (concepto semántico)
Tema 2
Mecanismo de definición de nuevos tipos de datos: describe
una estructura de datos (objetos) y las operaciones
aplicables.
Clases y Objetos
4
Módulo ≠ Tipo. Ejemplo Modula2
DEFINITION MODULE Pila;
EXPORT QUALIFIED PILA, vacia, pop, push, tope;
TYPE PILA;
PROCEDURE
PROCEDURE
PROCEDURE
PROCEDURE
PROCEDURE
vacia(pila:PILA):BOOLEAN;
nuevaPila: PILA;
pop (VAR pila:PILA):INTEGER;
push (VAR pila:PILA; valor:INTEGER);
tope (VAR pila:PILA):INTEGER;
END Pila;
Tema 2
Clases y Objetos
5
Especificación separada de la implementación
IMPLEMENTATION MODULE Pila;
TYPE PILA = POINTER TO Node;
Node = RECORD
valor:INTEGER;
siguiente:PILA;
END;
PROCEDURE pop (VAR pila:PILA):INTEGER;
…
END pop;
...
END Pila;
Tema 2
Clases y Objetos6
Componentes de un clase
Atributos:
Métodos:
Determinan una estructura de almacenamiento para cada
objeto de la clase
Operaciones aplicables a los objetos
Único modo de acceder a los atributos
Ejemplo: En una aplicación bancaria, encontramos objetos
“cuenta”. Todos los objetos “cuenta” tienen propiedades comunes:
atributos: saldo, titular, ...
operaciones: reintegro,ingreso, …
Definimos una clase CUENTA
Tema 2
Clases y Objetos
7
Ejemplo: Clase Cuenta
Cuenta
titular: String;
saldo: double;
reintegro(valor:double);
ingreso (valor:double);
Tiempo de ejecución
Tema 2
Definición de la clase
Atributos
Métodos
“José Martínez” titular
1200.0
saldo
Objeto Cuenta
Clases y Objetos
8
Clase Cuenta en Java
class Cuenta{
String titular;
double saldo;
ATRIBUTOSvoid ingreso (double cantidad){
saldo = saldo + cantidad;
}
void reintegro (double cantidad){
if (cantidad <= saldo)
saldo = saldo – cantidad;
MÉTODOS
}
}
Tema 2
Clases y Objetos
9
Ocultación de Información
A las características de una clase (atributos y
métodos) se les puede asignar un modificador
de visibilidad:
public:
private:
Característica pública, accesible desde todaslas clases
Característica privada, accesible sólo dentro de la clase
donde se define
Principio de diseño:
Todos los atributos de una clase son privados
Los métodos pueden tener distintos niveles de
visibilidad
Tema 2
Clases y Objetos
10
Clase Cuenta en Java
class Cuenta{
private String titular;
private double saldo;
public void ingreso (double cantidad){
saldo = saldo + cantidad;
}
publicvoid reintegro (double cantidad){
if (puedoSacar(cantidad))
saldo = saldo – cantidad;
}
private boolean puedoSacar(double cantidad){
return cantidad <= saldo;
}
}
Tema 2
Clases y Objetos
11
Acceso y modificación de atributos
La única forma de acceder a los atributos es a
través de métodos públicos
Métodos get Æ para consultar el valor del
atributo
Métodos set Æ para establecerel valor del
atributo
La implementación de los métodos set/get
depende del nivel de acceso de los atributos.
Se aísla al cliente de los cambios en la
estructura de datos.
Tema 2
Clases y Objetos
12
Clase Cuenta en Java
class Cuenta{
private String titular;
private double saldo;
public String getTitular(){
return titular;
}
//No setTitular porque es inmutable
public double getSaldo(){
return...
Regístrate para leer el documento completo.