Gujs, Alguém sabe o motivo que o método main tem que ser public mais a classe não?
Arquivo Teste.javaclass Bla {
public static void main(String args[]){
System.out.println("GUJ GUJ!");
}
}
:arrow: javac Teste.java
:arrow: java Bla
Gujs, Alguém sabe o motivo que o método main tem que ser public mais a classe não?
Arquivo Teste.javaclass Bla {
public static void main(String args[]){
System.out.println("GUJ GUJ!");
}
}
:arrow: javac Teste.java
:arrow: java Bla
ih caraca :?:
Apenas dois tipos de classes podem ser compiladas ao nível de arquivos:
Você só pode declarar uma classe “protected” ou “private” dentro de outra classe.
Nesses dois casos (public ou “package-protected”), é possível instanciá-las diretamente pela linha de comando (java.exe). Note que no caso “package-protected” só outras classes do mesmo pacote podem instanciá-las diretamente.
Tente colocar o main como default, não vai rodar! tem que ser publica…
Isso no meu ponto de vista é um erro de visibilidade!
Visibilidade de classes é uma coisa, e de métodos é outra coisa.
O java.exe é um programa em C que faz o seguinte:
Se você quiser criar o seu java.exe que chame uma outra função com outra visibilidade, esteja à vontade. O fonte em C está disponível para ser baixado da Sun. Por exemplo, você poderia criar um “java.exe” que fizesse o seguinte:
O AppletViewer faz algo parecido, quando ele insiste em instanciar uma classe que tem obrigatoriamente de derivar de java.awt.Applet (da qual javax.swing.JApplet é uma subclasse), e chamar os métodos start, stop etc.)
class Bla {
public static void main(String args[]){
System.out.println("GUJ GUJ!");
}
}
minha duvida é o seguinte …
por eu não declara nada a minha classe Bla é package por default ?
outras classes de outros pacotes não enchergarão o metodo main, porem isso não faz diferença pois elas e que serão chamadas pelo main
esse parada confundiu minha cabeça
class Bla { public static void main(String args[]){ System.out.println("GUJ GUJ!"); } }minha duvida é o seguinte …
por eu não declara nada a minha classe Bla é package por default ?
outras classes de outros pacotes não enchergarão o metodo main, porem isso não faz diferença pois elas e que serão chamadas pelo mainesse parada confundiu minha cabeça
sim… a visibilidade eh o default, ou seja, package private
Void,
A VM só reconhece uma assinatura de main q é essa public static void main(String[] a) {}
Vc pode colocar qualquer outra assinatura, mais o q vai decidir se sua classe é ou não "executavel" é essa assinatura citada acima.