Programa não sei fazer

oi, daniel, volte!
Seguinte o código digitado foi igual.

[code]package javaapplication25;

public class Pessoa {

private String nome;   
private String sobrenome;   
   
// construtor default   
public Pessoa() {   
    super();   
}   
   
          // construtor com nome e sobrenome   
public Pessoa(String nome, String sobrenome) {   
    setNome(nome);   
    setSobrenome(sobrenome);   
}   
   

// retorna o nome da pessoa   
public String getNome() {   
    return nome;   
}   

// define ou altera o nome da pessoa   
public void setNome(String temp) {   
    this.nome = temp;   
}   

// retorna sobrenome   
public String getSobrenome() {   
    return sobrenome;   
}   

// define ou altera o nome da pessoa   
public void setSobrenome(String temp) {   
    this.sobrenome = temp;   
}   
   
//retorna nome completo   
public String getNomeCompleto(){   
    return this.nome + " " + this.sobrenome;   
}   

}
[/code]
Porém aparece o seguinte erro:
Classe “javaapplication25” não tem um método main. Dai coloquei o main…rsrsrs…é o erro desapareceu porém, qdo rodei o principal não encontra o metodo Pessoa???

Ola tulipa,

Olha voce esta fazendo uma grande confusao rsrs, mas nao tem problema sei que voce esta aprendendo
Vou tentar te ajudar :

Pense assim voce precisa de duas classes para fazer funcionar

Uma eh a classe Pessoa , eh essa ai que voce postou esta certinha ja !
e a outra eh uma OUTRA CLASSE qualquer que tenha o metodo main para voce poder criar a classe Pessoa entendeu?

Essa classe pessoa voce ja fez esta ai acima, agora o que voce deve fazer dentro do metodo main (que esta em outra classe)
eh isso :

Pessoa p = new Pessoa();

e depois que voce fez isso voce pode usar Pessoa ainda dentro do main(), claro por exemplo chamando :

p.getNome();
p.getSobrenome() ;

Tente ai caso nao consiga poste todo seu codigo ai (das duas classes) que eu te mostro como ficaria. Mas primeiro tente fazer rsrsr :slight_smile:

obs : deixe as duas classes no mesmo pacote inicialmente para voce entender como funciona, asim fica mais facil no comeco.

Um abraco
Daniel.

