Conceptos: Orientado a Objetos
Encapsulación Estricta
Encapsulación se refiere a la combinación de campos y métodos juntos en una clase de tal manera que los métodos trabajan sobre los datos, en oposición a los usuarios que acceden directamente a los campos
Encapsulación estricta se refiere a la utilización de la encapsulación en todos los campos de una clase, y sólo facilitar el acceso a los campos a través de métodos
Con encapsulación estricta, los campos de un objeto no pueden ser modificados o accedidos directamente, sólo a través de métodos
Para implementar encapsulación estricta, los campos de una clase privada deben proveer métodos públicos de acceso ("getter") y de modificación ("setter")
Beneficios
Se puede monitorear y validar todos los cambios de un campo
Se puede supervisar y dar formato a todos los accesos de un campo
El tipo de dato real de un campo puede ser ocultado al usuario
El usuario de un objeto no tiene conocimiento de cómo el objeto almacena sus datos
Si se necesita alterar un campo, los usuarios de la clase no se ven afectados por el cambio, siempre y cuando no se modifique la firma de los métodos
Bajo Acoplamiento
El acoplamiento es el grado en que un objeto depende de otro objeto de lograr su objetivo
Si los objetos están estrechamente acoplados, cambiar el código en una clase tiene un efecto importante sobre las clases dependientes y se requerirá cambios de código para varias clases
El código cambiante en una clase tiene un efecto mínimo en sus clases dependientes
Aumenta la reutilización de las clases
Alta Cohesión
Cohesión se refiere a cómo se vinculan las tareas específicas de un objeto
Alta cohesión es cuando un objeto realiza un conjunto de tareas que están estrechamente relacionadas
Bajaa cohesión es cuando un objeto realiza múltiples tareas que no están relacionadas entre sí
La baja cohesión crea código que es difícil de mantener y reutilizar
Las clases que implementan la alta cohesión, son más reutilizables y más fácil de probar y entender
Relaciones de Diseño
Relación "es un"
Es una sencilla comprobación para verificar que se está utilizando la herencia correctamente
En concreto, se debe ser capaz de afirmar que un objeto hijo "es un" objeto padre
Topic
Topic
Relación "tiene un"
Es una sencilla comprobación para verificar que se está utilizando adecuadamente la composición
Composición refiere a una clase que contiene una referencia a otra clase
Si un objeto "tiene un" atributo o propiedad específica, el atributo o propiedad es un buen candidato para crear un campo dentro de la clase del objeto
Topic
Beneficios
El código resultante es más lógico
El código es más fácil de entender
Las clases son más fáciles de reutilizar en otras relaciones y aplicaciones
El código es más fácil de mantener, especialmente si cambian las necesidades y requerimientos del programa
Modificadores y Herencia
Modificadores de Acceso
public
Un campo, método o constructor público de una clase es accesible a cualquier otra clase
private
Un campo, método o constructor privado sólo es accesible desde dentro de la clase que se declara
protected
Un campo, método o constructor protegido es accesible desde otras clases del mismo paquete o desde sus subclases (clases hijas)
default
Un campo, método o constructor sin modificador es accesible desde otras clases del mismo paquete
Modificador abstract
Una clase abstracta no puede ser instanciada
Un método abstracto debe ser sobrescrito
Una clase que contiene un método abstracto también debe declararse abstracta
Una clase hija debe sobrescribir los métodos abstractos de su clase padre o la clase hija también debe ser abstracta
Los modificadores de acceso en la clase hija deben ser al menos tan accesible como los modificadores de acceso de los méódos abstractos de la clase padre
Un método abstracto no puede ser privado porque no seria visible en su clase hija y por lo tanto no puede ser sobrescrito
Los constructores no puedes ser abstractos ya que estos no se sobreescriben
Modificador final
Se aplica a las variables locales, campos, métodos o clases
Una variable o campo final no se puede cambiar una vez que se asigna. Estos se conocen como constantes
Un método final no puede ser sobrescrito
Una clase final no puede tener subclases
Convención
Los nombres de las variables deben estar en mayúsculas
Si el nombre de la variable es una palabra compuesta, se utiliza el guión bajo (_) para separar las palabras
final String COMPANY_NAME = "Sun";
Polimorfismo
Se refiere a cómo un objeto en Java puede adoptar "muchas formas"
Una clase hija puede adoptar la forma de su clase padre
Una clase puede adoptar la forma de sus interfaces implementadas
Métodos Virtuales
Todos los métodos en Java son métodos virtuales
Si un método se sobrescribre, el método se reemplaza en tiempo de ejecución
El compilador ve el método de la clase padre en tiempo de compilación
Referencias polimórficas a menudo necesitan ser moldeadas a su tipo de clase adecuada
Topic
Operador instanceof
Es un operador booleano que se utiliza para comparar una referencia a un tipo de clase
Si la referencia es del tipo de clase dada, entonces el resultado es verdadero, de lo contrario, es falso
Sintaxis
reference instanceof ClassName
Uso
Un uso son los métodos con parámetros polimórficos
Si el parámetro de un método es un tipo de clase, el argumento puede ser cualquier clase hija
Topic
Colección Heterogénea
Es una colección de objetos que no son del mismo tipo de dato, pero que tienen una clase padre común
Topic
Conceptos: Orientado a Objetos
Added: 2010-05-03 20:26:48
From: (Joined 2010-02-12 14:50:58)
702 views |50 downloads
Conceptos: Orientado a Objetos