this关键字、this关键字应用

来源:互联网 发布:新浪微博发淘宝链接 编辑:程序博客网 时间:2024/05/29 13:40

一、this关键字:
1、需求: 使用java类描述一个动物。

1)问题分析:存在同名的成员变量与局部变量时,在方法的内部访问的是局部变量(java 采取的是就近原则的机制访问的)。
2)内存分析:

2、this关键字代表了所属函数的调用者对象。

解释:哪个对象调用这个函数,this就代表哪个对象

3、this关键字作用:
1)如果存在同名成员变量与局部变量时,在方法内部默认是访问局部变量的数据,可以通过this关键字指定访问成员变量的数据。
a)举例:

b)内存分析:

2)在一个构造函数中可以调用另外一个构造函数初始化对象。

4、this关键字要注意事项:
1)存在同名的成员变量与局部变量时,在方法的内部访问的是局部变量(java 采取的是“就近原则”的机制访问的。)
a)举例:

b)解决办法:

public Animals(String name,int age){    this.name = name;   //局部变量的name、age赋给成员变量    this.age = age;}

2)如果在一个方法中访问了一个变量,该变量只存在成员变量的情况下,那么java编译器会默认在该变量的前面添加this关键字。

问题:

解决方法:
this关键字另一个作用应用:在一个构造函数中可以调用另外一个构造函数初始化对象。

说明:

this(); //无参构造方法调用this(name); //有一个参数的构造方法调用

5、this关键字调用其他的构造函数要注意的事项:
1)this关键字调用其他的构造函数时,this关键字必须要位于构造函数中的第一个语句。

class Animals{    String name;    int age;    public Animals(String name,int age){        this(name);     //调用本类一个参数的构造方法        //这样的this关键字必须位于构造函数的第一个语句处        this.age = age;        System.out.println("两个参数构造方法");    }    //参数不同的构造函数    public Animals(String name){        this.name = name;        System.out.println("一个参数构造方法");    }    public void eat(){        System.out.println(name+"吃");    }}class Demo1{        public static void main(String[] args) {        Animals dog = new Animals("狗",1);        System.out.println(dog.name+","+dog.age);    }}

2)this关键字在构造函数中不能出现相互调用的情况,因为是一个死循环。

二、this关键字应用:
1、需求:使用java定义一个人类,人具备 id、name 、 age三个属性, 还具备一个比较年龄的方法。
2、要求: 必须要写上构造函数,构造函数也必须要使用上this关键字。
3、代码:
形式一:

形式二:

1 0
原创粉丝点击