Publicado el 1 comentario

OCAJP 7. Definir la estructura de una clase java.

Definir la estructura de una clase java.

Las clases java tienen dos principales elementos: métodos y campos (fields). Los métodos en otros lenguajes son equivalentes a las funciones y los campos son lo equivalentes a las variables. En java ambos elementos son conocidos como miembros de la clase. Un método es una operación que puede ser llamado por otros métodos. Un método puede recibir datos por medio de Parámetros. Un método puede regresa un valor y declara de que tipo será este valor. Los Parámetros recibidos y los valores regresados por un método son representados por variables.

Las clases java hacen o crean objetos. Un objeto es una instancia creada en tiempo de ejecución  de una clase  ubicada en la memoria utilizada por un programa java. El estado de un programa es representado por todos los objetos de las diferentes clases que lo conforman.

La declaración completa de un método es conocida como la firma (signature) del método.

Ejemplo de una clase simple de java.

Simple Clase Java
Simple Clase Java

Para hacer comentarios de varias líneas en el código, java utiliza el estilo de C.  Pra iniciar un comentario se utilizan los caracteres /* y para terminar el comentario */  Java ignora todo lo contenido entre ese par de caracteres. Si se utiliza el formato de comentario que se muestra en el código anterior se logra a través de la herramienta javadoc generar automáticamente documentación de la clase en formato html. Otra forma de hacer comentarios, en una linea es usando los caracteres //. Todo lo que escriba después de esos caracteres será ignorado por java.

La primera línea de código después del comentario sirve para definir la clase. Se especifica primeramente un modificador de acceso (public) que indica que cualquier clase de cualquier paquete de clases puede acceder a nuestra clase y utilizarla. Se puede omitir este modificador de acceso (public) lo que le indicaría a java que a la clase definida sólo pueden acceder a ella clases del mismo paquete. Un paquete (package) en java, es la forma en que java organiza las clases y demás elemento, es una colección de clases que realizan una función similar. Paquete (package) es otro elemento de la estructura del código de la clase. Sin embargo el el ejemplo antes visto, no se especifica. Si se especificara debería ser la primera línea ejecutable en una clase, antes de definir la clase.

Como en el ejemplo no se especifica ningún paquete, el directorio pertenece a un paquete por default que lo representa el directorio donde fue creado el archivo que contiene el código de la clase. Todas las clases que se codificaran en el mismo directorio y sin especificar el paquete, pertenecerían al mismo paquete default.

Enseguida del modificador de acceso public se encuentra la palabra reservada class que le indica a java que se va a definir una clase. Enseguida se debe proporcionar el nombre que se le va a asignar a la clase, en este caso EstructuraClaseJava. El nombre de la clase puede ser cualquiera que le quiera dar el programador. Por regla de java se utiliza una palabra o palabras que indiquen un sustantivo ya que representarán un objeto en sí. Por regla el nombre de la clase empieza con Mayúscula y se utiliza el formato UpperCamelCase, es decir, si el nombre de la clase está compuesta de varias palabras, cada palabra debe empezar con mayúscula y el resto de la palabra con mayúsculas. Esto es sólo por convención, ya que el compilador java no marcará error si solo se emplean minúscula o sólo mayúsculas o una mezcla de estas, el nombre será válido para java.

Después del nombre de la clase se inicia un bloque que contendrá tanto los campos como los métodos de la clase. Recuerde que un bloque se forma con los corchetes de apertura y cierre. Por conveniencia por lo general se especifican primeramente todos los campos (fields) de la clase y enseguida los métodos, pero no es necesario, métodos y campos se pueden distribuir de otras formas, pueden ir primero los métodos y después los campos, o en forma intercalada, el compilador no marcará error.

En la siguiente linea del código de ejemplo, se declara una variable de instancia o campo x. En éste caso primero se establece el modificador de acceso del campo como privado (private). Ésto indica que a ese campo, otras clases, no lo pueden acceder directamente. Enseguida del modificador de acceso se declara el tipo del campo. Un tipo puede ser el nombre de una clase o un tipo primitivo de java, en este caso es int (número entero).  Enseguida se especifica el nombre de la variable o campo.  Por último punto y coma (;) que define el fin de una instrucción java. Java recomienda que el nombre de los campos, si es una sola palabra, se escriban con minúsculas. Si esta compuesta por varias palabras, la primera palabra inicie con minúsculas y el resto, la primer letra de la palabra inicie con mayúscula y el resto de la palabra con minúsculas al estilo lowerCamelCase.

El siguiente elemento en el ejemplo es un constructor. Esta estructura comienza especificando un modificador de acceso (public) y un nombre que es exactamente igual al nombre de la clase y un conjunto de paréntesis de apertura y cierre. Dentro de esos paréntesis pueden ir una serie de parámetros, pero en el ejemplo están vacíos. Enseguida le sigue un bloque de código que inicia por un corchete de apertura y termina con un corchete de cierre como ya hemos visto. Más adelante en otro tema se tratará específicamente de esta estructura llamada constructor. Los constructores no regresan ningún tipo de valor.

El último elemento en el ejemplo es un método. Se especifica el modificador de acceso (public), el tipo de dato a regresar por el método (int) en este caso un tipo primitivo entero, el nombre del método que por convención de java se declara de la forma lowerCamelCase visto anteriormente, un paréntesis de apertura, una lista de parámetros separados por comas y el paréntesis de cierre. A esta declaración le sigue un bloque de código como los que ya hemos visto. El nombre del método es metodoDeEjemplo. Lo convencional es que inicie con el nombre de un verbo ya que por lo generar los método representan acciones.

En el ejemplo el método solo recibe un parámetro del tipo entero y de nombre m. Si el método recibiera más parámetros, cada par tipo y nombre de variable, irían separados por comas. Como éste método  debe regresar un valor dentro del bloque del método debe haber una instrucción return que debe regresar un dato del tipo especificado en la definición del método, en nuestro caso de tipo entero.

No pueden existir dos métodos con la misma firma (signature) en una misma clase. La firma de un método esta compuesto por el nombre del método, el número de parámetros, el tipo de parámetros y el orden de los parámetros en la lista de parámetros. Los constructores también tienen una firma. Una firma no incluye el tipo de dato que retorna un método.