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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

java默认空参构造函数的访问权限是public吗?
如果是,求解如图

360反馈意见截图16450702245459.png (153.14 KB, 下载次数: 295)

360反馈意见截图16450702245459.png

2 个回复

倒序浏览
不是,它的访问权限是default的。给你串代码玩玩:

  1.                 // 同一个包能访问,不同的包无法访问(包括继承都不行),从这点就看出构造方法为default的了
  2.                 AAA a =new AAA();
  3.                 // 接下来取String的无参构造方法的修饰符和该构造方法的修饰符进行比较
  4.                 // 发现String无参构造是public修饰的,而AAA无参构造无修饰符,so...
  5.                 Constructor<?> con = String.class.getDeclaredConstructor();
  6.                 System.out.println(Modifier.toString(con.getModifiers()));
  7.                
  8.                 con = AAA.class.getDeclaredConstructor();
  9.                 System.out.println(Modifier.toString(con.getModifiers()));
复制代码
回复 使用道具 举报
玉质彼端 发表于 2016-3-13 13:26
不是,它的访问权限是default的。给你串代码玩玩:

不同包无法访问是因为它类的访问权限不是public
构造函数的访问权限不是固定的,类的访问权限只有两种:默认和public,当类的访问权限是public时,默认无参构造的访问权限就是public,当类的访问权限是默认时,默认无参构造的访问权限就是默认的。
结论:类的默认无参构造函数的访问权限就是类的访问权限
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马