Java中的this关键字的使用

Java中的this关键字的使用,第1张

Java中的this关键字的使用

在C++中有this指针调用格式是this->,因为java中没有指针,所以在java中将this命名为关键字来使用,主要的作用是为了突出属性或者方法是当前对象的,区分形参与属性,尤其是方法中形参和属性名字相同时,再一个作用是在构造器中(C++中叫构造函数)调用其他的构造器,this(形参列表),通过形参列表的不同调用不同的构造器,也有一些规定,比如一个构造器只能调用一个另外的构造器,this(形参列表)这句代码必须在构造器的第一行等等,还有在对象中如果将对象作为形参传入方法,用可直接用this关键词去代替那个形参,强调是当前对象。如下面的小例子:

Boys类 :

package OOPKeyWords;

public class Boys {

	private String name;
	private int age;
	
	
	
	
	public Boys() {
		
	}
	
	
	public Boys(String name, int age) {

		this.name = name;
		this.age = age;
	}


	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	public void Marry(Grils girl)
	{
		System.out.println("我想娶"+girl.getName());
	}
	public void shout()
	{
		if(age>22)
		{
			System.out.println("你可以去登记结婚了");
		}else
		{
			System.out.println("年龄不够,先谈恋爱");
		}
	}
}

Grils类:

package OOPKeyWords;

public class Grils {

	private String name;
	private int age;
	
	
	public Grils() {

	}
	public Grils(String name, int age) {
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public void marry(Boys boy)
	{
		System.out.println("我想嫁给"+boy.getName());
		boy.Marry(this);//此处的this指的是娶得当前的女孩
	}
	
	public int compare(Grils gril)
	{
		if(this.age>gril.age)
		{
			return 1;
		}
		else if(this.age 

main函数:

package OOPKeyWords;

public class BoyGrilTest {
	public static void main(String[] args) {
		Boys boy=new Boys("罗密欧",18);
		boy.shout();
		Grils gril=new Grils("朱丽叶",18);
		gril.marry(boy);
		Grils gril1=new Grils("祝英台",19);
		int compareResult=gril.compare(gril1);//gril是当前对象
		System.out.println(compareResult);
		
	}
}

结果:

年龄不够,先谈恋爱
我想嫁给罗密欧
我想娶朱丽叶
-1

其中第三句中朱丽叶就是当前的对象,对应于代码中Grils类中的this关键字,此处两个类中的方法相互以另一个类的对象作为形参,更好的体现了this关键字的使用情况。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5678373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存