Java中对象的this引用

this关键字的作用:让类中的一个方法去访问该类里的另一个方法或实例。
(因为现实中一个方法经常会依赖于另一个方法,所以this关键字很重要)

用法:
this可出现在非static方法、构造器中。
——出现在非static的方法中,this就代表该方法的调用者
——出现在非static的构造器中,this就代表该构造器的调用者
(谁调用该方法/构造器,this就代表谁!)
——this可访问类中的成员变量,用来区分成员变量和局部变量(重名问题)

**

(1)调用方法

**写一个类:

public class  MyLiveGoals
{
	//成员变量
	int wifevalue;
	double salary;
	//方法
	public void marry()
	{
		System.out.println("\n我一定能娶到老婆!");
	}
	public void value()
	{
		System.out.println("\n老婆的颜值打分:");
	}
	public void money()
	{
		System.out.println("\n一年工资:");
	}
	
	//测试方法
	public void test()
	{
		this.marry();  //在此方法中访问该类的另一个方法
		this.value();
		System.out.println(this.wifevalue); 
		this.money();
		System.out.println(this.salary);
	}
}

**调用:
(需创建对象来调用该类,创建对象的根本途径是构造器!)
eg:

Person p = new MyLiveGoals();//调用类中的构造器来创建对象

——通过new调用了MyLiveGoals类的构造器,返回了一个MyLiveGoals实例,也称为MyLiveGoals对象,这个对象(实例,new出来的对象叫实例,也可以叫对象)被赋给MyLiveGoals类型的变量p
变量p存在栈内存中,MyLiveGoals对象存放在堆内存中。

常写成:

var p = new  MyLiveGoals.

因为变量p的类型一眼可知。

调用该类的方法:

public class  GoalTest
{
	public static void main(String[] args) 
	{
		System.out.println("我的人生目标:");
		MyLiveGoals g = new MyLiveGoals(); //创建g变量,使g可引用MyLiveGoals类的构造器
		g.wifevalue = 9;
		g.salary = 2000000;
		g.test();
	}
}

在这里插入图片描述

(2)调用构造器

//创建类
public class Apple  
{
	String color;
	double weight;
//构造器用于对该对象执行初始化
	public Apple(String color , double weight)//括号内为形参
	{
//this的一个重要作用是用于区分方法或者构造器中的局部变量,尤其是与成员变量同名时
//构造器正在初始化谁,this就代表谁
		this.color = color;//若没有this,则没有引用,直接输出string默认值null
		this.weight = weight;//若没有this,则没有引用,直接输出double默认值0.0
	}
}

**调用:**
public class AppleTest 
{
	public static void main(String[] args) 
	{
		//此时构造器正在初始化ap,因此this代表ap
		Apple ap = new Apple("黄色",0.34);//括号内为实参
		System.out.println(ap.color);
		System.out.println(ap.weight);
	}
}

无this时的输出:
在这里插入图片描述
有this时的输出:
在这里插入图片描述

(3)访问类中的成员变量

用来区分成员变量局部变量(重名问题)

函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用**“this.成员变量名”**的方式来引用成员变量。

Public class Person
{
      String name;//成员变量
      int age;
      public void setName(String name)
      {
               this.name = name;//因为同名,所以用this来引用成员变量
               this.age = age;
      }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值