Então, GUJNautas, acho que o título já deixa bem claro. Qual o melhor, mais seguro ou mais rápido meio de iniciar um programa?
Eu sempre faço assim:
[code]package paz;
public class MainClass{
public MainClass(){
System.out.println("Teste: Olá mundo :D");
}
public static void main(String[] e){
new MainClass();
}
}[/code]
Ou seja, no construtor da classe principal eu dou as ordens que devem ser dadas para o programa rodar e, na mesma classe, coloco o método main e nele uso new MainClass();
Não sei se esse método é seguro nem nada do tipo, mas sempre funcionou bem pra mim então gostaria de saber de vocês do GUJ qual é o melhor
Amigão, qual sua definição exata de “seguro” para você, nesse contexto?
Agora, sobre rapidez, seria mais rapido colocar direto no main, sem instanciar a classe.
Ai usar o operador “new” você está dizendo para o java alocar um novo espaço de memória, no exemplo citado não há nenhum motivo para fazer tal operação, só deixará mais lento.
Eu geralmente coloco o método main em uma classe só pra ele, sem outras responsabilidades. Por exemplo, se tiver que chamar a janela principal da aplicação, é nela que eu vou instanciar e fazer com que ela seja exibida.
diogozero, eu gosto de fazer assim por que ficava p da vida quando o compilador indicava algum erro em tratar um objeto estático de modo não estático, ou vice-versa. Faço assim mais por isso que por outros motivos. Acho que isso também já responde ao LucasHP. Mas então, LucasHP, minha classe principal seria basicamente um main(String[] e), mas eu uso desse modo pra não ter que ficar me preocupando, como já disse, com meios estáticos e não estáticos. Eu não saio instanciando tudo “na doida” já na MainClass do exemplo, dela eu mando criar um objeto, depois aquele outro no decorrer do programa e das necessidades do mesmo. Ainda assim, é um método mais lento?
Quanto mais memória voce consumir da cpu, mais lento ficará seu programa, pode ter certeza disso, ou seja, a cada novo objeto alocado, 1 endereço de memória é utilizado.