LENGUAJE JAVA

Programación orientadas de objetos (POO)

Java es un lenguaje orientado a objetos (OO), por lo que, antes de empezara ver qué
elementos componen los programas Java, conviene tener claros algunos conceptos de la POO.

Un objeto es un
conjunto de variables junto con los métodos relacionados con éstas. Contiene la
información (las variables) y la forma de manipular la información (los métodos).

Una
clase es el prototipo que define las variables y métodos que va a emplear un determinado
tipo de objeto, es la definición abstracta de lo que luego supone un objeto en memoria.

un campo es un elemento que
contiene información relativa a la clase

un método es un elemento que permite
manipular la información de los campos.

un constructor es un elemento
que permite reservar memoria para almacenar los campos y métodos de la clase, a la hora
de crear un objeto de la misma.

la herencia podemos definir una clase a partir de otra que ya exista, de forma que la nueva clase tendrá todas las variables y métodos de la clase a partir de la que se crea, más
las variables y métodos nuevos que necesite. A la clase base a partir de la cual se crea la nueva clase se le llama superclase.

Por ejemplo, podríamos tener una clase genérica Animal, y heredamos de ella para formar clases más específicas, como Pato, Elefante, o León. Estas clases tendrían todo lo de la clase padre Animal, y además cada una podría tener sus propios elementos adicionales.

Una característica derivada de la herencia es que, por ejemplo, si tenemos un método
dibuja(Animal a), que se encarga de hacer un dibujo del animal que se le pasa como
parámetro, podremos pasarle a este método como parámetro tanto un Animal como un
Pato, Elefante, o cualquier otro subtipo directo o indirecto de Animal. Esto se conoce como polimorfismo.

MODIFICADORES DE ACCESO

Tanto las clases como sus elementos (constructores, campos y métodos) pueden verse modificados por lo que se suelen llamar modificadores de acceso, que indican hasta dónde es accesible el elemento que modifican. Tenemos tres tipos de modificadores:

privado: el elemento es accesible únicamente dentro de la clase en la que se
encuentra

protegido: el elemento es accesible desde la clase en la que se encuentra, y además
desde las subclases que hereden de dicha clase.

público: el elemento es accesible desde cualquier clase.