Java中this关键字的三种用法

①this关键字只能在方法内部使用
②this表示对“调用方法的那个对象”的引用–《Thinking in java》
1、this.属性名

// 创建构造方法,为属性赋初始值
public Teacher(String name,double salary,int age) {
    this.name = name;    // 设置名称
    this.salary = salary;    // 设置工资
    this.age = age;    // 设置年龄
}

在 构造方法中使用 this 关键字对属性 name、salary 和 age 赋值,this 表示当前对象。this.name 指当前对象具有的变量 name,右边的 name 表示参数传递过来的数值。
2、this.方法名

/**
 * 第一种定义Dog类方法
 **/
public class Dog {
    public void jump() {
        System.out.println("正在执行jump方法");
    }
    public void run() {
        Dog d = new Dog();
        d.jump();  //run方法调用jump方法。
        System.out.println("正在执行 run 方法");
    }
}
public class DogTest {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.run();
    }
}

上述代码中:
一、main方法与run方法中各创建了一个Dog类的对象。
二、又可知run方法中要调用jump方法必须得new一个Dog类对象

/**
 * 第二种定义Dog类方法
 **/
public void run() {
    // 用this调用run方法对象。思路见开头第二点,即(This:dog)
    this.jump();
    System.out.println("正在执行run方法");
}

Java 允许对象的一个成员直接调用另一个成员,可以省略 this 前缀。即可以改为如下形式:

public void run() {
    jump();
    System.out.println("正在执行run方法");
}

static 修饰的方法中不能使用 this 引用。并且 Java 语法规定,静态成员不能直接访问非静态成员。
如果传递一个对象的引用到静态方法里(静态方法可以创建其自身的对象),然后通过这个对象的引用(效果和this相同),就可以调用非静态方法和访问非静态数据成员了。

省略 this 前缀只是一种假象,虽然程序员省略了调用 jump() 方法之前的 this,但实际上这个 this 依然是存在的。
3、this( )访问构造方法
this( ) 用来访问本类的构造方法,括号中可以有参数,即调用有参构造方法。

public class Student {
    String name;
    public Student() {// 无参构造
        this("张三");
    }
    public Student(String name) {// 有参构造
        this.name = name;
    }
    public void print() {
        System.out.println("姓名:" + name);
    }
    public static void main(String[] args) {
        Student stu = new Student();
        stu.print();
    }
}

注:

this( ) 不能在普通方法中使用,只能写在构造方法中。
在构造方法中使用时,必须是第一条语句。

  • 13
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值