Class public

14 respostas
A

Olah,
eis um erro:
aparece a aseguinte mensagem "class guess is public,should be declared in a file named guess.java
deve ser declarada num arquivo chamado “guess.java” como isso?
eu uso blue j…
vlews

public class guess { //se ponho guess.java aki dah merrda....

    player p1; 
    player p2;
    player p3;
    
    public void startgame() {
        
     p1 = new player(); //objetos ligados a   variaveis
     p2 = new player(); 
     p3 = new player();
     
     int guessp1 = 0, guessp2 = 0, guessp3 =0; //variaveis
     
     boolean p1tacerto = false,p2tacerto=false,p3=false;
     
     int targetnumber = (int) (Math.random()*10);
     System.out.println("Entre 0 e 9");
     
     while(true) {
         System.out.println("Number to guess: " + targetnumber);
         
         p1.guess();
         p2.guess();
         p3.guess();
         
         guessp1 = p1.number;
         System.out.println("Player 1 guessed" + guessp1);
         
         guessp2 = p2.number;
         System.out.println("Player 2 guessed" + guessp2);
         
         guessp3 = p3.number;
         System.out.println("Player 3 guessed" + guessp3);
         
         if(guessp1 ==targetnumber){
             p1tacerto=true;}
             
          if(guessp2 ==targetnumber){
             p2tacerto=true;}  
             
          if(guessp3 ==targetnumber){
             p3tacerto=true;}
             
             if(p1tacerto || p3tacerto || p3tacerto){
                 
                 System.out.println("Win!");
                  System.out.println("One player:" +p1tacerto);
                   System.out.println("Two player" + p2tacerto);
                    System.out.println("Three player" + p3tacerto);
                     System.out.println("Game is Over");
                     break;}
                     else{
                         System.out.println("Try again!");
                        }
                    }
                }
            }
       public class player{
           int number = 0;
           
           public void guess(){
               number=(int) (Math.random()*10);
               System.out.println("Im guessing"+ number);}}
               
               public class gamelauncher{
                   public static void main(String[] args){
                       guess game = new guess();
                       game.startgame();}}

14 Respostas

ViniGodoy

Renomeie o seu arquivo para guess.java.
No java, toda classe deve estar num arquivo com o mesmo nome da classe e extensão .java. Não interessa se é o BlueJ, eclipse ou notepad.

Além disso, cada classe pública deve estar declarada em seu próprio arquivo.

Pela convenção, sua classe deveria ter o nome iniciado por uma letra maiúscula.

Reilander

“public class guess { //se ponho guess.java aki dah merrda…”
nao eh pra renomear o nome da classe, mas o nome do arquivo .java para o mesmo
nome da classe.
mas o importante eh que os dois têm de ter o mesmo nome

LPJava

vc nao pode ter em um unico arquivo duas class como public.

Reilander

poder eeu ateh posso:

//arquivo A.java public class A { public class B { } }
hehehehehehehe

A

o arquivo tah salvo como gamelauncher
se renomear para guess.java
ou renomear para gamelauncher.java …

da um erro obvio brutal:
ERROR:The file seems to have disappeared!

Reilander

nao pow, prestencaum…

o nome do arquivo tem de ser o nome da class public!!

brother, pra nao perder muito tempo, tu define apenas UMA classe public
e coloca o nome do arquivo o mesmo nome dela

Andre_Brito

Faz o seguinte:
Abre o bloco de notas e cola só o que tem na classe guess lá dentro. Na hora de salvar, no campo coloque “guess.java” (com aspas duplas).
Aí você abre um novo arquivo no bloco de notas e cola só o que tem de player lá. Na hora de salvar, faz a mesma coisa: “player.java” (com aspas duplas também).
Coloque os dois no mesmo diretório e compile-os com o comando

javac *.java

E depois execute o problema principal (onde se encontra o método main).

Quer mais moleza que isso? Senta no pudim :stuck_out_tongue: (brincadeira, claro :-))

netShot

Mais moleza que isso :

Arquivo : GameLauncher.java

