Filter Java开发手册 Cluster模式 html dynamic orm routing signalr rss usb nginx学习视频 oracle修改字段默认值 mser算法 java高级特性 python内置库 javaswitch javaindexof java8教程 java连接mysql数据库 java初级入门教程 jdk环境配置 java异常 linux系统教程 javascript实例 id解锁大师 adobe清理工具 视频字幕提取器 考试练习系统 html5下载 狮子狗皮肤 3d看图软件 爱奇艺无法投屏 威纶通触摸屏编程软件 layout下载 苹果手机常去地点 女圣骑 接口自动化测试框架 opencv是什么 pcmark10 js观察者模式
当前位置: 首页 > 学习教程  > 编程语言

Java关键字之this

2020/12/28 20:04:47 文章标签:

Java关键字 —— this定义用法普通的直接引用形参与成员变量重名,使用this来区分引用构造函数注意事项定义 this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 用法 this的用法在Java中大概可以分为3种 …

Java关键字 —— this

  • 定义
  • 用法
    • 普通的直接引用
    • 形参与成员变量重名,使用this来区分
    • 引用构造函数
    • 注意事项

定义

this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。

用法

this的用法在Java中大概可以分为3种

普通的直接引用

this相当于指向当前对象的本身

形参与成员变量重名,使用this来区分

实例:

punlic class Student{
	private Strins name;

	public String getName(){
		return name;
	}
	public void setName(String name){
		this.name = name;
	}
}

上述代码中,用this修饰的name就是成员变量name,没有this修饰的就是形参name。
在这里插入图片描述
上述代码中的getName方法并没有形参,没有与成员变量重名,所以直接return name返回的就是成员变量。

引用构造函数

使用方法:this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。
实例:

package com.lrving;

public class TestDemo {
	public static void main(String[] args) {
		Person p = new Person();
		System.out.println(p.getName());
		System.out.println(p.getAge());
	}

}


class Person{
	private String name;
	private int age;
	
	// 带参的构造函数
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Person(String name) {
        this(name, 18); // 调用另一个构造方法Person(String, int)
    }

    public Person() {
        this("Unnamed"); // 调用另一个构造方法Person(String)
    }
	
	public String getName() {
		return this.name;
	}
	
	public int getAge() {
		return this.age;
	}
}

当执行

public class TestDemo {
	public static void main(String[] args) {
		Person p = new Person();
		System.out.println(p.getName());
		System.out.println(p.getAge());
	}

}

执行得到的结果是
在这里插入图片描述
原因是Person p = new Person();调用的是

 public Person() {
        this("Unnamed"); // 调用另一个构造方法Person(String)
    }

此时this(“Unnamed”);调用

    public Person(String name) {
        this(name, 18); // 调用另一个构造方法Person(String, int)
    }

所以输出的结果就是
Unnamed
18
当执行

public class TestDemo {
	public static void main(String[] args) {
		Person p = new Person("Lrving");
		System.out.println(p.getName());
		System.out.println(p.getAge());
	}

}

执行得到的结果是
Lrving
18
原因是Person p = new Person(“Lrving”);调用的是

    public Person(String name) {
        this(name, 18); // 调用另一个构造方法Person(String, int)
    }

此时 this(name, 18);调用

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

所以输出的结果就是
Lrving
18
当执行

public class TestDemo {
	public static void main(String[] args) {
		Person p = new Person("Lrving",18);
		System.out.println(p.getName());
		System.out.println(p.getAge());
	}

}

执行得到的结果就是
Lrving
18
直接调用的就是

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

注意事项

代表所在类的对象引用,方法被那个对象调用,this就代表那个对象。


本文链接: http://www.dtmao.cc/news_show_550421.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?