黑马程序员技术交流社区
标题:
构造函数的修饰符问题
[打印本页]
作者:
王震阳老师
时间:
2012-10-13 22:03
提示:
该帖被管理员或版主屏蔽
作者:
马磊
时间:
2012-10-13 22:27
A B 和C 都能运行,D肯定是不行的,因为这里构造函数前面修饰符是private,不能在类外面调用执行。
作者:
沈佳龙
时间:
2012-10-13 22:30
A()
{
System.out.println("default 构造函数已经运行。。。");
return;
}
第一眼看见觉得这个是构造方法 后来发现也不是为什么呢 构造方法没有类型,如果加了类型就不是构造方法了 而变成了了一个普通的方法,为什么上面的那个方法不是构造方法呢 因为你写了一个返回 构造方法是没有返回类型的。
作者:
梁世喜
时间:
2012-10-13 22:36
本帖最后由 梁世喜 于 2012-10-13 22:37 编辑
除private A()外均为正确的。
public A()共有的毫无疑问了。
protected A() protected 修饰的方法访问范围为同类、同包和其子类。所以protected构造可用。
A() 没有修饰符修饰的构造,修饰符与类相同(毕老师的视频里有提到)。
private A() 为本来私有,除本类外,其他均不可访问。
以上是我的理解,欢迎大家补充。
作者:
王亚运
时间:
2012-10-13 22:50
比较笨,挨个试的。
第四个失败。
private:只有A自己才可以存取, 使用keyword private
package:只有和A同一個package的class才可以存取, 沒有相對應的keyword
protected:只有同一個package或是A的子類別才可以存取, 使用keyword protected
public:所有的class都可以存取, 使用keyword public
对吗?
作者:
王震阳老师
时间:
2012-10-13 23:30
梁世喜 发表于 2012-10-13 22:36
除private A()外均为正确的。
public A()共有的毫无疑问了。
这个我很认同!
作者:
徐升兴
时间:
2012-10-13 23:41
D不可以,其余皆可。
编译器报错:
E:\java\javajobs>javac A.java
A.java:5: error: A() has private access in A
A a=new A();
^
1 error
作者:
叶追秋
时间:
2015-4-3 23:27
D中私有化了构造函数,所以不能创建A类的对象。其它三个答案都可以。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2