Tenho uma dúvida sobre construtores, dêem uma olhada no código abaixo.
publicclassTesteConstrutores{publicvoidTesteConstrutores(){System.out.println("Executando o construtor...");}publicstaticvoidmain(String[]args){System.out.println("Executando main...");TesteConstrutorestc=newTesteConstrutores();System.out.println("Finalizando main...");}}
Bom, a saida deste programa foi
Executando main…
Finalizando main…
ou seja, o construtor nem foi chamado… um livro que estou lendo diz que o construtor é chamado antes do main() … porém neste caso não foi, e nem mesmo quando eu instanciei o objeto.
O construtor é chamado antes do método main(), no momento que executo main() ou quando instancio o objeto?
isto ‘public void TesteConstrutores()’ não é um construtor, é um metodo.
um construtor não possui tipo de retorno
declare como ‘public TesteConstrutores()’ e veja vc mesmo
ou então faça:
System.out.println("Executando main...");
TesteConstrutores tc = new TesteConstrutores();
tc.TesteConstrutores();
System.out.println("Finalizando main...");
Bravox
Construtores não possui retorno portanto o metódo que está na sua classe não é um construtor além de que os construtor(s) de uma classe são utilizados para instânciar um classe ou seja para criar objetos da classe e não par realizar tarefas que no caso são desiguinadas para os metódos da classe e toda classe em java por default possui um construtor mesmo não sendo declarado nela e no seu codigo vc está chamando o construtor quando vc executa da seguinte linha
TesteConstrutorestc=newTesteConstrutores();
neste caso vc está chamando o construtor default da classe já que nela não existe algum construtor declarado !!
qualquer duvida posta ai
bravox
T
thingol
Quando James Gosling copiou várias coisas do C++ para criar o Java, esqueceu-se de copiar uma coisa: em C++ não é possível ter um método que tem o mesmo nome de um construtor.
O equivalente disto: