我认为在这种情况下,不需要声明公共构造函数,因为无论如何都不能在类之外访问该类。但是当类只有包私有构造函数时会有一些隐藏的影响吗?当类声明为包私有时,我们应该声明一个公共构造函数吗?
回答
不,你不必申报公共构造函数;包私有构造函数将一样可用。无论如何,程序包之外的类将无法使用构造函数,因为它们无法看到该类。
如果你的课程是封装私人的,那么修饰符关键字public
指定的访问级别连同默认的包私有构造函数的访问级别是等效的。
然而,如果在开发过程中更改了类的可见性,您可以指出该方法的意图。当您打开之前内部的一些API时可能会发生这种情况。在这种情况下,将构造函数声明为私有包看起来更保守,因为您并不是同时打开所有的门。
嗨丹尼斯河我做了一些广泛的编辑,使答案更具可读性。如果您不同意,您能否快速浏览并回滚? – 2015-04-19 16:21:48
这对我来说很好,谢谢Maarten – 2015-04-20 20:02:10
我们不能在私有类中创建一个构造函数public,因为私有类不能在外部访问,也不能访问其任何方法,因为构造函数是特殊成员函数,所以它也不能从外部访问,因此无法声明因为它最终违反了类的私人定义
构造函数不能在类的私有部分中定义。编译器不允许你这样做,因为定义为私有的成员不能被主程序访问。无论何时我们称它只能由我们定义它的类或朋友标签访问。编译器将给出构造函数名称,并且它不可访问。
- 1. 函数应该有一个原型,同时在类中声明
- 2. 声明一个具有类构造函数作为函数参数的函数
- 3. 类的构造函数声明
- 4. 我如何在IDL中声明一个类构造函数?
- 5. ManagedBean不声明一个公共的无参数的构造函数
- 6. 类构造函数声明...两种声明同一事物的方法?
- 7. 如何为我继承的类声明构造函数?
- 8. 在Java中,方法/构造函数声明能否出现在另一个方法/构造函数声明中?
- 9. 声明一个类/结构
- 10. 如何声明一个私有整数?
- 11. 声明该类
- 12. 声明在构造函数中
- 13. 在构造函数中声明方法
- 14. WHEN声明后另一个当声明
- 15. 当我们访问一个属性时,我们应该声明一个局部变量吗?
- 16. DispatchEvent应该是函数的最后一个声明吗?
- 17. 使用构造函数声明(构造函数?)
- 18. 将一个类的数组声明为该类的私有成员?
- 19. 我应该在web.config中声明https吗?
- 20. 为什么要在类的构造函数中声明变量?
- 21. 在另一个结构中声明结构并在声明为私有时访问问题
- 22. 构造函数参数声明一个类的实例时出错
- 23. 声明一个函数SML
- 24. 声明一个函数?
- 25. 我可以在Python中的函数中声明一个类吗?
- 26. 为什么我们需要在实体中声明NOT空构造函数?
- 27. 从声明为公共无效
- 28. 我应该将throw()添加到我的C++析构函数的声明中吗?
- 29. 声明前向声明的类的成员函数为朋友
- 30. JS函数声明:在参数声明
您需要考虑的相关问题。 公共抽象类应该具有公共的还是受保护的构造函数? – 2014-04-22 13:31:47