public class GameLauncher {
	public static void main(String[] args){
		Guess game = new Guess();
		game.startgame();
	}
}

Arquivo: Player.java

public class Player{
   int number = 0;
   
   public void guess(){
	   number = (int) (Math.random() * 10);
	   System.out.println("Im guessing" + number);
	}
}

Arquivo : Guess.java

public class Guess {

    Player p1; 
    Player p2;
    Player p3;
    
    public void startgame() {
        
        p1 = new Player(); //objetos ligados a   variaveis
        p2 = new Player(); 
        p3 = new Player();

        int guessp1 = 0, guessp2 = 0, guessp3 = 0; //variaveis

        boolean p1tacerto = false, p2tacerto = false, p3tacerto = false;

        int targetnumber = (int) (Math.random()*10);
        System.out.println("Entre 0 e 9");
     
        while(true) {
            System.out.println("Number to guess: " + targetnumber);

            p1.guess();
            p2.guess();
            p3.guess();

            guessp1 = p1.number;
            System.out.println("Player 1 guessed" + guessp1);

            guessp2 = p2.number;
            System.out.println("Player 2 guessed" + guessp2);

            guessp3 = p3.number;
            System.out.println("Player 3 guessed" + guessp3);

            if ( guessp1 == targetnumber ) {
                p1tacerto = true;
            }

            if ( guessp2 == targetnumber ) {
                p2tacerto = true;
            }  

            if ( guessp3 == targetnumber ) {
                p3tacerto = true;
            }

            if (p1tacerto || p3tacerto || p3tacerto) {
                System.out.println("Win!");
                System.out.println("One player...:" + p1tacerto);
                System.out.println("Two player...:" + p2tacerto);
                System.out.println("Three player.:" + p3tacerto);
                System.out.println("Game is Over");
                break;
            }
            else {
                System.out.println("Try again!");
            }
        }
    }
}

Abra o terminal ou o prompt de comando no diretorio e digite

LPJava

Reilander:
poder eeu ateh posso:

//arquivo A.java public class A { public class B { } }
hehehehehehehe

isso é uma class interna… é diferente disso veja:

public class Tes{}


public class Tes2{}

eu me referir nesse ponto e nao com classe interna que é outra questao!

tente compilar o arquivo em anexo e veja o que o compilador diz para vc.

Reilander

classe interna deixa de ser uma classe?

LPJava

ninguem disse que deixa de ser uma class… porem duas classes public em um arquivo nao compila conforme mostrei no arquivo .java. Agora uma class interna é diferente de uma class de nivel mais alto…
O gato e cachorro sao Animais, porem diferentes…
class internas sao classes porem diferentes das classes topo de nivel…

veja algo a respeito do arquivo q falei no livro da kathy, deitel etc… normalmente está no assunto de fundamentos…

Reilander

uhauhiauhauihauihuihauihui
brother, tow ligado nisso tudo…
nao precisa ficar chateado, me pedindo pra estudar fundamentos, ironicamente…
clareza eh tudo!
se alguem diz que nao pode haver duas classes publicas em um arquivo, eh so fazer o que
fiz e pronto! terah duas classes publicas em um arquivo.
mas justamente pra quem ta querendo entender, torna-se confuso uma explicacao
vaga e transcrita de outrem, sem aplicar ao contexto.

entao seja mais claro pra nao possibilitar algo que lhe desminta, entendeu?
eh apenas pra nos ajudar a sermos mais claros sem perder a concisao

flw

LPJava

nao to chateado nao, tentei explicar… a diferença da class interna para uma class topo de nivel da melhor forma… para vc nao confudir o public da class interna do public da class do topo-nivel…
Se a forma que escrevi demonstrou isso foi mal :slight_smile:
Eu nao mandei vc estudar nao… mais vc consultar… para caso de duvidas… do que eu estava falando… sempre q eu tenho duvida vou referencias e tiro as duvidas… eheh

flw!

Reilander

vlw entao,
de baiano pra baiano

Criado 3 de maio de 2008
Ultima resposta 5 de mai. de 2008
Respostas 14
Participantes 6