Classes e construtores public

7 respostas
tnaires
Pessoal, considerem o exemplo abaixo:
public class Classe {
    public Classe() {

    }
}
É redundante declarar público o construtor de uma classe pública? Abraços

7 Respostas

eltonk

Não…

A classe pode ser visível publicamente, mas o construtor pode ser visível internamente por exemplo (private).

Isso acontece sempre que você aplica o pattern Singleton por exemplo…

A classe pode possuir métodos estáticos que poderão ser executadas sem uma instância da classe, por isso não é redudante você definir o acesso do construtor como public ou outro nível.

Abraços

peczenyj

Se o construtor não faz nada, é redundante pois vc tera o construtor Default.

A palavra redundante até é forte demais nesse caso.

tnaires

eltonk:
Não…

A classe pode ser visível publicamente, mas o construtor pode ser visível internamente por exemplo (private).

Isso acontece sempre que você aplica o pattern Singleton por exemplo…

A classe pode possuir métodos estáticos que poderão ser executadas sem uma instância da classe, por isso não é redudante você definir o acesso do construtor como public ou outro nível.

Abraços


Correto, mas eu estou me referindo a um construtor explicitamente público em uma classe explicitamente pública.
Ou seja, minha dúvida é: se eu declarei minha classe como public, e deixei o construtor sem nenhum especificador de acesso, qual o nível de acesso do meu construtor? default ou public?
Abraços

tnaires

peczenyj:
Se o construtor não faz nada, é redundante pois vc tera o construtor Default.

A palavra redundante até é forte demais nesse caso.


Então no exemplo abaixo:

public class Classe { Teste() { // Faz algo } }O construtor é default?

D

Sim é default!

sergiotaborda

tnaires:
peczenyj:
Se o construtor não faz nada, é redundante pois vc tera o construtor Default.

A palavra redundante até é forte demais nesse caso.


Então no exemplo abaixo:

public class Classe { Teste() { // Faz algo } }O construtor é default?

Essa sua pergunta tem pegadinha. O construtor não é default ( construtor default é aquele que não se escreve)
O modificador de acesso do construtor é que é default. :wink:

A classe pode ser publica, mas isso não significa que o publico possa criar objetos dela.
o public junto de class significa que o publico pode usar a classe (i.e. importar a classe)
o publico junto do construtor significa que o publico pode criar objetos da classe.

tnaires

sergiotaborda:
Essa sua pergunta tem pegadinha. O construtor não é default ( construtor default é aquele que não se escreve)
O modificador de acesso do construtor é que é default. :wink:

A classe pode ser publica, mas isso não significa que o publico possa criar objetos dela.
o public junto de class significa que o publico pode usar a classe (i.e. importar a classe)
o publico junto do construtor significa que o publico pode criar objetos da classe.


Perfeito. Obrigado a todos.

Criado 28 de maio de 2008
Ultima resposta 29 de mai. de 2008
Respostas 7
Participantes 5