1. Una clase Simple.
Vamos a empezar nuestro estudio de la clase con un ejemplo sencillo. Aquí es una clase denominada
cuadro que define tres variables de instancia: anchura, altura y profundidad. Actualmente, cuadro no
contiene ningún método (pero algunos se agregarán pronto).
class Box {
double width;
double height;
double depth;
}
Como se indicó, una clase define un nuevo tipo de datos. En este caso, el nuevo tipo de datos se
denomina cuadro. Utilizará este nombre para declarar objetos de tipo cuadro. Es importante recordar
que una declaración de clase sólo crea una plantilla; no crea un objeto real. Así, el código anterior
no causa los objetos de tipo cuadro de existencia. Para crear realmente un objeto de cuadro, se
utiliza una instrucción como la siguiente: cuadro de mybox = new Box(); / / crear un objeto de cuadro
llamado mybox
Después de esta instrucción se ejecuta, mybox será una instancia de cuadro. De este modo,
dispondrá de realidad "física". Por el momento, no se preocupe sobre los detalles de esta
declaración. Una vez más, cada vez que se crea una instancia de una clase, se crea un objeto que
contiene su propia copia de cada variable de instancia definido por la clase. Por lo tanto, cada objeto
de cuadro contendrá sus propias copias de la anchura de las variables de instancia, altura y
profundidad. Para acceder a estas variables, se utiliza el operador de punto (.). El operador de punto
vincula el nombre del objeto con el nombre de una variable de instancia. Por ejemplo, para asignar
a la variable de ancho de mybox el valor 100, utilizaría la siguiente declaración:
mybox.width = 100;
Esta declaración indica al compilador que asignar la copia de ancho que está dentro de la mybox
objeto el valor de 100. En general, utilizar el operador de punto para acceder a las variables de
instancia y los métodos dentro de un objeto. Aquí es un completo programa que utiliza la clase Box:
/* A program that uses the Box class.
Call this file BoxDemo.java
*/
class Box {
double width;
double height;
double depth;
}
// This class declares an object of type Box.
class BoxDemo {
public static void main(String args[]) {
2. Box mybox = new Box();
double vol;
// assign values to mybox's instance variables
mybox.width = 10;mybox.height = 20;
mybox.depth = 15;
// compute volume of box
vol = mybox.width * mybox.height * mybox.depth;
System.out.println("Volume is " + vol);
}
}
Se debe consultar el archivo que contiene este programa BoxDemo.java, porque es el método
principal de () en la clase denominada BoxDemo, no la clase denominada cuadro. Cuando se compila
este programa, usted encontrará que se han creado los archivos .class dos, uno para el cuadro y
otro para BoxDemo. El compilador de Java pone automáticamente cada clase en su propio archivo
.class. No es necesario para el cuadro y la clase BoxDemo ser realmente en el mismo archivo de
origen. Cada clase se podría colocar en su propio archivo, llamado Box.java y BoxDemo.java,
respectivamente. Para ejecutar este programa, es necesario ejecutar BoxDemo.class. Al hacerlo, se
verá el siguiente resultado
Volume is 3000.0
Como se dijo anteriormente, cada objeto tiene sus propias copias de las variables de instancia. Esto
significa que si hay dos objetos de cuadro, cada uno tiene su propia copia de profundidad, el ancho
y el alto. Es importante comprender que los cambios a las variables de instancia de un objeto no
tener ningún efecto sobre las variables de instancia de otro. Por ejemplo, el siguiente programa
declara dos objetos de cuadro:
// This program declares two Box objects.
class Box {
double width;
double height;
double depth;
}
class BoxDemo2 {
public static void main(String args[]) {
Box mybox1 = new Box();
Box mybox2 = new Box();
double vol;
// assign values to mybox1's instance variables
mybox1.width = 10;
mybox1.height = 20;
mybox1.depth = 15;
/* assign different values to mybox2's
instance variables */
mybox2.width = 3;
mybox2.height = 6;
mybox2.depth = 9;
3. // compute volume of first box
vol = mybox1.width * mybox1.height * mybox1.depth;
System.out.println("Volume is " + vol);
// compute volume of second box
vol = mybox2.width * mybox2.height * mybox2.depth;
System.out.println("Volume is " + vol);
}
}
Aquí se muestra la salida producida por este programa: volumen es el volumen de 3000.0 es 162.0,
como puede ver, datos de mybox1 están completamente independientes de los datos contenidos
in mybox2.