Como funciona o método construtor?

Java

09/04/2009

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

Rogerio_melo

Curtidas 0

Melhor post

Dalton

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:
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
GOSTEI 2

Mais Respostas

Lucas Teixeira

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]
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
GOSTEI 1
Rogerio_melo

Rogerio_melo

09/04/2009

Agora entendi!!! Obrigado pelas respostas. :lol:
GOSTEI 0
Bruno Borges

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

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

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

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

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

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

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

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
POSTAR