Clases en Java
Clases en Java
Las clases en Java son básicamente una plantilla que sirve para crear un objeto. Si
imaginásemos las clases en el mundo en el que vivimos, podríamos decir que la clase
«persona» es una plantilla sobre cómo debe ser un ser humano. Todos y cada uno de
nosotros, los seres humanos, somos objetos de la clase «persona», ya que todos somos
personas. La clase «persona» contiene la definición de un ser humano, mientras que cada ser
creado a partir de una clase, si tenemos un objeto “Materia, de código 001“, es una instancia
de la clase Materia.
Características de una clase en Java
Existe una estructura fundamental para todas las clases definidas en Java, que
Constructor: Aquí definimos las acciones que ocurrirán por defecto cuando creamos
Métodos: Estos son los procesamientos o acciones disponibles para el objeto creado a
partir de nuestra clase, normalmente aquí se definen métodos para asignar valores a
las propiedades (Atributos), como también métodos para obtener valores de las
propiedades.
HERENCIA EN JAVA
mecanismo en Java por el cual una clase permite heredar las características (atributos y
¿Qué es Herencia?
manera automática los miembros (atributos y métodos) de otras clases que ya existen,
En el lenguaje de Java, una clase que se hereda se denomina superclase. La clase que
hereda se llama subclase. Por lo tanto, una subclase es una versión especializada de una
superclase. Hereda todas las variables y métodos definidos por la superclase y agrega sus
Subclase: la clase que hereda la otra clase se conoce como subclase (o una clase
derivada, clase extendida o clase hija). La subclase puede agregar sus propios campos
queremos crear una clase nueva y ya hay una clase que incluye parte del código que
queremos, podemos derivar nuestra nueva clase de la clase existente. Al hacer esto,
Ventajas de la Herencia
Entre las principales ventajas que ofrece la herencia en el desarrollo de aplicaciones, están:
Reutilización del código: En aquellos casos donde se necesita crear una clase que,
además de otros propios, deba incluir los métodos definidos en otra, la herencia evita
utilizando para el tipo de programa para la que fue diseñada) sino que podemos crear
suya propia.
ABSTRACCIÓN EN JAVA
En Java se dice que son clases abstractas aquellas clases base (superclases) de las que
posibilidad de declarar clases que definen como se utiliza solamente, sin tener que
implementar métodos. Esto es muy útil cuando la implementación es específica para cada
usuario, pero todos los usuarios tienen que utilizar los mismos métodos. Un ejemplo sencillo
Ejemplo 1
Ejemplo 2
La gerencia de un taller mecánico necesita un sistema para controlar los vehículos que
ingresan a sus instalaciones. En este caso, las características esenciales de la clase vehículo
son: Marca, Modelo, Color, Falla detectada, Nombre del Propietario, Dirección del
la herencia. Por ejemplo, tenemos una clase vehículo y de ella dependen varias clases hijas
Tenemos la clase Parqueo. Dentro de ésta tenemos un método estacionar (). Puede que en un
Parqueo tenga que estacionar coches, motos o autobuses. Sin polimorfismo tendría que crear
un método que permitiese estacionar objetos de la clase "Coche", otro método que acepte
objetos de la clase "Moto" para estacionarlos, etc. Pero todos estaremos de acuerdo que
estacionar un coche, una moto o un bus es bastante similar: "entrar en el Parqueo, recoger el
ticket de entrar, buscar una plaza, situar el vehículo dentro de esa plaza...".
Lo ideal sería que nuestro método me permita recibir todo tipo de vehículos para
estacionarlos, primero por reutilización del código, ya que es muy parecido estacionar uno u
otro vehículo, pero además porque así si mañana el mercado trae otro tipo de vehículos,
como una van, todoterreno hibrido, o una nave espacial, mi software sea capaz de aceptarlos
Gracias al polimorfismo, cuando declaro la función estacionar () puedo decir que recibe
vehículos genéricos, sino todos aquellos objetos que hayamos creado que hereden de la clase
Vehículo, o sea, coches, motos, buses, etc. Esa relajación del sistema de tipos para aceptar
ENCAPSULAMIENTO
Consiste en unir en la Clase las características y comportamientos, esto es, las variables y
manejar la complejidad, ya que tendremos a las Clases como cajas rojas donde sólo se
conoce el comportamiento pero no los detalles internos, y esto es conveniente porque nos
interesará conocer que hace la Clase pero no será necesario saber cómo lo hace.
Ejemplo 1
De un televisor, el usuario conoce su apariencia y parte de su funcionamiento. Sólo le
importa que funcionen el selector de canales, el video y el audio; no le interesa saber cómo
funciona
Ejemplocada
2 una de las partes internas del aparato, ese detalle sólo le interesan al fabricante
y al técnico de servicio.
Caja Negra