O que tem de errado nesse código?

package Meuscodigos; 
import java.io.*;
class PainelDeControle { 
float temperaturaCorrente; 
private float temperaturaDesejada;
public void private ligaForno (){

System.out.println("ligado");
}
public void desligaForno (){

System.out.println("desligado");
}
public void defineTemperatura( float temp ){ 
temperaturaCorrente = temp; 
}
public static void main (String[] args) {
PainelDeControle painel1, painel2; 
painel1=new PainelDeControle(); 
painel2=new PainelDeControle();

painel1.ligaForno(); 
painel1.desligaForno(); 
painel2.ligaForno(); 
painel1.defineTemperatura(180.5);
}
}

Eu estou com um problema no Netbeans e falta de tempo pra instalar outra IDE, mas acho que isso criaria um loop infinito, visto que está instanciando a própria classe que tem o método main.

Indenta esse código, muito ruim ler assim.

Você está chamando o método defineTemperatura do objeto painel1 passando um parâmetro do tipo double mas ele espera receber um float.

1 curtida

@LeandroCGMS, boa noite, não cria não por que a instância só é criada apenas uma vez. Ela simplesmente vai criar e chamar os métodos apenas uma vez. @staroski está certo! Você está pedindo um parâmetro do tipo float no método defineTemperatura e está passando um valor do tipo double.

1 curtida

Você está passando um valor do tipo Double em um parâmetro no qual ele pede um Float.
Uma das formas de correção, seria esta:

package Meuscodigos;
import java.io.*;
class PainelDeControle {

double temperaturaCorrente; 
private double temperaturaDesejada;

public static void main (String[] args) {
	PainelDeControle painel1, painel2; 
	painel1 = new PainelDeControle(); 
	painel2 = new PainelDeControle();

	painel1.ligaForno(); 
	painel1.desligaForno(); 
	painel2.ligaForno(); 
	painel1.defineTemperatura(180.5);
}

public void private ligaForno (){
	System.out.println("ligado");
}

public void desligaForno (){
	System.out.println("desligado");
}

public void defineTemperatura(double temp){ 
	temperaturaCorrente = temp; 
}

}

Também daria
painel1.defineTemperatura(180.5f);

1 curtida

Muito obrigado :smiley:

Eu consegui compilar o código, mas na hora de executar deu esse erro:

Se não me engano este erro é devido a versão da sua JRE, tente atualiza-la.

Execute este comando e posta o resultado:

javac -version

Também execute este comando e posta o resultado:

java -version