A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周洋 黑马帝   /  2012-3-9 19:46  /  5196 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

构造函数中加不加public都能显示出结果,加public是表示公有,要是不写public呢? 有什么含义

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

7 个回复

倒序浏览
不写public  表示默认状态
回复 使用道具 举报
{:soso_e103:}老乡
回复 使用道具 举报
构造只是给类实例化对象的时候初始化用的 默认都不要加了 加了也没什么意思吧 因为他根本被别人调用只是给对象建立的时候初始化用的。
回复 使用道具 举报
public是修饰权限的,不加的话是default权限。
default权限修饰的构造函数不能在包外new这个对象。
public修饰的构造函数可以在包外new这个对象。

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
谢谢  很详细 明白了
回复 使用道具 举报
java之中有四种访问权限,分别是public;private;protected,还有默认的。他们的访问权限如下:
public:是公有的,被它修饰的成员方法,成员函数和类,在本类,子类,同包,不同包中都可以访问。
private:是私有的,被它修饰的成员方法,成员函数和类,在子类,同包,不同包中都不可以访问,只有在本类中可以访问。
protected:是保护的,被它修饰的成员方法,成员函数和类,只有在本类,和子类中能访问,在同包,不同包中都不可以访问。
默认的访问权限:被它修饰的成员方法,成员函数和类,在本类,子类,同包中能访问,在不同包中不可以访问。
对于你的问题:构造函数中加不加public都能显示出结果,这观点是片面的,要看访问它的对象在哪里了,如果不加public,当访问该构造函数的对象,在不同的包中,即与构造函数所在的类不同与一个包中,就不能显示结果了,对于这样的问题,我想只要你弄清楚几个访问权限的访问范围,就能很好的理解了
回复 使用道具 举报
OMG 中级黑马 2012-3-14 23:48:09
8#
首先,构造函数权限修饰符是有应用场景的。在学习基础的时候,我们通常不给构造还是添加权限修饰符,是应为我们还没有需要跨包建立对象。但是如果你注意的话,你会发现我们导过来的IO包,util包中的类的构造函数都是public修饰。所以,实际应用中,有可能需要给其他包的类建立对象,就用public修饰构造函数。
其次,构造函数的权限修饰符,和成员函数以及成员变量的权限修饰符的使用规则是一样的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马