Ajuda com código (nova dúvida)

Caros amigos, comecei a fazer um trabalho pra facu e já na primeira classe encontrei dificuldades…

o código é o seguinte


public class NomeProduto
{
	String codProduto = "1" ;
	String nomeProduto;
		
	public String NomeProduto(String codProduto)
	{
				
		if (codProduto == "1")
		{
			nomeProduto = "balde Plastico";
		}
		return (nomeProduto);
		
	}
	public void main(String[] args) 
	{
		System.out.println (" "+ NomeProduto(nomeProduto));
	}
}

e presena o seginte erro


java.lang.NoSuchMethodError: main
Exception in thread "main" 

alguemode me explicar como corrigir?

a) Para comparar 2 strings use equals

b) public static void main

c) Você não definiu um construtor para a classe e sim um método com o mesmo nome da classe; isso não é proibido mas vai lhe dar muita cabeça. Por hora, faça de conta que isso é proibido. Um construtor não pode retornar nenhum valor e também não tem retorno “void”.

d) Um nome de classe legal seria “Produto”, não “NomeProduto”, que é apenas um atributo do produto.

alterei, ficou ssim…

so que agora õ aprece nem erro, nem o que devera aparecer na console



public class NomeProduto   
{   
    String codProduto = "1" ;   
    String nomeProduto;   
           
    public String Produto(String nomeProduto)   
    {   
        if ("1".equals(codProduto))   
        {   
            nomeProduto = "balde Plastico"; 
        } 
       
        return (nomeProduto);   
           
    }   
    public void main(String[] args)   
    {   
        System.out.println (" "+ Produto(nomeProduto));   
    }   
}  

di uma pesquisada e plo que entendi para usa equals eu colocoo vlor a ser cmparado com a variavel que quero compar esta correto?

veja so no seu codigo:

public String Produto(String nomeProduto)   // aki o parametro eh do nome e nao do codigo!
    {   
        if ("1".equals(codProduto))   
        {   
            nomeProduto = "balde Plastico"; 
        } 
       
        return (nomeProduto);   
           
    }   

No caso para vc corrigir esse erro, vc deve colocar o parametro (String codProduto)

public String Produto(String codProduto) {

creio que no sua saida agora irá dar certo, e mais uma pra complementar: procure usar os seus atributos com o modificados private
private String nome;
private String codigo;

E outra nao esqueça de colocar public “static” void main sem as aspas!
Espero ter ajudado!

VLW…ago funcionou

pq não esta “aparecedo” a tela do programa?

Amigos topíco e velho mas a dúvida é nova

O codigo anterior faz parte deste programa, eu apenas alterei alguma coisas e t afuncionando legal…

agora to entando criar a “interface” do “bicho”, usei parametros paracidos em uma calculadorae funcionou, pq neste caso não esta fiuncionado?


import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class PrincipalSisConCAd extends JFrame implements ActionListener
{
	JButton botao1 = new JButton ("Novo");// criando as variáveis "botões"
	JButton botao2 = new JButton ("Alterar");
	JButton botao3 = new JButton ("Salvar");
	JButton botao4 = new JButton ("Excluir");
	JButton botao5 = new JButton ("Imprimir");
	JButton botao6 = new JButton ("Fechar");
	
	String codPostoGraduacao; // esta variável sera enviada a outra classe
	String nomePostoGraduacao;// esta variável sera enviada a outra classe
	
	JTextField text = new JTextField(10);
	
	public PrincipalSisConCAd ()
	{
		super ("SisConCAd");
		setSize( 800,600);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(new FlowLayout);// usei este comando em uma calculadora e deu certo aqui não esta dando
		JPanel painel = new JPanel();
		add (text);
		add (painel);
		
		painel.add(botao1);//mostrar boões
		painel.add(botao2);
		painel.add(botao3);
		painel.add(botao4);
		painel.add(botao5);
		painel.add(botao6);
		
		botao1.addActionListener (this);//faz botão "escrever"
		botao2.addActionListener (this);
		botao3.addActionListener (this);
		botao4.addActionListener (this);
		botao5.addActionListener (this);
		botao6.addActionListener(this);
		
		setVisible(true);
		
		
	}
	public static void main(String[] args) 
	{
		System.out.println ("teste");// isso não é nada e só pra saber se o programa ta rodando.
	}
	
	public void actionPerformed(ActionEvent evt)
	{
		Object acao = evt.getSource();
		
		if (acao == botao6)
		{
			System.exit(DISPOSE_ON_CLOSE);
			
		}
	}
}

ta rodado e não aparece nem erro e nem a tela ue deveria…

new PrincipalSisConCAd().setVisible(true);

tente isso no método main.

Funcionou mas, podera me expclar a “logica”

Fala cara, blza?

Então, no método main, vc não chamou o construtor da classe PrincipalSisConCAd, então, não vai construir os componentes que vc declarou lá.
Na verdade, vc poderia fazer desse jeito

new PrincipalSisConCAd();

Pois daí, ia passar pelo construtor e consequentemente ia passar pelo método setVisible(true), que é o último código que tem dentro do seu método construtor.

Se vc não chamasse o contrutor em algum lugar, nunca ia criar os componentes do Swing.

Abraço

OBRIGADO, em breve novas dúvidas…