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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王震阳老师 金牌黑马   /  2012-10-13 22:03  /  2037 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

提示: 该帖被管理员或版主屏蔽

7 个回复

倒序浏览
A B 和C 都能运行,D肯定是不行的,因为这里构造函数前面修饰符是private,不能在类外面调用执行。
回复 使用道具 举报
A()
       {  
             System.out.println("default 构造函数已经运行。。。");
               return;        

     }
第一眼看见觉得这个是构造方法 后来发现也不是为什么呢    构造方法没有类型,如果加了类型就不是构造方法了   而变成了了一个普通的方法,为什么上面的那个方法不是构造方法呢   因为你写了一个返回   构造方法是没有返回类型的。
回复 使用道具 举报
本帖最后由 梁世喜 于 2012-10-13 22:37 编辑

除private A()外均为正确的。

public A()共有的毫无疑问了。

protected A() protected 修饰的方法访问范围为同类、同包和其子类。所以protected构造可用。

A()  没有修饰符修饰的构造,修饰符与类相同(毕老师的视频里有提到)。

private A() 为本来私有,除本类外,其他均不可访问。


以上是我的理解,欢迎大家补充。
回复 使用道具 举报


比较笨,挨个试的。
第四个失败。

private:只有A自己才可以存取, 使用keyword private
package:只有和A同一個package的class才可以存取, 沒有相對應的keyword
protected:只有同一個package或是A的子類別才可以存取, 使用keyword protected
public:所有的class都可以存取, 使用keyword public

对吗?
回复 使用道具 举报
梁世喜 发表于 2012-10-13 22:36
除private A()外均为正确的。

public A()共有的毫无疑问了。

这个我很认同!
回复 使用道具 举报
D不可以,其余皆可。
编译器报错:
E:\java\javajobs>javac A.java
A.java:5: error: A() has private access in A
                A a=new A();
                    ^
1 error
回复 使用道具 举报
D中私有化了构造函数,所以不能创建A类的对象。其它三个答案都可以。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马