Como funciona o método construtor?
Pessoal, tenho uma dúvida: Como funciona o método construtor? Gostaria de um exemplo básico. Valeu :!:
Rogerio_melo
Curtidas 0
Melhor post
Dalton
09/04/2009
Construtores são métodos especiais chamados pelo sistema no momento da criação de um objeto. Eles não possuem valor de retorno, porque você não pode chamar um construtor para um objeto, você só usa o construtor no momento da inicialização do objeto. Construtores representam uma oportunidade de inicializar seus dados de forma organizada, imagine se você esquece de inicializar corretamente ou o faz duas vezes, etc.
Um construtor tem sempre o mesmo nome da classe a qual pertence. Para a classe String, pré-definida na linguagem o construtor tem a forma String("Constante do tipo String"); com o argumento entre aspas que é especificado pelo programador. Ele seria chamado automaticamente no momento da criação, declaração de uma String, sem necessidade de uso do nome do construtor como método, apenas dos argumentos:
[url=http://www.ic.unicamp.br/~cmrubira/aacesta/java/javatut.html]Leia mais...[/url]
[]'s
String a; a=new String("Texto"); //alocacao e inicializacao atraves do construtor a.mostra(); //mostra so pode ser chamada depois do construtor
GOSTEI 2
Mais Respostas
Lucas Teixeira
09/04/2009
Um método construtor é o método onde tem as instrucoes que serao executadas SEMPRE que for instanciado um objeto desta classa....
Exemplo...
Classe [b]MinhaClasse.java[/b]
No metodo construtor, sera impresso "Oi!"
agora para testar...
Classe [b]Teste.java[/b]
Pronto... só de instanciar o obj... já executa o construtor, e imprime!!!
:!: :!: :!: :!:
:o :o
public class MinhaClasse { public MinhaClasse() { //esse é o metodo construtor System.out.println("Oi!"); } }
public class Teste { public static void main(String args[]) { MinhaClasse Obj1 = new MinhaClasse(); } }
GOSTEI 1
Rogerio_melo
09/04/2009
Agora entendi!!! Obrigado pelas respostas. :lol:
GOSTEI 0
Bruno Borges
09/04/2009
tudo q o dalton falou eh valido... soh deixo bem claro o seguinte: Construtor NAO eh metodo... mesmo q vc queira chama-lo de "metodo especial"... eskece! NAO eh metodo... :P ouviu bem? NAO eh metodo!
eh CONSTRUTOR... :D :idea:
GOSTEI 0
Marcos Pereira
09/04/2009
Da [url=http://java.sun.com/docs/books/jls]Java Language Specification[/url]:
[url=http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#41652]Constructor Declarations[/url]
[color=white:36dd081b83][size=9:36dd081b83]Leiam Java Language Specification! Leiam Java Language Specification! Leiam Java Language Specification![/size:36dd081b83][/color:36dd081b83]
valeuz...
GOSTEI 0
Rainer Medrado
09/04/2009
Cara, só mais uma coisa, no exemplo abaixo:
[b]public class Pessoa
{
String nome;
// Construtor
public Pessoa(String nome)
{
this.nome=nome;
}
public void setNome(String nome)
{
this.nome = nome;
}
public String getNome()
{
return nome;
}
}
====================
public class Teste
{
String nome = "Rainer";
Pessoa p = new Pessoa(); //Erro, pois eu sobrescrevi o meu
construtor padrão, e o atual pede uma
String como parâmetro.
Pessoa p = new Pessoa(nome); // Assim funciona
p.getNome();
}[/b]
Então vc só tem que cuidar desse detalhe, que quando você sobreescrever o constutor padrão de uma classe, vc tem que passar os parâmetos, conforme vc definiu.
Blz....T+
Rainer :!:
GOSTEI 0
Rainer Medrado
09/04/2009
Foi mal Miojo... É que uma das literaturas que eu estou consultando para aprender Java, tratou Contrutor como um método. Agora aprendi. Valeu!
GOSTEI 0
Carlos Coral
09/04/2009
[quote="jack_-_ganzha"]Da [url=http://java.sun.com/docs/books/jls]Java Language Specification[/url]:
[url=http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#41652]Constructor Declarations[/url]
[color=white:12bf21e5ea][size=9:12bf21e5ea]Leiam Java Language Specification! Leiam Java Language Specification! Leiam Java Language Specification![/size:12bf21e5ea][/color:12bf21e5ea]
valeuz...
E ae jack_-_ganzha? Está apelando para mensagem subliminar para que o povo leia a especificação de Java? É massa!!! huahauhauahuahua.
:o :o :o
GOSTEI 0
Carlos Barretto
09/04/2009
[quote="Rainer"]Cara, só mais uma coisa, no exemplo abaixo:
[b]public class Pessoa
{
String nome;
// Construtor
public Pessoa(String nome)
{
this.nome=nome;
}
public void setNome(String nome)
{
this.nome = nome;
}
public String getNome()
{
return nome;
}
}
====================
public class Teste
{
String nome = "Rainer";
Pessoa p = new Pessoa(); //Erro, pois eu sobrescrevi o meu
construtor padrão, e o atual pede uma
String como parâmetro.
Pessoa p = new Pessoa(nome); // Assim funciona
p.getNome();
}[/b]
Então vc só tem que cuidar desse detalhe, que quando você sobreescrever o constutor padrão de uma classe, vc tem que passar os parâmetos, conforme vc definiu.
Blz....T+
Rainer :!:
isso aí, se vc nao cria um construtor ele automaticamente cria um default mas se especifica um o default não é criado!!! :!:
GOSTEI 0
Carlos Barretto
09/04/2009
[quote="jack_-_ganzha"]Da [url=http://java.sun.com/docs/books/jls]Java Language Specification[/url]:
[url=http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#41652]Constructor Declarations[/url]
[color=white:399e99d61e][size=9:399e99d61e]Leiam Java Language Specification! Leiam Java Language Specification! Leiam Java Language Specification![/size:399e99d61e][/color:399e99d61e]
valeuz...
Boooooooooa!
hehehehe
foi bem sutil!
:wink:
GOSTEI 0
Fábio Pinto
09/04/2009
public class Pessoa { private String nome; // Construtor public Pessoa(String novoNome) { this.setNome(novoNome); // Assim é mais correto } public void setNome(String nome) { this.nome = nome; } public String getNome() { return nome; } }
GOSTEI 1