Así como cuando se crean varias clases en un mismo archivo como se ve aquí Trabajando con más de una clase, también podemos separar esas clases en archivos distintos guardados en la misma carpeta.
■ Estructura de los archivos
Estando dentro de la carpeta donde decidamos crear nuestro proyecto debemos crear un archivo para la clase principal (la que contiene el método main) y un archivo extra para cada clase que incluya nuestro proyecto.
Por ejemplo si nuestra carpeta se llama "Proyecto", dentro de creamos nuestros archivos así:
Proyecto
ClasePrincipal.java
ClaseSecundaria1.java
ClaseSecundaria2.java
// ...y así las clases necesarias
■ Estructura del código
Para poder usar los métodos de las clases secundarias en la clase principal, basta con crear los objetos de cada una de las clases secundarias en el método main de la clase principal, al igual que lo haríamos si las clases secundarias estuvieran escritas dentro de la misma clase principal.
Ejemplo de la estructura de los códigos:
ClaseSecundaria1.java
class Secundaria1 {
public static void Metodo1() {
System.out.println("Método1 de ClaseSecundaria1"); }
public static void Metodo2() {
System.out.println("Método2 de ClaseSecundaria1"); }
}
ClaseSecundaria2.java
class Secundaria2 {
public static void Metodo1() {
System.out.println("Método1 de ClaseSecundaria2");
}
public static void Metodo2() {
System.out.println("Método2 de ClaseSecundaria2"); }
public static void Metodo3() {
System.out.println("Método3 de ClaseSecundaria2"); }
}
ClasePrincipal.java
public class ClasePrincipal {
public static void main (String[] args) {
ClaseSecundaria1 objetoSecundaria1 = new ClaseSecundaria1();
ClaseSecundaria2 objetoSecundaria2 = new ClaseSecundaria2();
objetoSecundaria1.Metodo1();
objetoSecundaria1.Metodo2();
objetoSecundaria2.Metodo1();
objetoSecundaria2.Metodo2();
objetoSecundaria2.Metodo3(); }
}
Aunque los métodos de ambas clases se llaman igual, por ejemplo los métodos "Metodo1" y "Metodo2", éstos se diferencian al momento de invocarlos, ya que uno pertenece a la "ClaseSecundaria1" y el otro a la "ClaseSecundaria2", es decir, si uso el objeto "objetoSecundaria1" para invocar a "Metodo1", Java ya sabe que se está invocando al método de la clase "ClaseSecundaria1".
Consecuentemente con el objeto "objetoSecundaria1" no puedo invocar al método "Metodo3", ya que "objetoSecundaria1" representa a la clase "ClaseSecundaria1" mientras que el método "Metodo3" pertenece a la clase "ClaseSecundaria2".
■ Ejemplo práctico
Considerando el ejemplo visto en Trabajando con más de una clase, aplicando esta forma de cada clase en un archivo diferente, el código quedaría así:
Clase Area.java
class Area {
public static double Cuadrado(double lado) {
double area;
area = lado * lado;
return area;
}
public static double Circulo(double radio) {
double area, pi;
pi = 3.14;
area = pi * (radio * radio);
return area;
}
}
Clase Temperatura.java
class Temperatura {
public static double Fahrenheit(double gradosC) {
double gradosF;
gradosF = (gradosC * 1.8) + 32;
return gradosF;
}
public static double Centigrados(double gradosF) {
double gradosC;
gradosC = (gradosF - 32) * 0.555;
return gradosC;
}
}
Clase Main.java
public class Main {
public static void main(String[] args) {
double lado, radio, areaCuadrado, areaCirculo;
double centigrados, fahrenheit, gradosC, gradosF;
lado = 5.5;
radio = 7.5;
centigrados = 30.2;
fahrenheit = 77;
// Declaración de objetos de cada clase
Area area = new Area();
Temperatura temperatura = new Temperatura();
// Invocación de los métodos
areaCuadrado = area.Cuadrado(lado);
areaCirculo = area.Circulo(radio);
gradosF = temperatura.Fahrenheit(centigrados);
gradosC = temperatura.Centigrados(fahrenheit);
System.out.println("El área del cuadrado es " + areaCuadrado);
System.out.println("El área del círculo es " + areaCirculo);
System.out.println(centigrados + "°C equivalen a " + gradosF + "°F");
System.out.println(fahrenheit + "°F equivalen a " + gradosC + "°C");
}
}
Esta forma es mejor que usar solo un archivo con clases distintas, ya que si separamos nuestro código en diferentes archivos se vuelve más fácil de leer y manipular puesto que no se hacen tantas líneas de código en un único archivo sino que podemos clasificarlo y estructurarlo en diferentes.
No hay comentarios:
Publicar un comentario