Vemos lo que son las clases, cómo crearlas y algunos detalles adicionales de su uso.
En si, y como he comentado anteriormente en el Manual de Java, las clases marcan la estructura básica de un programa tanto en Java como en la programación orientada a objetos en general.
Una clase es el producto de enfocar la programación a los datos más que a las funciones. Por tanto una clase es una colección de datos y además para operar con ellos una serie de funciones propias de la clase. Veamos por ejemplo la clase "Fichas" definida anteriormente, su único dato es "el color" y la única operación que permite es saber el color de la ficha en cualquier momento. Eso permite un acceso restrictivo a los datos según la función de los mismos. En este caso la clase es así basándose en la vida misma: No creo que nadie haya cambiado el color de una ficha jugando a las "cuatro en raya" y en caso positivo no tendría muy buenas intenciones al hacerlo.
Además de este método básico de protección de los datos, Java permite algunos más que vemos ahora mismo.
Cuando declaramos una clase lo primero que ponemos es la cabecera:
public class Fichas { (cuerpo de la clase) }
La primera palabra nos proporciona la posibilidad de dar permisos de accesos a nuestra clase, los permisos son los siguientes:
Es lo mismo que si escribimos:
package class Fichas {(Cuerpo de la clase)}
Las clases "package" ( que podemos entender como las que no son "public" ) son accesibles solo desde su propio package.
Esto es relativo a la accesibilidad de las clases. Más conceptos relativos a la accesibilidad hacen referencia a las variables internas de una clase que ya comentamos en un capítulo anterior, y a sus métodos.
En cuanto al nombre de la clase consideraremos varias cosas. Debe de obedecer al convenio de nombres de Java y coincidir con el nombre del fichero ".java" en el que se guardará la clase.
Lo normal es que cada clase vaya incluida en un único fichero pero claro está, nos puede interesar por algún motivo meter varias clases en un único fichero. En este caso solo puede haber una clase public que es la que dará el nombre a dicho fichero. En caso de que no hubiese una clase public el compilador entenderá que la clase "principal" de ese fichero es la que concuerda con el nombre del mismo, por lo que evidentemente dos clases con un mismo nombre no son permitidas en un mismo fichero.
Por último para explicar la estructura de una clase explicaré los elementos habituales en la definición de su cuerpo.
Primero se suelen declarar, al menos, las variables internas de esa clase y posteriormente se definen los constructores y los métodos que dispondrá la clase. Lo entenderemos mejor más adelante
En la definición de constructores y métodos tenemos que tener en cuenta un nuevo concepto de la programación orientada a objetos. La sobrecarga. La sobrecarga consiste en poder tener varios métodos o constructores con el mismo nombre dentro de una misma clase y que no hagan las mismas cosas.
Esto se consigue de una manera muy sencilla, se diferencian entre ellos mediante el número y tipo de parámetros que reciben. Veamos un ejemplo:
/*tenemos dos métodos que pueden por ejemplo obtener el área de una figura geométrica en concreto, podrían ser:*/
float obtenerAreaCirculo(Circulo ci){
/* ... */
}
float obtenerAreaCuadrado(Cuadrado cu){
/* ... */
}
/*en Java esto se puede abreviar teniendo dos métodos sobrecargados, por ejemplo: */
float obtenerArea(Circulo ci){
/* ... */
}
float obtenerArea(Cuadrado cu){
/* ... */
}
/*A la hora de ejecutar el método obtenerArea se utilizará el que corresponda al parámetro que se le pase por cabecera*/
Una clase es el producto de enfocar la programación a los datos más que a las funciones. Por tanto una clase es una colección de datos y además para operar con ellos una serie de funciones propias de la clase. Veamos por ejemplo la clase "Fichas" definida anteriormente, su único dato es "el color" y la única operación que permite es saber el color de la ficha en cualquier momento. Eso permite un acceso restrictivo a los datos según la función de los mismos. En este caso la clase es así basándose en la vida misma: No creo que nadie haya cambiado el color de una ficha jugando a las "cuatro en raya" y en caso positivo no tendría muy buenas intenciones al hacerlo.
Además de este método básico de protección de los datos, Java permite algunos más que vemos ahora mismo.
Cuando declaramos una clase lo primero que ponemos es la cabecera:
public class Fichas { (cuerpo de la clase) }
La primera palabra nos proporciona la posibilidad de dar permisos de accesos a nuestra clase, los permisos son los siguientes:
- "Public": Una clase "public" es accesible desde cualquier otra clase, no obstante para que esto suceda debe ser primero accesible el "package" de esa clase "public". Para que un "package" sea accesible debe de estar en el directorio que señala la variable "CLASSPATH" que definimos al instalar nuestro entorno Java y, claro está, tener permiso de lectura en ese directorio.
- "Package": Usar este identificador en la cabecera de la clase es opcional, pues es la opción por defecto en java, es decir, si escribimos:
Es lo mismo que si escribimos:
package class Fichas {(Cuerpo de la clase)}
Las clases "package" ( que podemos entender como las que no son "public" ) son accesibles solo desde su propio package.
Esto es relativo a la accesibilidad de las clases. Más conceptos relativos a la accesibilidad hacen referencia a las variables internas de una clase que ya comentamos en un capítulo anterior, y a sus métodos.
En cuanto al nombre de la clase consideraremos varias cosas. Debe de obedecer al convenio de nombres de Java y coincidir con el nombre del fichero ".java" en el que se guardará la clase.
Lo normal es que cada clase vaya incluida en un único fichero pero claro está, nos puede interesar por algún motivo meter varias clases en un único fichero. En este caso solo puede haber una clase public que es la que dará el nombre a dicho fichero. En caso de que no hubiese una clase public el compilador entenderá que la clase "principal" de ese fichero es la que concuerda con el nombre del mismo, por lo que evidentemente dos clases con un mismo nombre no son permitidas en un mismo fichero.
Por último para explicar la estructura de una clase explicaré los elementos habituales en la definición de su cuerpo.
Primero se suelen declarar, al menos, las variables internas de esa clase y posteriormente se definen los constructores y los métodos que dispondrá la clase. Lo entenderemos mejor más adelante
En la definición de constructores y métodos tenemos que tener en cuenta un nuevo concepto de la programación orientada a objetos. La sobrecarga. La sobrecarga consiste en poder tener varios métodos o constructores con el mismo nombre dentro de una misma clase y que no hagan las mismas cosas.
Esto se consigue de una manera muy sencilla, se diferencian entre ellos mediante el número y tipo de parámetros que reciben. Veamos un ejemplo:
/*tenemos dos métodos que pueden por ejemplo obtener el área de una figura geométrica en concreto, podrían ser:*/
float obtenerAreaCirculo(Circulo ci){
/* ... */
}
float obtenerAreaCuadrado(Cuadrado cu){
/* ... */
}
/*en Java esto se puede abreviar teniendo dos métodos sobrecargados, por ejemplo: */
float obtenerArea(Circulo ci){
/* ... */
}
float obtenerArea(Cuadrado cu){
/* ... */
}
/*A la hora de ejecutar el método obtenerArea se utilizará el que corresponda al parámetro que se le pase por cabecera*/
Victorino Blanco González
Forma parte del equipo DesarrolloWeb.com y MercadoProfesional.com