黑马程序员技术交流社区

标题: java默认空参构造函数的访问权限 [打印本页]

作者: 陌城    时间: 2016-3-13 04:08
标题: java默认空参构造函数的访问权限
java默认空参构造函数的访问权限是public吗?
如果是,求解如图

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

360反馈意见截图16450702245459.png

作者: 玉质彼端    时间: 2016-3-13 13:26
不是,它的访问权限是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 18:39
玉质彼端 发表于 2016-3-13 13:26
不是,它的访问权限是default的。给你串代码玩玩:

不同包无法访问是因为它类的访问权限不是public
构造函数的访问权限不是固定的,类的访问权限只有两种:默认和public,当类的访问权限是public时,默认无参构造的访问权限就是public,当类的访问权限是默认时,默认无参构造的访问权限就是默认的。
结论:类的默认无参构造函数的访问权限就是类的访问权限




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