Invocar un modulo
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.
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.
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.
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.
