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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 橸瑩膤漃寞林 中级黑马   /  2014-3-11 15:31  /  944 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 橸瑩膤漃寞林 于 2014-3-11 21:19 编辑

Person(String name,int age)
        {
                this(name);
                this.name = name;
                this.age = age;

this(name);谁能帮我解释一下吗,看不懂。
               

4 个回复

倒序浏览
能否贴出全部代码,谢谢!
回复 使用道具 举报
你的代码不全,少了一个接收name的构造方法。完整的代码时这样的:
  1. public Person(String name, int age) {
  2.                 this(name);
  3.         this.name = name;
  4.         this.age = age;
  5.         }
  6.        
  7.         public Person(String name) {
  8.                 System.out.println(name);
  9.         }
复制代码

this(name)的意思就是调用接收参数为String的那个构造方法。


回复 使用道具 举报
class Person
{
        private String name;
        private int age;
       
        {
               
                System.out.println("code run");
        }
       
        Person()
        {
                //this("hah");
                System.out.println("person run");
        }
        Person(String name)
        {
                //this();
                this.name =name;
        }
        Person(String name,int age)
        {
                //this(name);
                //this.name = name;
                this.age = age;
               
        }

}

class  PersonDemo4
{
        public static void main(String[] args)
        {
                new Person();
                //Person p = new Person("lisi",30);
                //Person p1 = new Person("lisi2",36);

        }
}
回复 使用道具 举报
这里是this的用法。代表调用上一个构造方法参数为(name),对name进行赋值
1、表示对当前对象的引用!

2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。

3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!

还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马