Creando las primeras clases en Java |
Creando las primeras
clases en Java
Vamos a crear unas aplicaciones Java. El nombre del archivo que contiene
el código fuente va a llamarse exactamente igual que la clase a construir.
1. La siguiente clase se llama Punto2D y el archivo que la contiene
se llama Punto2D.java:
class Punto2D /* Declaración de la clase */
{
int x;
int y;
public static void main(String a[])
{
Punto2D p1 = new Punto2D();
p1.x = 5;
p1.y = 7;
System.out.println(p1.x + "," + p1.y);
}
}
Suponiendo que la clase se guardó en un directorio programas debajo
de la raiz, la compilación y la ejecución serán de la siguiente manera:
c:\programas>javac Punto2D.java
c:\programas>java Punto2D
5,7
2. Modifique la clase de la siguiente manera:
class Punto2D
{
int x;
int y;
public static void main(String a[])
{
Punto2D p1 = new Punto2D();
Punto2D p2 = new Punto2D();
p1.x = 5;
p1.y = 7;
p2.x = 10;
p2.y = 20;
System.out.println(p1.x + "," + p1.y);
System.out.println(p2.x + "," + p2.y);
}
}
Al salvar, compilar y ejecutar la clase, el resultado será:
5,7
10,20
3. Se observa que las variables de cada objeto tienen valores diferentes.
Iniciar las variables de cada objeto asignándoles un valor directamente
es "engorroso" por lo que ahora se iniciarán utilizando el constructor de
cada objeto.
En Java, todas las clases tienen un constructor por default (que
no tiene argumentos). Si queremos un constructor con argumentos, el
constructor por default se anula y hay que crear el nuevo constructor
(firma e implementacion). |
Modifique de nuevo Punto2D.java:
class Punto2D /* Declaración de la clase */
{
int x;
int y;
Punto2D(int a,int b)
{
x = a;
y = b;
}
public static void main(String a[])
{
Punto2D p1 = new Punto2D(5,7);
Punto2D p2 = new Punto2D(10,20);
System.out.println(p1.x + "," + p1.y);
System.out.println(p2.x + "," + p2.y);
}
}
Al salvar, compilar y ejecutar la clase, el resultado es el mismo de la
vez anterior. 4. Ahora cierre el archivo Punto2D.java y cree un nuevo archivo
llamado Punto3D.java ya que este archivo va a tener una clase llamada Punto3D,
pero esta nueva clase va a ser clase hija de Punto2D:
class Punto3D extends Punto2D
{
// las variables x,y son heredadas automaticamente
int z;
Punto3D(int a,int b,int c)
{
super(a,b);
z = c;
}
public static void main(String a[])
{
Punto3D p3 = new Punto3D(8,11,5);
System.out.println(p3.x + "," + p3.y + "," + p3.z);
}
}
Al salvar, compilar y ejecutar esta nueva clase, el resultado será el siguiente:
8,11,5
|