olá Daniel, aprendendo para nunca mais esquecer…rsrs
vou deixar as duas classes em um único arquivo como vc falou…mais veja, já entendi que ficam separadas e que rodo somente a parte chamada “Teste”… veja todo o código junto é o erro que deu…
init:
deps-jar:
Compiling 1 source file to C:\Users\Tulipa\JavaApplication25\build\classes
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:12: class Pessoa is public, should be declared in a file named Pessoa.java
public class Pessoa {
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:55: class Teste is public, should be declared in a file named Teste.java
public class Teste {
2 errors
FALHA NA EXECUÇÃO (tempo total: 0 segundos)

/*
 * Main.java
 *
 * Created on 18 de Agosto de 2009, 10:08
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package javaapplication25;

public class Pessoa {   
  
    private String nome;   
    private String sobrenome;   
       
    // construtor default   
    public Pessoa() {   
        super();   
    }   
       
              // construtor com nome e sobrenome   
    public Pessoa(String nome, String sobrenome) {   
        setNome(nome);   
        setSobrenome(sobrenome);   
    }   
       
  
    // retorna o nome da pessoa   
    public String getNome() {   
        return nome;   
    }   
  
    // define ou altera o nome da pessoa   
    public void setNome(String temp) {   
        this.nome = temp;   
    }   
  
    // retorna sobrenome   
    public String getSobrenome() {   
        return sobrenome;   
    }   
  
    // define ou altera o nome da pessoa   
    public void setSobrenome(String temp) {   
        this.sobrenome = temp;   
    }   
    
    //retorna nome completo   
    public String getNomeCompleto(){   
        return this.nome + " " + this.sobrenome;   
    }   
  
}   
public class Teste {

	public static void main(String[] args) {

		Pessoa p = new Pessoa();
		p.setNome("Carlos");
		p.setSobrenome("Moura");

		//imprime nome + sobrenome
		System.out.println(p.getNomeCompleto());
		

	}

}

Você deve aprender a interpretar os erros gerados pelo compilador, veja, ele diz que as classes Pessoa e Teste são públicas e devem ser declaradas num arquivo chamado “NomeDaClasse.java”, existem duas soluções, colocar cada classe em um arquivo, ou colocar somente a classe Teste como pública, pois ela contém o método main, ou seja, na linha 12, ao invés de "public class Pessoa { ", ficaria "class Pessoa { ", então embora você possa ter várias classes em um único arquivo, não pode ter várias classe públicas no mesmo.

Ola tulipa,

É exatamente o que o colega acima disse, quando voce compilar seus arquivos analise os erros, mas olha só por esse erro
aí já ta facil de saber o que aconteceu. Voce provavelemente salvou suas classes com qualquer outro nome que não
seja Pessoa.java e Teste.java .

Por elas serem classes publicas a regra é que devem ser salvas com o mesmo nome que foram criadas.

Ex : public class Pessoa { } ===> deve salvar o arquivo como Pessoa.java

(obs : lembre-se que Pessoa.java nao é o mesmo que pessoa.java - Case Sensitive)

Flw.

Oi, executei a alteração e veja os erros…Não sei interpletar o erro, poderiam ajudar?
Compiling 1 source file to C:\Users\Tulipa\JavaApplication25\build\classes
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:12: class, interface, or enum expected
public Pessoa {
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:15: class, interface, or enum expected
private String sobrenome;
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:18: class, interface, or enum expected
public Pessoa() {
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:20: class, interface, or enum expected
}
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:23: class, interface, or enum expected
public Pessoa(String nome, String sobrenome) {
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:25: class, interface, or enum expected
setSobrenome(sobrenome);
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:26: class, interface, or enum expected
}
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:30: class, interface, or enum expected
public String getNome() {
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:32: class, interface, or enum expected
}
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:35: class, interface, or enum expected
public void setNome(String temp) {
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:37: class, interface, or enum expected
}
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:40: class, interface, or enum expected
public String getSobrenome() {
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:42: class, interface, or enum expected
}
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:45: class, interface, or enum expected
public void setSobrenome(String temp) {
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:47: class, interface, or enum expected
}
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:50: class, interface, or enum expected
public String getNomeCompleto(){
C:\Users\Tulipa\JavaApplication25\src\javaapplication25\Main.java:52: class, interface, or enum expected
}
17 errors
FALHA NA EXECUÇÃO (tempo total: 0 segundos)

Poste seu código aqui, provavelmente você usou “{” de mais hahahaha

Olha uma dica veja a quarta linha desse seu ultimo post (exatamente a quarta) e veja se faz algum sentindo.

Flw.

Oi Daniel, a 4ª linha e o construtor default que vc no caso explicou q não seria obrigatoria??? Enfim, percebo que ele reclama logo na primeira linha “public Pessoa {”, o colega diz que seria { demais… olhei e tá certinho…claro pra mim…e por isso não funciona…rsrsrs veja o código.

package javaapplication25;

public Pessoa {  
  
    private String nome;   
    private String sobrenome;   

    // construtor default   
    public Pessoa() {   
        super();   
     }   

              // construtor com nome e sobrenome   
    public Pessoa(String nome, String sobrenome) {   
        setNome(nome);   
        setSobrenome(sobrenome);   
    }   
       
  
    // retorna o nome da pessoa   
    public String getNome() {   
        return nome;   
    }   
  
    // define ou altera o nome da pessoa   
    public void setNome(String temp) {   
        this.nome = temp;   
    }   
  
    // retorna sobrenome   
    public String getSobrenome() {   
        return sobrenome;   
    }   
  
    // define ou altera o nome da pessoa   
    public void setSobrenome(String temp) {   
        this.sobrenome = temp;   
    }   
    
    //retorna nome completo   
    public String getNomeCompleto(){   
        return this.nome + " " + this.sobrenome;   
    }   
}
public class Teste {

	public static void main(String[] args) {

		Pessoa p = new Pessoa();
		p.setNome("Carlos");
		p.setSobrenome("Moura");

		//imprime nome + sobrenome
		System.out.println(p.getNomeCompleto());
		

	}

}
public Pessoa {    

por

public class Pessoa {    

Esta faltando a palavra reservada class .

[quote=edmarr]public Pessoa {

por

public class Pessoa {    

Esta faltando a palavra reservada class . [/quote]
Na verdade, ele deve colocar só: class Pessoa e não: Public Pessoa o erro está na linha 3 do seu código, era isso que o daniel estava tentando alertar.

Depende muito de como ele quer filtrar as permissoes de pacote e classes . Para ele optar pelo modificador de acesso .

Se ele tiver duas classes públicas no mesmo arquivo, não vai compilar.
O objetivo dele é testar o programa.

OBS: para a classe funcionario rodar você tera que declarar as variaveis na classe Pessoa como public ou protected.


public class Funcionario extends Pessoa{
    
    int matricula;
    int salario;

    
    public Funcionario(){}
    
    public Funcionario(int mat, int sal, String nom, String sobreNom ){
        
        super.nome = nom;
        super.sobrenome = sobreNom;
        this.matricula = mat;
        this.salario = sal;
    }



    public void setNome(String nom){
        super.nome = nom;
    }
    

    public void setSobrenome(String sobreNom){
        super.sobrenome = sobreNom;
    }
    
    public void setMatricula(int mat){
        matricula = mat;
    }
    
    public void setSalario(int sal){
        salario = sal;
    }
    
    public int getMatricula(){
        return matricula;
    }
    
    public int getSalario(){
        return salario;
    }
}


  public class Pessoa {  
        
      protected String nome;         
      protected String sobrenome;  
     
      public Pessoa() {  
            
      }  
    
      public Pessoa(String nome, String sobrenome) {  
          
          this.nome = nome;  
          this.sobrenome = sobrenome;  
      }  
    
      public String getNome() {  
          return nome;  
      }  
    
      public void setNome(String nome) {  
          this.nome = nome;  
      }  
    
      public String getSobrenome() {  
          return sobrenome;  
      }  
    
      public void setSobrenome(String sobrenome) {  
          this.sobrenome = sobrenome;  
      }  
        
      public String getNomeCompleto(){  
            
          return this.getNome()+" "+this.getSobrenome();  
                    
      }  
        
    
  } 

Tulipa, por favor, quando for postar códigos, use a tag code.

Assim seu código fica colorido e formatado, como o postado pelos colegas.
Se você não sabe usar esse recurso, peço que leia o seguinte tópico, que vai te ensinar esse e outros recursos do fórum:
http://www.guj.com.br/posts/list/50115.java

Muita gente nem sequer lê o tópico quando o código não está formatado.
Mesmo os que lêem, perdem o interesse rapidamente caso você não formate nunca.

Fica aí a dica. :wink: