Invocar un modulo

AlbertCP
22 de Enero del 2009
Buenas, vengo de programacion con ADA, un buen lenguaje para principiantes, muy sencillo y tal.. y ahora estoy con JAVA y se me ha planteado una duda:

Me han mandado de deberes crear un Tipo de datos "Temperatura" que haga sumas, con un maximo y un minimo.. (bueno, con esto ya no se bien a lo que se refiere el profesor, pero esto no es el problema). El caso es que si tengo un clase con varios modulos, como invoco a esos modulos en el programa principal?

Sé que a estas alturas deberia saberlo pero esque no me aclaro muy bien con JAVA y no se hacer aun muchas cosas. Yo tengo esto:

public class temperatura {

private float numero;
private String terminacion;

public temperatura (float numero, String terminacion){
this.numero=numero;
this.terminacion=terminacion;
}

public String mostrar(){
return(numero + "º" + terminacion);
}

public float sumar(float n1, float n2){
float suma= 0.0f;
suma= n1+n2;
return suma;
}

public float getNumero(){
return numero;
}
public String getTerminacion(){
return terminacion;
}

public static void main(String[] args) {
temperatura maxima = new temperatura(27.3f,"c");
System.out.println(maxima);

}

}


Un codigo sencillo, Ahora lo que yo quiero es invocar al modulo "Sumar" pasandole a mano dos numeros.

Por ejemplo, en ada para crear un modulo seria:

procedure sumar(n1, n2: in float; suma: out float;) is
begin
suma= n1+n2;
end sumar;

y para invocarlo en el programa principal sería:

sumar(23.2,33,1, suma); // le meto los valores manualmente y devuelve la suma como resultado.




MIRL
22 de Enero del 2009
Decirte que no entiendo muy bien el método sumar() por un par de cosillas, pero voy a intentarlo:

Tal como lo tienes hecho, tendrás que crear un objeto de tipo temperatura e invocar el método sumar así:

float sumaDosTemperaturas = t.sumar(23.2, 33.1);
(el valor devuelto por sumar() se almacena en sumaDosTemperaturas)

No obstante esto me parece algo raro ya que el objeto t posee un atributo que indica la temperatura, por lo que el método para asumar dos temperaturas podría ser más correcto así:

float sumar(float temp) { return this.numero+temp; }

o bien:

float sumar(temperatura temp) { return this.numero+temp.numero; }

Si lo que quieres es un método independiente, deberás declararlo estático, de lo contrario será dependiente de los objetos de tu clase:

static float sumar(float n1, float n2) { ... }

Añadir, por último, que cuando se crean tipos de datos se suele usar una clase para el tipo y otra para el programa principal, pero eso ya...

Un saludo y espero haberte ayudado.