básico: método main()

Olá, segue o código do programa para análise:

public class PrimeiroPrograma {

public static void main(String[] args) {
	System.out.println("Eu sou o seu primeiro programa.");
	PrimeiroPrograma pp = new PrimeiroPrograma();
	pp.primeiroMetodo();
	pp.segundoMetodo();
}

private void primeiroMetodo() {
	System.out.println("Executando o primeiro metodo.");
}

private void segundoMetodo() {
	System.out.println("Executando o segundo metodo.");
}

}

Bom… agora a dúvida!
O metodo main() sempre é executado ao criar um objeto dessa classe?
Se for… então, quando eu executo o código
PrimeiroPrograma pp = new PrimeiroPrograma(); na função main(), ela não deveria chamar novamente a função main() desse objeto criando um novo objeto? e se toda vez que ele executasse main() ele criasse novamente o objeto entraria em loop infinito? mas pq isso não esta ocorrendo??? parece-me que o método main() so esta sendo executado uma vez… pq?

Seguinte cara,

o método main é chamado quando vc manda rodar uma classe java (java - classe (não sei se esta a sintaxe)).
Isto não é a mesma coisa que você intanciar a classe onde o main está.
Você instanciar uma classe que tem um método main, não fara com que o método main seja invocado.
Para invocá-lo, você precisaria fazer pp.main(new String[]{}).
Daí sim, você estaria fazendo um loop.

Espero ter ajudado, qualquer dúvida poste.

[]s

O metódo main é o ponto de partida para a sua aplicação portanto da forma que vc fez ai não seria uma boa opção pelo fato de seu programa está muito estrutura e não orientado a objetos uma forma mais elegante e orienta a objetos seria assim :

public class PrimeiroPrograma {

	public void primeiroMetodo() {
		System.out.println("Executando o primeiro metodo.");
	}

	public void segundoMetodo() {
		System.out.println("Executando o segundo metodo.");
	}
} 

[code]

public class Main {

 public static void main(String[] args) {
	
	 System.out.println("Eu sou o seu primeiro programa.");
	 
	 //criando um objeto da classe PrimerioPrograma
	 PrimeiroPrograma pp = new PrimeiroPrograma();
	 
	 //chamado os metódos do objeto da classe PrimeiroPrograma
	 pp.primeiroMetodo();
	 pp.segundoMetodo();
 }	 

}[/code]

Dica procure estudar orientação a objetos !!

Bravox

1 curtida

ah agora eu entendí! to acustumado com linguagem estruturada rsss
valeu galera… :wink: