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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
this 的应用  
this应用在函数内部要调用该函数的对象的时候,这个时候用this来表示这个对象


this 在构造函数间调用   构造函数间调用 只能用this来调用
*/
class Demo_71this{
        public static void main(String[] args) {
                PersonDemo p=new PersonDemo("张肖",23);
                System.out.println(p.country);
                System.out.println(PersonDemo.country);
        }
}
class PersonDemo{
        private int age;       
        private String name;
        static String country="cn";
        PersonDemo(){
                        //this.(name);                                                        // 情况(1)   不允许出现this.(name);和this.();互相调用的情况  相当于出现了无限循环调用
        }
        PersonDemo(String name){
                this.name="haha";
                System.out.println("----------");
                System.out.println(this.name);
                //this();                                                                                //出现情况(1)
        }
        PersonDemo(String name,int age){                                                //因为this语句是类的先初始化动作   要最先执行
                this(name);                                                                                        //this语句只能出现在构造函数的第一行
        }                                                                                                                //调用的是PersonDemo(String name);的构造函数  
}

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

4 个回复

倒序浏览
this.name = name
回复 使用道具 举报
你看看这个怎么解释才好理解,我也懂是当前对象

QQ图片20150914104226.png (5.22 KB, 下载次数: 21)

QQ图片20150914104226.png
回复 使用道具 举报
莫盛强 发表于 2015-9-14 21:33
你看看这个怎么解释才好理解,我也懂是当前对象

name是个数组把   this不是代表当前对象引用吗   
this.name.length()  代表的是当前类中的name数组长度
s.name.length()      代表的是s类中name数组的长度
你引用了Student类中的  name数组  
用本类中name数组的长度减去Student类中的name数组得出的数就是num
个人理解 不知道对不对
回复 使用道具 举报
赞一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马