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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 只缘遇你 于 2015-12-29 22:21 编辑

22.        给出下面的不完整的类代码
  class Person {
    String name, department;
    int age;
    public Person(String n){ name = n; }
public Person(String n, int a){
         name = n;         
         age = a;
}
    public Person(String n, String d, int a) {
            //填入——————使Person(String n, int a)逻辑编译通过
      department = d;
    }
  }
  下面的哪些表达式可以加到构造方法中的注释处? ( C  )  为什么 D不可以?
A. Person(n,a);
B. this(Person(n,a));
C. this(n,a);
D. this(name,age);

10 个回复

倒序浏览
ztg 中级黑马 2015-12-29 22:01:04
沙发
本大神掐指一算,你是上海期的
回复 使用道具 举报
构造方法接收的是参数是String n, String d, int a
回复 使用道具 举报
引用,  其实你理解意思就可以,只是形参成那样了
回复 使用道具 举报
我有一个邮箱了 发表于 2015-12-29 22:17
构造方法接收的是参数是String n, String d, int a

它填 什么可以  调用Person(String n, int a) 构造方法?  D 答案不可以么?
回复 使用道具 举报
参数列表内 变量名是  n  和  a ,当然要用n和a接收的数据给对象赋值
回复 使用道具 举报
本帖最后由 longllch 于 2015-12-30 13:15 编辑

D选项相当于this(this.name,this.age);构造方法一般是用来对其属性进行初始化操作的,而这句话的意思是:通过当前对象的字段值对类的属性name和age进行初始化操作,
但是当前对象的name和age也是不确定的值(在没有new Person()的时候),用不确定的值进行构造方法的初始化是不可行的.
此处我们需要this(n,a)传入一个确定的值,这时n和a通过传参传递进来的值是确定的.
如果非要使用,那么可将name和age设置为static,这样name和age就不会依赖对象而存在,只依赖类的加载而加载.
回复 使用道具 举报
你的成员变量不是String n, int a 在下面当然调用当前你n,a
回复 使用道具 举报
魏志林 来自手机 中级黑马 2015-12-30 16:37:22
9#
只缘遇你 发表于 2015-12-29 21:57
22.        给出下面的不完整的类代码
  class Person {
    String name, department;

因为传入的参数名字是,n,a,而不是name.age
回复 使用道具 举报
这个好坑
回复 使用道具 举报
我刚学面向对象  不懂  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马