Construtor private

Quais as implicações de definir um construtor como private? No caso do código abaixo não deveria dar erro na hora de criar um novo objeto Phr4jr ( new Phr4jr() )porque o construtor da classe é private?



Code:


public class Phr4jr{

private Phr4jr(){

System.out.print(1);

}

public static void main(String argv[]){

Phr4jr ph = new Phr4jr();

System.out.print(ph.go());

}

public int go(){

try{

System.out.print(2);

return 1;

}finally{

System.out.println(3);

return 2;

}



}

}


Ao declarar um construtor private você só conseguirá chamá-lo a partir da própria classe, que deverá ter um método static para tanto.

Recomendo que você dê uma procurada sobre o design pattern Singleton, que é um dos mais famosos do Java e utiliza um construtor private para fazer com que apenas uma instância de uma classe seja criada.