Public static

9 respostas
M
no exemplo abaixo, compila e roda beleza

public class Test1 {

public static void main(String[] args) {

System.out.println(Whats wrong with this program?);

}

}
class TestAnother1 {

static void main(String[] args) {

System.out.println(“Whats wrong with this program?”);

}

}

e no exemplo abaixo também…

public class Test1 {

public static void main(String[] args) {

System.out.println(Whats wrong with this program?);

}

}
class TestAnother1 {

public static void main(String[] args) {

System.out.println(Whats wrong with this program?);

}

}

pergunto: quando usar public static ou não?

9 Respostas

M

vc esta se referindo sobre colocar public static void main( String[] args ) ou static public void main( String[] args )??? É a mesma coisa… :slight_smile:

_

PUBLIC voce utiliza para manter o metodo publico, onde voce pode invoca-lo em qualquer outra classe, ao contrario do PRIVATE.

Se voce nao colocar PUBLIC no cabecalho do metodo, ele automaticamente torna-se um metodo FRIENDLY, que funciona parecido com o PUBLIC, por isso todos funcionam legal…

FRIENDLY, dependendo das outras classes que utiliza-lo, talvez nao funcione. Foi isso que me disseram, mas nao me explicaram por que. Se alguem souber, escreva…

()

J

Tudo bom!

Esclarecendo:

Métodos public : Todas as classes de qualquer pacote pode ter acesso a este método.
private: Apenas a própria classe que implementa o método tem acesso a este método.
protected: Apenas as classes dentro do mesmo pacote tem acesso a este método.
default (sem declarar): Apenas as classes no pacote atual tem acesso a este método.
Métodos static podem ser chamados sem a necessidade de instanciar um objeto. Qualquer variável de instancia que o método utilize deve ser static também (chamada de variável de classe).

No caso do método main, ele deve ser public static pois a máquina virtual quando carrega a classe procura por este método para executar a aplicação.

<blockquote>class TestAnother1 {

static void main(String[] args) {

System.out.println(“What’s wrong with this program?”);

}

}</blockquote>Esta classe irá compilar mas quando for executar terá problemas pois o método main não foi declarado como public.

Abraços.

L

Então se o método main da classe não for public o programa não será executado porque a máquina virtual não pode acessar o método???

Luciano Arashiro

J

Não sei se seria “acessar” exatamente, mas a máquina virtual espera um método main público e qualquer outro modificador diferente deste o programa não será executado.

Abraços.

L

“Jael”:
Não sei se seria “acessar” exatamente, mas a máquina virtual espera um método main público e qualquer outro modificador diferente deste o programa não será executado.

Abraços.

Ah, tá.

Valeu cara!!!

M

Trocar o metodo public pelo defulll… pow rsss legal e mesma coisa
esse aqui e mais interessante
Bom pessoal Java falou do do public do static do void e tal e o que esse (String args )

Isso aqui funcionar

public class Teste {

public static void main(String nome[]) {

String m;

String j;

m = nome[0];

j = nome[1];

System.out.println("numero1 " + m);

System.out.println("numero2 " + j);

}
}

Claro que funciona seguinte todos os paramentro estão sendo passados como argumento da array Como isso funciona String args na verdade e uma thread q e gerada mas deixa isso para lá, saca o bacana disso vc pode passar parâmetros como fasso.
No eclipse vc vai run ? run ? guia arguments digite os argumentos importante n coleque virgula ;
JBuild ? quando vc for compilar o programar em run, vá em edit na guia run no campo Application parameters coloque os campos com espaço.

Bom Pessoal isso e importante e questão de prova da certificação isso foi so uma dica para saber que o main n somente o método principal e ele só faz rodar aplicação

blz

C
Agora sobre o static:(isso é o que eu sei, mais informações serão muito bem vindas)

Quando se declara um método e/ou feature como static a gente está dizendo o seguinte:

a feature e/ou método pertence a classe e não ao objeto da classe. Estranho não!?!?!?!?

é o seguinte, você também pode acessar um método estatico através de um objeto, mas não é necessário um objeto para acessar este método. A gente acessa ele assim:

NomeDaClasse.nomeDoMetodo();

Isto é util quando temos classes com a finalidade de somente auxiliar alguma coisa. Um exemplo de classe assim é a classe Math. Ela permite acessar vários métodos de formulas, mas sem ter a necessidade de se ter um objeto Math.
(não sei se você não sabia disso, mas estou tentando ajudar :grin: )

M

:grin: essa eu sabia mas valeu, Nunca niguem sabe tudo
Mas Java e Show nè…???
EEEEEEEEEEEEEEE
Valeu

Criado 15 de novembro de 2004
Ultima resposta 21 de nov. de 2004
Respostas 9
Participantes 7