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
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
Agora entendi!!! Obrigado pelas respostas. :lol:
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:
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...
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 :!:
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!
[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
09/04/2009
Carlos Barretto
[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!!! :!: