Curso básico de Java - #23 - Clases fundamentales: Math

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));
1 me gusta