2008-10-28 13 views

Respuesta

22

No, no tiene que declarar el constructor público; Los constructores privados de paquetes serán igualmente utilizables. Las clases fuera del paquete no podrían usar el constructor de todos modos, ya que no pueden ver la clase.

2

Si su clase es un paquete privado, los niveles de acceso indicados por la palabra clave modificador public junto con el paquete privado nivel de acceso del constructor son equivalentes.

Sin embargo, puede indicar el comportamiento que desea que tenga el método en caso de que la visibilidad de clase se modifique durante el desarrollo. Esto puede suceder cuando abre algunas API que anteriormente eran internas. En ese caso, parece más conservador declarar el constructor como paquete privado ya que no abre todas las puertas al mismo tiempo.

+0

Hola Denis R. Hice algunas ediciones extensas para que la respuesta sea más legible. ¿Podrías revisarlo rápidamente y retroceder si no estás de acuerdo? –

+0

Esto bien para mí, gracias Maarten –

-2

No podemos hacer un constructor público en una clase privada porque no se puede acceder a la clase privada y no se puede acceder a ninguno de sus métodos y los constructores son funciones especiales de miembros por lo que tampoco se puede acceder desde afuera. público porque finalmente viola la definición privada de la clase

-2

Los constructores no se pueden definir en la parte privada de la clase. El compilador no le permitirá hacerlo ya que los miembros definidos como privados no son accesibles por el programa principal. Siempre que lo llamemos, solo puede acceder a él la clase en la que lo estamos definiendo o la etiqueta de amigo. El compilador dará el nombre del constructor y no es accesible.

+2

Esto suena como una respuesta C++ tal vez? Aunque no lo mencionó directamente en su pregunta, el asker etiquetó esta pregunta como "java", por lo que esta respuesta no se aplica realmente. – Brigham

+0

¿Puede una clase interna tener un constructor privado? – Raedwald

Cuestiones relacionadas