Dúvida no uso de THIS() em um construtor [RESOLVIDO]
6 respostas
humberto-adm
E ai galera, eu estou lendo um livro e fiquei com dúvidas de como usar o “this()”, o livro está explicando como chamar um construtor sobrecarregado a partir de outro e ele usa esta palavra dentro do construtor.
Eu já usei o this na seguinte situação:
publicvoidsetNome(Stringnome){this.nome=nome;}
onde “this.nome” se refere a um atributo da classe.
Se alguém puder me explicar o uso de “this” dentro dos construtores eu ficarei grato, obrigado.
Parte do poder do Java vém do seu dicionário de palavras chave enxuto.
claro que isso trás a consequencia de conhecer o uso dessas palavras nas várias situações.
this sem parentesis refere-se a “este”, ou seja, o proprio objecto que está correndo o codigo do método ou do construtor
this() com parentesis refere-se a “o construtor deste” que não tem paremetros. this(nome) , por exemplo refere-se ao construtor deste que recebe um string como argumento.
Este mecanismo é usado para exactamente encadear a chamada de construtores.
um outro uso semelhante pode ser feito com a palavra super. super.nome seria um atributo da classe mãe e super() seria um construtor da classe mãe. Isto permite encadear construtores quando ha herança de classe (lembrar que constutores não se herdam)
Fazendo isto vc esta atribuindo o valor passado como paranmetro a variável de instância ao criar um objeto desta classe ,
TesteNomesNome=newTesteNome("Jose");
Vini_Fernandes
Cara, o melhor forma de explicar eh dar uma olhada no exemplo:
publicclassPessoa{privateStringnome;privateIntegeridade;privateFloataltura;publicPessoa(){this.altura=1.68f;//e outras inicializacoes mais complexas}publicPessoa(Stringnome){//construtor sem parametros this() para inicializar a altura da pessoathis();this.nome=nome;}publicPessoa(Stringnome,Integeridade){//construtor sem parametros this() para inicializar a altura da pessoathis();this.nome=nome;this.idade=idade;}// metodos get e set}Aquiestamossupondoquenaotemsentidoinstanciarmosumapessoasemaltura,ouseja,quandofazemosnewPessoa(),estamoscriandoumapessoasemnome,semidade,maselasempreteraumaalturaequeporpadraoseraode1.68m.Umcasoemqueaconteceissoéquandoestamosmodelandoumasociedadeemqueemmédiaapopulaçãoadultapossui1.68m,masnaotemdocumentodeseunascimento,portanto,naotemnometampoucoidade.Esperoterajudado,Atemais
humberto-adm
Galera juntando todas estas respostas eu consegui tirar minhas dúvidas, vlw espero ajudar em algo.
edmarr
Depois que seu problema tiver resolvido, vá no primeiro post, editar o Título adicionando a tag [RESOLVIDO] no final do Título .