Erro de compilação

Classe Calcula Produto

import javax.swing.JOptionPane;

public class CalculaProduto extends Produto { //classe filha
	
	public double class CalculaProduto(int opcao) { //metodo calcula produto
		if (opcao == 1) { // escolher primeira opção
			System.out.println("Torneira");
			Minutos();
			torneira = 16 * minutos; // calculando litros
			JOptionPane.showMessageDialog(null,
				"Com" + minutos + "minutos voce acaba gastando cerca de" + torneira + "litros de água por dia", 
				"Torneira",
				JOptionPane.INFORMATION_MESSAGE);
			
			calLitros(torneira);
		} else if (opcao == 2) { // escolher segunda opção
			System.out.println("Chuveiro");
			Minutos();		 
			chuveiro = 9 * minutos; // calculando litros
			JOptionPane.showMessageDialog(null,
				"Com" + minutos + "minutos voce acaba gastando cerca de" + chuveiro + "litros de água por dia", 
				"chuveiro",
				JOptionPane.INFORMATION_MESSAGE);
			calLitros(chuveiro);
		} else if (opcao == 3) { // escolher terceira opção
			System.out.println("Descarga");
			Descarga();		 
			litros = 6 * minutos; // calculando litros
			JOptionPane.showMessageDialog(null,
				"Com" + descarga + " voce acaba gastando cerca de" + litros + "litros por dia", 
				"Descarga",
				JOptionPane.INFORMATION_MESSAGE);
			calLitros(litros);
		} else // caso a opção escolhida não seja válida 
			JOptionPane.showMessageDialog(null,
				"Opção invalida.",
				"Opção inválida",
				JOptionPane.INFORMATION_MESSAGE);
				
		return opcao;
	}
}

Classe Produto

import javax.swing.JOptionPane;
public class Produto {
double torneira,chuveiro,minutos,litros;
int descarga;
int a =0;
String minutostring="";



public double Minutos() {//calculando minutos gastos
	excecao ex= new excecao();//instancia
	
	double minutos=0;
	
	JOptionPane.showMessageDialog(null,"Digite a quantidade de minutos que você utiliza diariamente este produto","Minutos",			
			JOptionPane.INFORMATION_MESSAGE);
while(a==0) {
	minutostring=JOptionPane.showInputDialog("Minutos:");
	a=ex.tratarmin(minutostring);
	
}

minutos = Double.parseDouble(minutostring);

this.minutos=minutos;
return minutos;
}

public int Descarga() {//método que administra o calculo da descarga 
	int descarga=0;
	JOptionPane.showMessageDialog(null,"Digite a quantidade de vezes que é acionado por dia","Descarga",			
			JOptionPane.INFORMATION_MESSAGE);

	
	descarga=Integer.parseInt(JOptionPane.showInputDialog("Descarga"));
	
	this.descarga=descarga;
	return descarga;
}

public double calLitros	(double litros) {//método que calcula a quantidade de litros gastos em conta
	double valor=0;
	valor=(30*(litros/1000))*2.99;
	
}
}

Classe excecao

import javax.swing.JOptionPane;
public class excecao {

	public int tratar(String opt) {//metodos para exeção opção
		int b= 0;
		int teste;
		try {
			teste=Integer.parseInt(opt);  //tentando converter
			b=1;
			
			
		}
			catch (NumberFormatException n) {//caso a conversão não seja possivel
			 JOptionPane.showMessageDialog(null, "Erro no programa,tente denovo.",
		"Erro no programa",JOptionPane.WARNING_MESSAGE);
			System.out.println("");
			}
		return b;
	}
	
	   public int tratarmin(String min) {//método para exceção minutos
		   int b=0;
		   double teste;
		   try {
				teste=Double.parseDouble(min);  //tentando converter
				b=1;
				
				
			}
				catch (NumberFormatException n) {//caso a conversão não seja possivel
				 JOptionPane.showMessageDialog(null, "Erro no programa,tente denovo.",
			"Erro no programa",JOptionPane.WARNING_MESSAGE);
				
				}
			return b;
		
	}
	
}

classe Teste

import javax.swing.JOptionPane;
public class Teste {

 
	public static void main(String[] args) {
		String opcao="";
		int opt,a=0;
		excecao ex = new excecao();
		
		CalculaProduto prod = new CalculaProduto();//instanciando classe
		
		while(a==0) {//tratamento da opção
		opcao=JOptionPane.showInputDialog(null,"Olá,seja bem vindo!"+
			" Escolha o produto que deseja analizar" +
			"\n 1 torneira"+
			"\n 2 chuveiro"+
			"\n 3 descarga \n"+
			"Escolha a Opção:","Analisar gastos de agua",JOptionPane.INFORMATION_MESSAGE);
		a=ex.tratar(opcao);
		}
	    opt=Integer.parseInt(opcao);
	    prod.CalculaProduto(opt);
	    JOptionPane.showMessageDialog(null,"Economize agua para o bem do nosso planeta."+
	                  "\n Economize no banho,"+
	    		      "\n ai escovar os dentes"+ 
	                  "\n no momento de lavar os pratos"+
	                  "\n e quando for dar descarga."
	                  ,"Mensagem ao Usuário",
	                  JOptionPane.INFORMATION_MESSAGE);
	
	
	}
	
}

Formata seu código pra ficar melhor de entender. Assim:
```
Código aqui
```

E qual está sendo o erro?

Seu código parece ter muitos erros de sintaxe.

Achei duas classes públicas, elas estão no mesmo arquivo? Se sim, melhor colocar em classes separadas ou remover o public delas.

  • CalculaProduto
  • CalculaProduto

Esse IF está perdido no código:

if(opcao==1) {//escolher primeira opção
system.out.println(“Torneira”)
Minutos();
}

Tem concatenação errada também (sem o uso do +):

JOptionPane.showMessageDialog(null,"Com"+minutos+"
minutos você acaba gastando cerca de"+chuveiro+" "litros de Agua por dia",
     "Chuveiro",

Identação é algo muito importante em um código, muito mesmo. Arrume seu código. Dê uma lida: https://www.oracle.com/java/technologies/javase/codeconventions-indentation.html


Formate seu código aqui no fórum de acordo com o que foi dito pelo colega @RoinujNosde


Vc sabe criar projeto e classes no eclipse?

Entendi galera, me desculpem pela bagunça sou novo na programação, so que quando quero algo novo vou com tudo, arrumei como pedido, poderiam dar mais uma olhada novamente desde ja grato :slight_smile:

esse esta sendo o erro senhores

ata o amigo me ajudou aqui, me desculpe sou novo

estou aprendendo senhor

O método CalculaProduto está errado:

public double class CalculaProduto(int opcao) { //metodo calcula produto

a palavra chave class não pode ser usada na definição do método

A forma correta de criar um método é assim:

public double nomeMetodo(int parametroA) {
    // aqui tem o corpo do método
    return 0.0;
}
  • public: indica a visibilidade do método
  • double: Indica o retorno do método. Nesse caso é um double, mas pode ser void que é “sem retorno”.
  • nomeMetodo: é o nome do método e é bom usar verbos no nome para indicar a ação que ele vai executar, e ter um nome claro que indique bem sua execução
  • int parametroA: Vc pode passar parâmetros para o metodo para reutilizá-lo
  • return 0.0: Como foi informado que o método retorna um double, vc deve usar a palavra return para devolver o valor para quem chamou o método
1 curtida

ata, muito obrigado, grato pela paciencia :grin:

Sobre a classe CalculaProduto. Não tem pq ela herdar (extends) da classe Produto, pois não consigo ver ela como um produto, que é o que a relação de herança faz. Vc soh deve usar herança quando vc quer dizer no código que algo é filha de outra, ex.:

  • Cachorro e animal: O cachorro é um animal, então:
public class Animal {}

public class Cachorro extends Animal {}

No seu caso, faz mais sentido a classe CalculaProduto ter um método calcular que recebe um parâmetro para poder fazer o cálculo:

public class CaculaProduto {

	public double calcular(int opcao) {
		// faz o calculo e retorna o valor
	}
}
1 curtida