Construtor privado, por que eu iria quer deixar ele como private?

6 respostas
A

Sei que um construtor pode ser public, protected e private, o mais usual é public, eu acho. De qual forma, por que eu iria quer deixar ele como private? Poderia me dar um exemplo?

abraço,
André AS

6 Respostas

Eric_Yuzo

O construtor private não permite que sejam instanciados objetos por ele.

Algumas classes Factory utilizam este recurso, já que seus métodos são estáticos. Se não me engano BorderFactory é assim.

thiago.correa

O Pattern Sigleton utiliza desse aterfato, outra coisa, na sua própria classe você pode querer deixar um construtor que receba um número x de parâmetros privado, apenas para uso da própria classe e outro público chamando esse contrutor privado!

A

Fiz um teste, e não funcionou construtor chamando outro construtor… Isso é possível?

Eric_Yuzo

Você está chamando o outro construtor com isto?

yastorm

Só não faça um chamando o outro e vice-versa.

thiago.correa

Claro, não iria falar uma mentira em público. Acontece que chamadas a outros construtores deve ser a primeira instrução após a assinatura do construtor, pode ser que esse seja o seu erro, falo isso porque eu não sei o código que vocÊ postou e nem o erro que está dando! :roll:

public class Teste {

	private String nome;
	private int idade;
	
	
	private Teste() {
		this.idade = 0;
	}
	
	public Teste(String nome) {
		this();
		this.nome = nome;
	}
	
	public static void main(String[] args) {
		Teste t = new Teste("Thiago");
		System.out.println(t.getNome());
		System.out.println(t.getIdade());
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public int getIdade() {
		return idade;
	}

	public void setIdade(int idade) {
		this.idade = idade;
	}

	
}
Criado 5 de setembro de 2010
Ultima resposta 8 de set. de 2010
Respostas 6
Participantes 4