Buenas,
Si te refieres a dividir tu programa en varias clases, con la teoría que existe en este curso deberías mas o menos comprenderlo.
Para comprender que son y que elementos tienen las clases y objetos en Java mírate los temas #9 y #10.
Y para entender cómo “conectar” las diferencias clases que hagamos mírate los temas #11, #12 y #13.
El tema #13 es un ejemplo funcional de como definir una clase y luego desde otra crear objetos de la primera.
Aunque, no todas las relaciones entre clases se basan en objetos. Por eso usamos elementos (atributos y métodos estáticos). En el temas #12 se habla más en profundidad sobre esto y se ve también los modificadores de acceso que nos permiten regular la utilización de estos elementos desde otras clases.
Si después de mirarte esto te queda alguna duda, presentamela y encantado te la intentaré solucionar.
Sobre el código que has escrito, la clase Mates
, si lo que preguntas es como interactuar con ella sería de la siguiente manera:
Como los 4 métodos son estaticos (static
) la forma correcta de llamarlos es la siguiente:
Mates.[metodo]();
Por ejemplo:
Mates.Suma(2, 7);
Ten en cuenta que como estos métodos devuelven valores, lo más normal es que hagamos algo con ellos, como podría ser guardarlos en una variable o imprimirlos.
Te dejo un ejemplo de como usaría tu clase desde otra diferente:
UsandoMates.java
public class UsandoMates
{
/**
* Método principal.
* Utiliza e imprime el resultado de los métodos de la clase Mates.
*/
public static void main(String[] args)
{
System.out.println("5 + 2 = " + Mates.Suma(5, 2));
System.out.println("5 - 2 = " + Mates.Resta(5, 2));
System.out.println("7 x 5 = " + Mates.Multiplicacion(7, 5));
System.out.println("10 + 2 = " + Mates.Divicion(10, 2));
}
}
Output:
5 + 2 = 7
5 - 2 = 3
7 x 5 = 35
10 + 2 = 5
Esto funciona porque los las dos clases (sus archivos .class
), Mates
y UsandoMates
, están en el mismo paquete o directorio:
~/lab$ tree
.
├── Mates.class
└── UsandoMates.class
1 directory, 2 files
~/lab$ java UsandoMates
5 + 2 = 7
5 - 2 = 3
7 x 5 = 35
10 + 2 = 5
Si las separamos no podrán encontrarse:
~/lab$ tree
.
├── otroDir
│ └── Mates.class
└── UsandoMates.class
2 directories, 2 files
~/lab$ java UsandoMates
Exception in thread "main" java.lang.NoClassDefFoundError: Mates
at UsandoMates.main(UsandoMates.java:7)
Caused by: java.lang.ClassNotFoundException: Mates
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 1 more
La solucion? Importar el paquete o llamar a la clase incluyendo el nombre del paquete:
Para importar la clase, añadir en la primera linea del archivo:
import otroDir.Mates;
o añadir la ruta de directorio (paquete) al llamar un elemento de la clase:
System.out.println("7 x 5 = " + otroDir.Mates.Multiplicacion(7, 5));