Menú Curso Java Básico : Variables, Constructores, Métodos y Comentarios

Espacio (Anterior) Composición, Clases y Librerías ("Packages") Espacio Herencias, Condicionales y Ciclos (Siguiente) Espacio

Objetos y Primitivos.

Al diseñar sus primeros programas en Java, pudo notar que todo gira alrededor de instancias de Objetos que son manipuladas a través de referencias:

Lampara candil = new Lampara();
candil.prender();

Al utilizar referencias en Java estas pueden ser inicializadas sin que pertenezcan a ninguna instancia de Objeto:

String let;

La declaración anterior genera una referencia, sin embargo, esta no es asociada con ninguna instancia de Objeto, para llevar acabo este proceso es necesario utilizar el vocablo new.

 
String let = new String("Algo sencillo") 

La declaración anterior no solo genera una instancia nueva de la Clase String, sino le asigna un valor inicial ("Algo sencillo") el cual es asignado a la referencia let; este mecanismo de agregar valores al generar una instancia es llevada acabo a través de métodos denominados constructores los cuales serán descritos posteriormente.

El hecho de generar instancias de objetos es un proceso involucrado ( hablando en términos computacionales mas no en sintaxis ) , es por esto que Java ofrece un mecanismo simplístico para definir estructuras de datos como alternativa a utilizar Clases/Objetos, dichas estructuras son conocidas como primitivos.

Aunque estrictamente hablando un primitivo no es una clase a través de un primitivo se facilita el uso de valores comúnmente utilizados en lenguajes de programación, donde el generar una instancia de Clase resultaría en un proceso tardado y mecánico. En la siguiente tabla se describen los diversos primitivos disponibles en el lenguaje Java:

Tipo de Primitivo

Tamaño

Valor Mínimo

Valor Máximo

Valor Default

"Wrapper"

boolean

-

-

-

false

Boolean

char

16-bit

Unicode 0

Unicode 216- 1

`\u0000' (null)

Character

byte

8-bit

-128

+127

(byte) 0

Byte

short

16-bit

-215

+215-1

(short) 0

Short

int

32-bit

-231

+231-1

0

Integer

long

64-bit

-263

+263-1

0L

Long

float

32-bit

IEEE754

IEEE754

0.0f

Float

double

64-bit

IEEE754

IEEE754

0.0d

Double

void

-

-

-

-

Void

Nótese que estos primitivos inician con letra minúscula, en la tabla anterior se describen los rangos de dichos primitivos así como sus respectivos "Wrappers"; estos "Wrappers" son Clases utilizadas como contra parte de primitivos:

 
char c = 'x';
Character C = new Character(c);

La primer linea genera un primitivo el cual es asignado a la variable c, posteriormente se genera una instancia de la Clase Character (Nótese el uso del vocablo new); el uso de "Wrappers" (Objetos) para primitivos es empleado bajo ciertas circunstancias, sin embargo, vale mencionar que existen diversos mecanismos para convertir de Clases tipo Objeto ("Wrappers") a primitivos y viceversa, a continuación se describen los mecanismos para realizar este tipo de conversiones :

El uso práctico para emplear "Wrappers" y/o primitivos será explorado en una futura sección de este curso.

Campos("Fields") y Métodos.

Cuando se define una Clase esta puede contener dos tipos de elementos: Campos ("Fields") o Métodos, los métodos ya fueron descritos en los ejemplos anteriores, sin embargo , un campo es un objeto o primitivo utilizado para guardar datos en cada instancia de un objeto :

En Java existen ciertos campos que son definidos como final, y aunque dicho calificativo puede ser empleado en métodos y Clases su uso más común es en campos, su significado puede ser descrito con las siguientes palabras: "No puede cambiar"; las razones por las que es utilizado final pueden ser: Eficiencia o Diseño.

Al utilizarse final en variables (primitivos) estas toman un valor constante al llevarse acabo la compilación, lo anterior permite mayor eficiencia al momento de ejecutarse un programa ("Run-Time"), ahora bien, cuando es utilizado final en referencias de Objetos se restringe que dicha referencia sea utilizada para apuntar hacia otro Objeto, esto permite realizar un diseño que prohibe a la referencia ser re-asignada, el uso del vocablo final será explorado en otra sección de este curso.

En ciertos métodos es utilizado el vocablo return que permite indicar el valor de retorno para un método:

Constructores.

Un Constructor es un método especial en Java empleado para inicializar valores en Instancias de Objetos, a través de este tipo de métodos es posible generar diversos tipos de instancias para la Clase en cuestión; la principal característica de este tipo de métodos es que llevan el mismo nombre de la clase, a continuación se describen varios ejemplos utilizando constructores:

Métodos y Parámetros por Referencia.

Cuando son utilizados Constructores puede surgir la necesidad de inicializar algún campo perteneciente a la Clase, esto trae consigo otro detalle en lo que concierne la asignación de valores dentro de un método, la razón se debe a que dentro de un método puede surgir el requerimiento de accesar campos definidos en la Clase, observe:

 
 public Class Cableado { 
     int longitud; 
     String tipo;    
    
     public Cableado(String tipo, int longitud)  { 
         this.tipo = tipo
         this.longitud = longitud;
    }
  ....
  ....
 }

En el caso anterior, dentro del constructor se desea asignar valores a los campos de una Clase, sin embargo, dentro del constructor son utilizados como parámetros de entrada los mismos valores, para tener acceso a los campos de la Clase se utiliza el vocablo: this, al emplear esta sintaxis se esta haciendo alusión a los campos de la Clase.

Aunque sería posible emplear distintos nombres para los valores de entrada, evitando el uso del vocablo this, la sintaxis con el vocablo this es ampliamente utilizada en el caso de Constructores mencionado anteriormente, así como Java Beans, un concepto utilizado en Java para ambientes Web (JSP's/Servlets).

Generación de Documentación (Vía Comentarios)

En muchos lenguajes el mantener documentación acerca de las Clases/Métodos escritos es una tarea que requiere un esfuerzo adicional, ya que por una parte debe mantenerse el código funcional mientras se debe generar documentación acerca de la funciones; en muchas ocasiones esta documentación ni existe, en Java la generación de Documentación es llevada en conjunción del código a través de comentarios.

A través de comentarios colocados en cada Clase/Método es posible generar documentación de una manera inmediata y concisa en formato de documentos HTML / XHTML , a continuación se describe un ejemplo :

Terminos Legales de Contenido ©2000-2011 Osmosis Latina

Diseñado bajo estándares : XHTML   CSS  

webmaster@osmosislatina.com