Programa errado ou configuracao errada?

2 respostas
D

eu instalei o j2sdk na minha makina windows 2000 server…e eu configurei o path do sistema corretamente axo,pois eu digito o javac -help ele funciona…mas nao estou conseguindo compilar os programas eu usei o hello word do proprio forum ( 3 versoes diferentes ) e o erro é o mesmo so muda a linha…o erro e o seguinte…
helloword.java:10 class HelloWord is public. shoud be declared in a file name public class HelloWord {
1 error…
e tb tem o seguinte eu estou usando o bloco de notas pra fazer o codigo e eu salvo dakele jeito q ta dizendo ai no forum com aspas nao adianta nada ai eu renomeio ele pelo DOS de txt pra .java…mas acredito q o erro nao seja este o codigo e o seguinte…
//sempre q tiver // no código indica que é um comentário…

/**

  • também são comentários este tipo de trecho,

  • geralmente usado para documentar a classe.

  • bom aqui eu estou criando um objeto HelloWorld q é publico

  • , ou seja, qualquer objeto poderá usa-lo.
    */
    public class HelloWorld {

    /**

    • bom aqui eu defino um field, em outras linguagens
    • é comumente chamado de variável
    • este objeto é de propriedade do objeto HelloWorld e é privado,
    • sendo assim ninguem poderá acessa-lo, só o próprio HelloWorld.
      */
      private String msg = null;

    /**

    • Método getMessage, que aqui é usado para retornar a mensagem

    • que está gravada dentro do field privado msg. ele retorna de

    • forma segura o valor da mensagem, verificando se este ainda

    • está nulo, se estiver, muda seu valor para “Hello World!”

    • e então o retorna

    • @return retorna a message do HelloWorld
      
      */
      
      public String getMessage() {
      
      //Nome que este if não tem {} isso ocorre pq ele  tem um
      
      //argumento dentro, não precisando assim abrir e fechar as
      
      //chaves.
      
      //nestes casos, muitas vezes se escreve assim:
      
      //if (msg == null) setMessage();
      
      //em 1 linha .
      
      //este método verifica se o valor da msg ainda está nulo,
      
      //sendo isso verdade ele chama o método setMessage() para
      
      //dar valor a msg, isto é feito por segurança, para não
      
      //passar um valor nulo.
      
      if (msg == null)
      
      setMessage();
      
      //aqui ele irá retornar o valor contigo em msg que pertence
      
      //a este objeto. o operador this, indica que está se tratando
      
      //de um field q é do objeto e não do método, veremos isso
      
      //no método setMessage(String msg)
      
      return this.msg;
      
      }
      

    /**

    • Seta a mensagem passada através de msg, como sendo a messagem
    • deste objeto. No caso de msg estar nulo, xamará o método
    • setMessage().
    • @param msg mensagem a ser gravada pelo objeto.
      */
      public void setMessage(String msg) {
      //note aqui que o teste if msg == null é feito para a o
      //field do método setMessage(String msg) e não para aquele
      //do objeto, definido lá em cima com:
      //private String msg = null;
      //quando há 2 nomes de fields iguais, ele irá usar o field
      //do método, para chamar o field do objeto vc terá que usar
      //o operador this.
      //Então aqui eu testo se msg é null é se for, eu uso o método
      //setMessage() ou seja, se o cara passar msg = null, é o mesmo
      //de ter chamado o método setMessage(), sendo assim, esse dois
      //métodos seguintes tem o mesmo efeito:
      //setMessage(), setMessage(null)
      if (msg == null) {
      setMessage();
      //no caso de msg não estar nulo, o objeto irá guardalo em
      //seu field privado, usando para isto o operador this.msg
      //para falar a classe q se trata do field exteno, sendo igual
      //ao field passado neste método.
      } else {
      this.msg = msg;
      }
      }

    /**

    • método que seta o valor da msg como Hello World, pos
    • nenhum argumento foi passado para escolher que mensagem
    • passar
      */
      public void setMessage(){
      //define msg do objeto
      this.msg = “Hello World!”;
      }

    /**

    • cria um objeto hello world com a mensagem padrão definida
    • em setMessage().
      */
      public HelloWorld() {
      setMessage();
      }

    /**

    • cria um objeto hello world com a mensagem passada através
    • de msg
    • @param msg mensagem a ser gravada no objeto.
      */
      public HelloWorld(String msg) {
      setMessage(msg);
      }

    /*

    • Estes 2 últimos comandos são construtores da classe, ou
    • seja, as manerais de criar um objeto HelloWorld, no outro
    • objeto Main, nós usaremos 2 objeto HelloWorld, para
    • exemplificar

o q estou fazendo de errado alguem pode me ajudar???

2 Respostas

S

vc ta colocando o nome do arquivo .java igual o nome da classe public hello world?

M

d0t_p1ch, o caso é seguinte…
O nome da classe HelloWorld tem que ser o nome do arquivo também, não pode ser diferente. se o H é maiúsculo então no nome também deve ser.

Resumindo

Se você declarou a classe como :

public class HelloWorld {

}

Então o nome do arquivo deve ser Obrigatóriamente! :
HelloWorld .java

Outra coisa cuidado com o bloco de notas, porque ele salva como HelloWorld.java.txt

[]'s

Criado 28 de março de 2005
Ultima resposta 28 de mar. de 2005
Respostas 2
Participantes 3