Quiz1 Flashcards
Qué es una clase abstracta y cuando incorporar en El diseño una clase abstracta
Es una clase que no puede ser instanciada directamente. Se incorpora cuando quieres que varias clases compartan un conjunto de común de métodos y atributos pero que no tiene sentido instanciarla por si sola
¿Es obligatorio que una clase abstracta tenga un método abstracto obligatoriamente para crearla?
No, no es obligatorio que una clase abstracta tenga métodos abstractos para ser declarada como tal. Una clase en Java puede ser declarada como abstract incluso si no contiene ningún método abstracto.
A qué se le llama objeto?
A la instancia de una clase con métodos y atributos que interactúan entre si
Cuantos y cuales son los modificadores de acceso?
1Public
2.Private
3.Protected
4.Package-private
Es posible que un método haga diferentes cosas en base al objeto?
Sí, en POO es posible que un método realice diferentes acciones dependiendo del objeto al que se aplica, se le conoce como polimorfismo
Cómo se le llama a la practica de ocultar los detalles internos del funcionamiento de una clase?
Encapsulamiento
En que se basa el concepto de herencia?
Se basa en que clases hereden metodos y atributos de otras clases, las cuales no van a contar con los atributos y métodos que le agreguemos a esas clases hija
En que se diferencia una clase abstracta y una clase padre, si se podria decir que ambas heredan métodos y atributos a otras clases?
La diferencia radica en que las clases abstractas no es posible instanciarlas y no tiene sentido, en cambio, una clase padre aparte de heredar métodos y atributos, podemos instanciarla para crear un objeto de esa clase
¿Bajo que circunstancias debo incorporar un método abstracto en una clase?
Debes considerar usar un método abstracto cuando quieres asegurarte de que cada subclase implemente el método de una manera que sea específica para esa subclase, pero al mismo tiempo deseas garantizar que todas las subclases ofrezcan ese comportamiento específico.
Cuantos tipos de relación entre clases existen?
- Dependencia
- Agregación
- Composición
- Asociación
- Herencia
- Realización
Implicaciones de relacionar dos clases usando la relación de dependencia
Acoplamiento Temporal: La dependencia suele ser temporal y a menudo ocurre durante la invocación de métodos. Una clase dependiente puede requerir otra clase para un método específico pero no mantiene una referencia a largo plazo.
Cambios Sensibles: Si la clase de la que depende cambia (por ejemplo, cambios en la firma del método), la clase dependiente también podría necesitar cambios.
Flexibilidad: La dependencia permite cierta flexibilidad ya que las clases no están fuertemente acopladas. Esto facilita el reemplazo o la modificación de las clases dependientes.
Implicaciones de relacionar dos clases usando la relación de asociación
Relación Flexible: Las clases pueden interactuar entre sí pero mantienen su independencia y pueden existir por separado.
Acoplamiento Variable: La fuerza del acoplamiento puede variar, pero generalmente es menos intensa que en la composición o la agregación.
Navegabilidad: Puede ser unidireccional (una clase conoce a la otra pero no al revés) o bidireccional (ambas clases se conocen mutuamente).
Implicaciones de relacionar dos clases usando la relación de agregación
Relación “Tiene-Un”: Representa una relación de todo/parte, pero las partes (objetos de la clase agregada) pueden existir independientemente del todo (la clase agregadora).
Acoplamiento más débil que en Composición: Las partes pueden existir y ser utilizadas por otras clases o contextos fuera de la clase agregadora.
Gestión del Ciclo de Vida: El ciclo de vida de las partes no está estrictamente ligado al de la clase contenedora.
Implicaciones de relacionar dos clases usando la relación de composición
Relación “Tiene-Un” Fuerte: Las partes (objetos de la clase compuesta) están vinculadas de manera más fuerte al todo (la clase compuesta) y no pueden existir sin él.
Acoplamiento Fuerte: La clase compuesta tiene la responsabilidad total sobre el ciclo de vida y la gestión de las partes.
Exclusividad: Generalmente, las partes no se comparten con otras clases o contextos.
Que promueve el adecuado uso de modificadores de acceso?
El uso adecuado de los modificadores de acceso es crucial para un buen diseño de software. Promueve la mantenibilidad, la seguridad y la prevención de errores inadvertidos.