informática
Repaso
Programación orientada a
objetos
Curso INEM. Programación en Java
Santiago Muelas Pascual
smuelas@fi.upm.es
! Clase
! Operador .
! Objeto
! this
! Atributo o variable de instancia
! Referencias
! Método
! Sobrecarga
! Instanciar/crear un objeto
! Constructor
Cohesión y acoplamiento
! Cohesión: Grado de relación entre lasdiferentes características de
un objeto
Ocultación de la información
! El acceso directo a tributos no es recomendable porque revela
la estructura interna del objeto
! Los métodos definen cómo se debe usar un objeto
! Permitir el acceso a los atributos es dar “vía libre” a manipular
su estado sin control
! Nos limita la posibilidad de modificar la implementación
! Objeto con unafunción muy bien definida: muy cohesionado
! Objeto con muchas funciones no relacionadas: poco cohesionado
! Acoplamiento: Grado de dependencia entre los diferentes objetos
! Programa en el que todas las clases tienen funciones distintas y
definidas: Poco acoplado
! Programa en el que todas las clases participan en todas las tareas
Muy acoplado
! Se debe maximizar la cohesión decada objeto y minimizar el
acoplamiento entre clases distintas
! En su lugar se deben definir métodos que, de forma genérica,
modifiquen el estado de acuerdo a consideraciones
semánticas
! Se debe prohibir el acceso a los atributos
! Modificadores de la visibilidad
Visibilidad/Control de acceso
Visibilidad/Control de acceso
public class Coche {
! Puede (y suele) haberdistintos niveles de visibilidad para los
miembros (atributos y métodos) de una clase.
private String color;
public void ponColor(color) {
! Existen cuatro tipos de modificadores:
!
!
private: sólo se puede acceder desde la propia clase
!
this.color = color;
public: se puede acceder desde cualquier lugar
protected: sólo se puede acceder desde la propia clase o desde
una claseque herede de ella
}
public static void main(String[] args) {
Coche c = new Coche();
! Se verá más en detalle en el tema de herencia
c.ponColor(“ROJO”);
! Por defecto (package): Se puede acceder desde las clases
pertenecientes al mismo paquete
c.color = “VERDE”;
}
! Se verá más adelante
}
1
2/2/12
Métodos get y set
Visibilidad/Control de accesopublic class Coche {
private String color;
! Convenio para acceder a atributos con visibilidad privada
public void ponColor(color) {
! Método Get
this.color = color;
}
!
Devuelve el valor de una variable
! Método Set
public static void main(String[] args) {
Coche c = new Coche();
c.ponColor(“ROJO”);
!
Modifica el valor de una variable
! El uso indiscriminadoelimina las ventajas de la ocultación
de la información.
c.color = “VERDE”; // ERROR!!!
}
}
Métodos get y set
public class Coche {
private String color;
public void setColor(color) {
this.color = color;
Métodos get y set
! Convenio para acceder a atributos con visibilidad privada
! Método Get
!
! Método Set
!
}
public String getColor() {
Devuelve el valor de unavariable
Modifica el valor de una variable
! El uso indiscriminado elimina las ventajas de la ocultación
de la información.
return color;
}
}
Métodos estáticos o de clase
! Muchas veces nos hacen faltan métodos que no necesiten de
un objeto para ser llamados. Ej: Math.sqrt()
! Métodos estáticos
! Tienen el modificador static delante de la declaración
! Se invocan dentrode un método o por medio del
identificador de la clase
!
Ej: MiClase.miMetodo(1,2,3); Math.sqrt(4.0);
static tipo nombreMetodo(parametros) {
}
Atributos estáticos o variables de
clase
! Variables comunes a todos los objetos
! Una sóla instancia/copia por clase
! Ej: Clase Coche Toyota Corolla
! Nº ventanas, dimensiones, …
! Tienen el modificador static delante de la...
Regístrate para leer el documento completo.