Avatar 0 Denunciar post Postado Julho 5, 2009 Como faço pra invocar o método .main(String []args) de outra classe? No C# é possível fazer isto e eu acredito que no Java também deve ser possível, já que o método é do tipo static e não retorna nada (void). No entanto, os testes que fiz não funcionaram... Compartilhar este post Link para o post Compartilhar em outros sites
Discorpio 1 Denunciar post Postado Julho 6, 2009 Boa noite Avatar. Toda classe pode ter um método main, que determina o ponto de início de execução de qualquer aplicação Java. Ao contrário do que acontece em C e C++, onde apenas uma função main deve ser definida para a aplicação como um todo, toda e qualquer classe Java pode ter um método main definido. Apenas no momento da interpretação o main a ser executado é definido através do primeiro argumento (o nome da classe) para o programa interpretador. O método main é um método associado à classe e não a um objeto específico da classe -- assim, ele é definido como um método estático. Adicionalmente, deve ser um método público para permitir sua execução a partir da máquina virtual Java. Não tem valor de retorno, mas recebe como argumento um arranjo de strings que corresponde aos parâmetros que podem ser passados para a aplicação a partir da linha de comando. Essas características determinam a assinatura do método. Em outras palavras, o método main é associado a classe para definí-la como classe principal executora de outras classes que serão instanciadas dentro do escopo do método main, pois ele é o método executor da aplicação. Se voce pretendende executar métodos de objetos no momento de sua instanciação, utilize o método construtor da classe que recebe o mesmo nome da classe, assim: package Teste; public class MinhaClasse { public MinhaClasse { /* Aqui é o método construtor, geralmente utilizado como um método de declaração e inicialização de variáveis e objetos */ execute("Instanciei Minha Classe"); .... ... } public static main(String[] args){ // Aqui invoco e instancio outros objetos } public execute(String msg){ JOptionPane.messageDialog(null, msg); } } Repare que eu defini o método público execute fora do método main e do método construtor "MinhaClasse, porém e o invoquei dentro do método construtor MinhaClasse. Nesse caso, voce não vai instanciar minha classe, porque o compilador fará isso automaticamente interpretando-a como a classe principal executora de toda a aplicação por causa do método main associado, e quando o interpretador java instanciá-la, automaticamente vai inicializar todas as variáveis e objetos declarados no método construtor, e inclusive executar todos os métodos que por ventura são invocados dentra dele. Cappichi Um abraço. Compartilhar este post Link para o post Compartilhar em outros sites