Ao se declarar os construtores como públicos, se eles tivere...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: E - Errado
A questão aborda o conceito de nível de acesso ou modificadores de acesso em Java, que são fundamentais para controlar a visibilidade das classes, métodos e variáveis, e para garantir a encapsulação e a segurança no design de software.
Na linguagem Java, a visibilidade de uma classe é definida pelo seu modificador de acesso. Se uma classe é declarada como pública (public
), isso significa que ela pode ser acessada por qualquer outra classe, em qualquer pacote. Por outro lado, se a classe não tem modificador (é default ou de pacote), só pode ser acessada por classes dentro do mesmo pacote.
Quanto aos construtores, seu nível de acesso determina quem pode criar instâncias dessa classe. Se um construtor é público, qualquer outra classe pode instanciar essa classe. Se o construtor é privado (private
), não é possível criar instâncias diretamente de fora da própria classe, mas é possível, por exemplo, implementar um padrão de projeto Singleton ou métodos fábrica (factory methods) dentro da própria classe para controlar a criação de instâncias.
O erro da afirmativa está em dizer que, ao declarar os construtores como públicos com nível de acesso inferior ao da classe, outra classe será capaz de declarar uma instância mas não de realizar a instanciação. Isso está incorreto porque se o construtor é público, a instanciação pode ser realizada por qualquer classe que tenha acesso à classe do construtor em questão. A parte da afirmação sobre construtores privados está correta, indicando que não permitem a criação direta de instâncias por outras classes.
Portanto, a afirmação está errada porque, independentemente de a classe ser mais ou menos restritiva, um construtor público permite que outras classes instanciem objetos dessa classe (desde que a classe em si seja acessível). Além disso, não há uma relação direta entre os métodos dinâmicos e a definição do construtor como privado.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Ao se declarar os construtores como públicos, se eles tiverem um nível de acesso inferior ao da classe propriamente dita, outra classe será capaz de declarar uma instância dessa classe, mas não será capaz de realizar ela mesma a instanciação. Se declarados como privativos, outras classes poderão utilizar métodos dinâmicos ESTÁTICOS, não sendo permitido que elas criem instâncias dessa classe.
Um exemplo deste tipo de implementação é o padrão de projeto singleton.
Fonte: http://www.dm.ufscar.br/~waldeck/curso/java/part27.html
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo