Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se
2
respostas

Construtor

private B() {}
//Nesse ex usa se o modificador private para o construtor. A chamada:
new B().B("t");

// Funciona? Qual o papel do modificador de visibilidade em construtores?

2 respostas

Funciona! A classe B pode sim chamar seu próprio construtor privado. Se fosse a A chamando o new B aí não compilaria.

Construtores privados são utilizados com frequência para implementar o design pattern chamado factory, além de outros menos comuns. Tem mais sobre esse tema no curso de patterns.

class B { private B() {} static B B(String s) 
          { return new B(); } }
class A {
    public static void main(String[] args) {
        new B().B("t");
    }
}

No caso esse caso não compila?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software