Public static

no exemplo abaixo, compila e roda beleza…
public class Test1 {
public static void main(String[] args) {
System.out.println(“What’s wrong with this program?”);
}
}

class TestAnother1 {
static void main(String[] args) {
System.out.println(“What’s wrong with this program?”);
}
}

e no exemplo abaixo também…

public class Test1 {
public static void main(String[] args) {
System.out.println(“What’s wrong with this program?”);
}
}

class TestAnother1 {
public static void main(String[] args) {
System.out.println(“What’s wrong with this program?”);
}
}

pergunto: quando usar public static ou não?

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…

()

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.

[quote]class TestAnother1 {
static void main(String[] args) {
System.out.println(“What’s wrong with this program?”);
}
}[/quote]Esta classe irá compilar mas quando for executar terá problemas pois o método main não foi declarado como public.

Abraços.

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

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.

[quote=“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.[/quote]

Ah, tá.

Valeu cara!!!

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

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: )

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