Creo que en este caso no hay necesidad de declarar un constructor público ya que la clase no es accesible fuera del paquete de todos modos. Pero, ¿hay algún impacto oculto cuando la clase solo tiene un paquete de constructor privado?¿Deberíamos declarar un constructor público cuando la clase se declara como paquete privado?
Respuesta
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.
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.
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? –
Esto bien para mí, gracias Maarten –
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
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.
- 1. Clase de miembro estático: ¿declara clase privada y miembro de clase paquete privado?
- 2. Scala: ¿Puedo declarar un campo público que no generará getters y setters cuando se compile?
- 3. ¿Es un constructor público en una clase abstracta un código?
- 4. Si una clase se declara como final es necesario declarar los métodos como finales
- 5. ¿Hay buenas razones para un constructor público de una clase abstracta
- 6. se extiende de la clase con constructor privado
- 7. Debe copiar el constructor sea privado o público
- 8. Constructor privado en la clase abstracta
- 9. ¿Cómo se define un rasgo de paquete * privado * en Scala?
- 10. ¿Deberíamos siempre incluir un constructor predeterminado en la clase?
- 11. Matriz como miembro privado de la clase
- 12. ¿Por qué la clase HttpServlet se declara como abstracta?
- 13. ¿Por qué las personas a menudo omiten público/privado/protegido al declarar una clase?
- 14. constructor privado
- 15. ¿Por qué hacer que un miembro privado de la clase interna sea público en Java?
- 16. Instanciando clase interna con constructor privado
- 17. Privado o público MSMQ
- 18. Operador público nuevo, operador privado eliminar: obtener C2248 "no se puede acceder al miembro privado" cuando se usa el nuevo
- 19. Ejemplo de encabezado privado/público?
- 20. Java Spring Bean con constructor privado
- 21. alcance del constructor privado en la clase jerarquizada
- 22. Relevancia del constructor 'público' en la clase abstracta
- 23. AbstractMethodError se produjo cuando el método privado del paquete reemplaza
- 24. ¿Inyectar en un campo privado, de paquete o público o proporcionar un setter?
- 25. ¿Cómo se prueba un par de llaves DSA público/privado?
- 26. ¿Por qué necesitamos un constructor privado?
- 27. Python: módulo 'Privado' en un paquete
- 28. constructor público y constructor estático
- 29. ¿Cómo puedo acceder a un constructor privado de una clase?
- 30. Error de JBOSS 7.1.0 - No se puede encontrar un constructor público para la clase org.jboss.resteasy.core.AsynchronousDispatcher
Una pregunta relacionada para que pienses. ¿Debe una clase abstracta pública tener un constructor público o protegido? –