O que são construtores?

12 respostas
hackum

Alguém, poderia me dizer o que são construtores? Para que propósito usaremos construtores? Por que usar construtores ?

12 Respostas

evertonsilvagomesjav

hackum construtores sao “parecidos com métodos”, o construtor de uma classe é chamado no momento que vc instancia a mesma.

Por exemplo:

Pessoa pessoa = new Pessoa() // nesse momento o construtor da classe e chamado;

Voce pode ter construtores sobrecarregados ou nao, lembrando que um construtor padrao é o que a JVM cria pra vc, ou seja se vc criar um construtor dessa maneira:

Pessoa(){ // esse construtor mesmo nao tendo parametros ele nao e o construtor padrao, pq vc o criou. }

hackum

Mas para que eu vou usa-lo ?

Ace

Bom dia,

Me referindo ao nosso colega de cima que instanciou o Objeto Pessoa,
vc vai utilizar esta instanciação ao definir alguns parametros para o mesmo.
Ex:

Pessoa p1 = new Pessoa();
p1.setNome("Fulano");

neste momento vc “setou” (definiu) um nome para Pessoa.

espero ter ajudado um pouco

abras

hackum

Veja:

public class GradeCont {
	
	private String nomeUser;
	private String nomeAutor;
	private int x;
	
	
	//meu constutor para a inicialização do programa
	public GradeCont(String nomeAlt, String autorAlt, int xz)
	{
		
		nomeUser = nomeAlt;
                nomeAutor = autorAlt;
                x = xz;
			
		
	}

Chamando…

public class GradeCont1 {
	
	public static void main(String args[])
	{
		
		GradeCont mycont1 = new GradeCont();
		
        


      	
	}

}

Conforme mostrado, como faço para chamar ?

evertonsilvagomesjav

um exemplo simples que vc possa usa-lo, digamos que dentro da classe pessoa vc tem os seguintes atributos:

public class Pessoa {
		
	private String nome;
        
// Construtor public sobrecarregado, perceba que a variavel local "nomePassadoNoConstrutor" que vai receber a string no momento que vc instanciar a classe.
	public Pessoa(String nomePassadoNoConstrutor){
		
		this.nome = nomePassadoNoConstrutor;
		
	}
	
	public String getNome(){
		
		return this.nome;
	}
}

aqui uma classe de teste:

public class Teste{

public static void main(String[] args) {

Pessoa pessoa = new Pessoa("joao"); // aqui vc ta passando para o construtor a string literal joao, onde á variavel de instancia nome vai receber esse nome "joao".

System.ou.println(pessoa.getNome()); // e aqui um método para exibir o nome, criei esse método pq a variavel ta private entao nao daria pra exibir buscando ela diretamente.
}

Logico que isso e um exemplo bemm simples e vc poderia criar getters e setters pra fazer isso que to fazendo aqui, isso e so um exemplo pra usar um construtor.

ma.pops

Bom dia,

Construtores funcionam exatamente para instaciar uma classe, toda classe possui uns contrutor, se não for declarado o java vai inserir um na classe. Segue um exemplo de classe e instanciação.
public class Pessoa{

String nome;
Pessoa() { //#1

}

Pessoa(String nome){ //#2
nome = this.nome;
}
}

No #1 e um exemplo de um construtor padrrão onde não é passado nada ao fazer instancia do Objeto
No #2 o construtor está pedindo para que você passe uma String para que seja setado na instacia do Objeto

O construtor serve exatamente para determinarmos se queremos que na instaciação seja setado a variavel, como no exemplo a cima se excluirmos a #1 toda vez que instanciarmos a classe pessoa teremos que passar um nome para ela, ou seja, toda pessoa tem que ter um nome.

Espero ter ajudado

Abraços

rimarck

Eu recomendo você ler sobre programação Orientada a Objetos para clarear suas idéias sobre construtores, classes, atributos e metodos.

Mas simplificando para um exemplo que é bem usado, é o de fazer um bolo…a definição da classe seria a receita do bolo…e quando você chama o construtor para instanciar um objeto da classe, seria como fazer o bolo…

Bem este exemplo é só uma analogia para você entender o que seria um construtor…mas tente ler mais sobre o assunto…

O construtor você geralmente utiliza para inicializar e configurar atributos da classe/objeto para o objeto que você está instanciando…e quando você chama o construtor você está criando um objeto na memória para você manipulá-lo em seu programa…é mais ou menos isso.

hackum

Obrigado a todos que me responderam! Mas no caso do exemplo de Everton, eu quero colocar mais varáveis de instância em meu CONSTRUTOR, e chama-lo as três, como é possivel ?

Andre_Fonseca
hackum:
Obrigado a todos que me responderam! Mas no caso do exemplo de Everton, eu quero colocar mais varáveis de instância em minha classe, e chama-lo as três, como é possivel ?
public class Pessoa {
  private int idade;
  private String nome;
  private String sobreNome;

  public Pessoa(int idade, String nome, String sobreNome) {
    this.idade = idade;
    this.nome = nome;
    this.sobreNome = sobreNome;
 }
}

para chamar

Pessoa p = new Pessoa(20, 'jose', 'da silva');

repare que a ordem de chamada dos parametros do construtor é importante..
o this serve para você identificar um atributo da classe :D

evertonsilvagomesjav

Pegando seu exemplo de uma olhada:

public class GradeCont {  
          
        private String nomeUser;  
        private String nomeAutor;  
        private int x;  
          
          
      //meu constutor para a inicialização do programa  
      public GradeCont(String nomeAlt, String autorAlt, int xz)  
       {  
             
           nomeUser = nomeAlt;  
           nomeAutor = autorAlt;  
           x = xz;  
                 
             
    }
public class GradeCont1{  
   public static void main(String args[])  
  {  
             
   GradeCont mycont1 = new GradeCont("nomeAlt", "autorAlt", 10);  
             
  }  
     
 }
Ace

Cara estou vendo todos nós portarmos sempre a mesma coisa pra vc… e mesmo assim ainda vc está com duvidas…

acho que esses tópicos vão complicar a mais ainda sua vida, pois existem diversas coisas para serem aprendidas.
Ex:
Criação de Getters e Setters, método main e etc…

estude esta apostila da Caelum, que esta explicando td certinho uma coisa por vez…

http://www.caelum.com.br/curso/fj-11-java-orientacao-objetos/

vlw abras

hackum

Obrigado, consigui compreender , André Fonseca!
E obrigado a todos que responderam!

Criado 3 de janeiro de 2010
Ultima resposta 3 de jan. de 2010
Respostas 12
Participantes 6