Saltar al contenido principal
Página

Tema 1.2 - Programación Orientada a Objetos

En esta parte vamos a tratar con la base fundamental de lo que compone al lenguaje Java

¿Qué es una clase?

La clase se diseña para especificar las propiedades y el comportamiento que tiene un objeto. Las propiedades del objeto se implementan o definen a través de variables  y el comportamiento por medio de métodos. Las clases son como moldes de los cuales podemos producir varios objetos. 

Una clase inicia con la palabra reservada class y es sensitiva a mayúsculas, es decir, que se debe escribir todas con minúsculas, Class no es palabra reservada válida para java, class sí. El estado de una clase se define mediante atributos o variables de instancia.

El comportamiento de una clase se define mediante los métodos, los cuales pueden incluir una lista de argumentos. Una definición de clase puede incluir también comentarios y constructores.

¿Qué es un objeto?

Un objeto es una instancia de una clase. Todos los objetos comparten dos características su estado y su comportamiento. Se puede decir entonces que un objeto es una colección de métodos y atributos.

Piense en un molde de chocolate como la clase, es decir, el que define la forma que tendrá la chocolatina. El proceso de vaciar el chocolate en el molde como un método "Preparar chocolatina" y al obtener una chocolatina como el objeto, pero se pueden obtener chocolatinas con diferentes sabores y colores, en donde estos serán los atributos.


Estructura y Componentes de una clase


Los componentes que una clase java puede contener son:

  • La sentencia o instrucción package
  • La sentencia import 
  • Comentarios
  • Declaraciones y definiciones de la clase
  • Variables de Clase o Atributos
  • Métodos
  • Constructores

Sentencia Package (Paquete):

Esta sentencia puede o no aparecer en una clase, sin embargo toda clase Java pertenece a un package (paquete). Si la sentencia no es especificada significa que la clase pertenece al paquete por omisión (default). Si la sentencia es especificada, debe ser la primera sentencia en la clase Java. No pueden existir otras sentencias antes de ésta sentencia, si sucediera esto, la clase Java no podrá ser compilada. Sólo puede haber una sentencia package en una clase Java, no más.


Sentencia import:

Cuando las clases e interfaces Java que utilizará otra clase Java se encuentran en el mismo paquete no es necesario especificar el nombre del paquete antes del nombre de esas clases o interfaces, pero si no es así, es necesario escribir el nombre completo de la clase con todo y nombre del paquete al que pertenece dicha clase o interfaz utilizada. 

Para evitar estar escribiendo los nombres completos de las clases, se usa la sentencia import. Una vez utilizada esta sentencia, podemos llamar sólo con el nombre simple de la clase en nuestro código. Ejemplo:




En el ejemplo la clase Curso está contenida dentro del paquete escuela y la clase Maestro pertenece al paquete personal. Para que la clase Curso pueda utilizar la clase Maestro, debe escribir el nombre completo de la clase junto con el paquete  (como en el primer ejemplo) o utilizar la sentencia import y utilizar el nombre simple de la clase (como en el segundo ejemplo).

Si la sentencia import es usada, debe aparecer después de la sentencia package, si no, la clase no podrá compilar. La sentencia import puede aparecer varias veces en la clase.


Comentarios:

Java permite hacer o escribir comentarios en el código. Los comentarios pueden aparecer en cualquier parte de la clase, antes de la sentencia package, de la sentencia import, antes de la definición de la clase, antes de las variables, o antes de los métodos y dentro de los métodos mismos. Existen dos tipos de comentarios: los multilínea y los de “fin de línea”.

Los comentarios multilínea inician con "/*" y terminan con "*/", los comentarios “fin de línea” inician con "//" y  como su nombre lo indica, terminan con el salto o cambio de línea del código. Enseguida unos ejemplos de comentarios de los dos tipos:




Declaración de la Clase:

La declaración class marca el inicio de la clase. Basta con especificar la palabra reservada class y enseguida el nombre de la clase. La declaración de una clase esta compuesta por varias partes:




a) Modificadores de acceso 

b) Modificadores de no acceso 

c) Nombre de la clase 

d) Nombre de la clase base si ésta extiende de otra clase 

e) Nombre de todas las interfaces que implemente, si está implementado alguan iterface 

f) Cuerpo de la clase (campos de clase [class fields], métodos, constructores), incluidos dentro de llaves de inicio y fin, {} 


Nota: De estas partes o componentes sólo la palabra reservada class, el nombre de la clase y las llaves de apertura y cierre son obligatorias, el resto son opcionales.


Variables:

En java podemos declara variables a nivel de la clase y a nivel del método. Las variables declaradas a nivel de la clase son llamadas variables de instancia o atributos de instancia, y almacenan el estado de un objeto (también llamado instancia de una clase) .  Cada objeto o instancia de una clase tiene su propia copia de estas variables de instancia. Si los valores de estas variables cambian, no afectan a los valores de instancia de otros objetos. Las variables de instancia se definen  o especifican dentro del cuerpo de la clase pero fuera de los métodos de la clase.




Métodos:

Un método en Java es un conjunto de instrucciones definidas dentro de una clase, que realizan una determinada tarea y a las que podemos invocar mediante un nombre.




Constructor:

Un constructor de clase se usa para inicializar o crear los objetos de una clase. Una clase puede definir varios constructores que acepten diferentes conjuntos de parámetros de método.


Características de un constructor:

  • Estos métodos sólo se puede ejecutar al momento de la creación de un objeto, no es posible utilizarlos después.
  • No devuelven ningún valor.
  • El nombre del constructor es idéntico al nombre de la clase, así es como podemos identificar si una clase tiene constructores (siempre respetando las mayúsculas y minúsculas)
  • Por defecto en Java, se crea un constructor sin argumentos, conocido como constructor vacío. Este constructor lo agrega en automático el compilador de Java a nuestra clase, sin embargo si nosotros definimos un constructor distinto al constructor vacío, es decir, con argumentos, entonces Java ya no agrega el constructor vacío y es nuestra responsabilidad agregar el 
  • constructor vació a nuestra clase si fuera necesario.


Destructor:

Un destructor es un método opuesto a un constructor, éste método en lugar de crear un objeto lo destruye liberando la memoria de nuestra computadora para que pueda ser utilizada por alguna otra variable u objeto.

En java no existen los destructores, esto es gracias al recolector de basura de la máquina virtual de java. El recolector de basura recolecta todas las variables u objetos que no se estén utilizando y que no haya ninguna referencia a ellos por una clase en ejecución, liberando así automáticamente la memoria de nuestra computadora.

Aunque Java maneja de manera automática el recolector de basura, el usuario también puede decir en que momento Java pase el recolector de basura con la instrucción.


Última modificación: miércoles, 16 de marzo de 2022, 09:26