Como funciona o método construtor?

09/04/2009

65

Pessoal, tenho uma dúvida: Como funciona o método construtor? Gostaria de um exemplo básico. Valeu :!:
Responder

Post mais votado

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:
String a;
a=new String("Texto");  //alocacao e inicializacao atraves do construtor
a.mostra(); //mostra so pode ser chamada depois do construtor
[url=http://www.ic.unicamp.br/~cmrubira/aacesta/java/javatut.html]Leia mais...[/url] []'s
Responder

Mais Posts

09/04/2009

Lucas Teixeira

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]
public class MinhaClasse {
   public MinhaClasse() { //esse é o metodo construtor
      System.out.println("Oi!");
   }
}
No metodo construtor, sera impresso "Oi!" agora para testar... Classe [b]Teste.java[/b]
public class Teste {
   public static void main(String args[]) {
      MinhaClasse Obj1 = new MinhaClasse();
   }
}
Pronto... só de instanciar o obj... já executa o construtor, e imprime!!! :!: :!: :!: :!: :o :o
Responder

09/04/2009

Rogerio_melo

Agora entendi!!! Obrigado pelas respostas. :lol:
Responder

09/04/2009

Bruno Borges

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:
Responder

09/04/2009

Marcos Pereira

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...
Responder

09/04/2009

Rainer Medrado

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 :!:
Responder

09/04/2009

Rainer Medrado

Foi mal Miojo... É que uma das literaturas que eu estou consultando para aprender Java, tratou Contrutor como um método. Agora aprendi. Valeu!
Responder

09/04/2009

Carlos Coral

[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
Responder
[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!!! :!:
Responder
[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:
Responder

18/05/2011

Fábio Pinto

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;

}

}
Responder