黑马程序员——Java 基础:this 关键字的使用

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
一、概述
在以下几种情况中使用 this 关键字:
1. 在类中的方法中表示本类的对象
2. 在内部类中的方法中使用,以访问外部类中的成员
3. 用于构造函数之间互相调用
二、示例和说明
(1)在类中的方法中表示本类的对象

  访问类中的 private 属性的变量时,通常要使用 getter 和 setter 方法,而 setter 方法要使用 this 关键字:

// 在 Demo 类中定义一个私有变量 age;并定义它的 setter 和 getter 方法

class Demo {
    private int age;
    public void setAge(int age) {
        this.age = age;
    }
    public int getAge () {
        return age;
    }
// 在主函数中示例化 Demo 类并调用 setAge() 方法改变 Demo 的实例化对象 d 中变量 age 的值
class ThisDemo1 {
    public static void main (String[] args) {
        Demo d = new Demo();
        d.setAge(25);
    }
}

  这段代码中的 this 表示 Demo 类的对象,在主函数中 Demo 实例化对象 d 调用方法时,this 就表示调用该方法的本类的实例化对象,this.age = age 就相当于 d.age = age。

(2)在内部类中的方法中,访问外部类中的成员变量

// 在内部类中的方法中打印输出外部类的成员变量的值
class Outer {
    int x = 1;
    class Inner {
        int x = 2;
        public void func() {
            System.out.println(Outer.this.x);
        }
    }
}

  代码中的 Outer.this 表示外部类 Outer 的实例化对象,从而可以访问外部类的中的成员。

(3)用于构造函数之间互相调用
  如果一个类中有多个构造函数,在一个构造函数中调用其他构造函数中的方法时要使用 this(),并且其要在方法中的语句的第一行。

// 在一个类中重写两个构造函数,并在一个构造函数中调用另一个构造函数
class ThisDemo2 {
    int age;
    String name;
    public void ThisDemo2 (int age) {
        This.age = age;
    }
    public void ThisDemo2 (int age,String name) {
        This(age);
        This.name = name;
    }
}

  在创建类的实例化对象时,会调用类的构造函数进行初始化,而如果构造函数中还调用了其他构造函数,即其他初始化动作,则应该优先执行该初始化动作,也就是要把调用其他构造函数的 this() 语句放在最前面,否则会在编译时报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值