黑马程序员技术交流社区

标题: 构造函数中的public问题 [打印本页]

作者: 周洋    时间: 2012-3-9 19:46
标题: 构造函数中的public问题
构造函数中加不加public都能显示出结果,加public是表示公有,要是不写public呢? 有什么含义
作者: djx900    时间: 2012-3-9 20:04
不写public  表示默认状态
作者: 周洋    时间: 2012-3-9 20:06
{:soso_e103:}老乡
作者: 泮和顺    时间: 2012-3-9 20:16
构造只是给类实例化对象的时候初始化用的 默认都不要加了 加了也没什么意思吧 因为他根本被别人调用只是给对象建立的时候初始化用的。
作者: 张锐    时间: 2012-3-9 20:32
public是修饰权限的,不加的话是default权限。
default权限修饰的构造函数不能在包外new这个对象。
public修饰的构造函数可以在包外new这个对象。
作者: 周洋    时间: 2012-3-9 20:33
谢谢  很详细 明白了
作者: 四海为家    时间: 2012-3-14 22:22
java之中有四种访问权限,分别是public;private;protected,还有默认的。他们的访问权限如下:
public:是公有的,被它修饰的成员方法,成员函数和类,在本类,子类,同包,不同包中都可以访问。
private:是私有的,被它修饰的成员方法,成员函数和类,在子类,同包,不同包中都不可以访问,只有在本类中可以访问。
protected:是保护的,被它修饰的成员方法,成员函数和类,只有在本类,和子类中能访问,在同包,不同包中都不可以访问。
默认的访问权限:被它修饰的成员方法,成员函数和类,在本类,子类,同包中能访问,在不同包中不可以访问。
对于你的问题:构造函数中加不加public都能显示出结果,这观点是片面的,要看访问它的对象在哪里了,如果不加public,当访问该构造函数的对象,在不同的包中,即与构造函数所在的类不同与一个包中,就不能显示结果了,对于这样的问题,我想只要你弄清楚几个访问权限的访问范围,就能很好的理解了
作者: OMG    时间: 2012-3-14 23:48
首先,构造函数权限修饰符是有应用场景的。在学习基础的时候,我们通常不给构造还是添加权限修饰符,是应为我们还没有需要跨包建立对象。但是如果你注意的话,你会发现我们导过来的IO包,util包中的类的构造函数都是public修饰。所以,实际应用中,有可能需要给其他包的类建立对象,就用public修饰构造函数。
其次,构造函数的权限修饰符,和成员函数以及成员变量的权限修饰符的使用规则是一样的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2