Java中this和super关键字的常用方法总结

this关键字:

1、this关键字,本类对象的引用

this是在方法中使用的,哪个对象调用了该方法,那么,this就代表调用该方法的对象引用。

2、在成员变量名前面加上this.来区别成员变量和局部变量

在这里插入图片描述
在图中的代码块中,成员变量 age 和方法中传入的形参(局部变量)同名,在赋值的时候为了加以区分,我们可以通过加this关键字来区分,this. 可以调用类的成员变量和方法。

class Person {
	private int age;
	private String name;
	
	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getName() {
		return name;
	}

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

	public void speak() {
		System.out.println("name=" + this.name + ",age=" + this.age);
	}

	// 判断是否为同龄人
	public boolean equalsAge(Person p) {
		// 使用当前调用该equalsAge方法对象的age和传递进来p的age进行比较
		// 由于无法确定具体是哪一个对象调用equalsAge方法,这里就可以使用this来代替

		if(this.age == p.age) 
		//{ return true; } return false;
		
		return this.age == p.age;
	}
}

3、通过 this关键字来调用本类的其他构造函数

格式如下:
在这里插入图片描述
在这里插入图片描述
在上图中,带两个参数的构造函数入栈后,执行:this(nm)语句时,由于括号中带有一个参数,其实际作用是在有两个参数的构造函数中调用带一个参数的构造方法完成对象的初始化,

class Person {
	private int age;
	private String name;

	Person()  {  }                      //空参构造函数
	Person(String nm) {                 //带一个形参的有参构造函数
		name = nm;
	}
	Person(String nm, int a) {          //带两个形参的有参构造函数  
		this(nm);
		age = a;
	}
}

class PersonDemo {
	public static void main(String[] args) {
		Person p = new Person("张三", 23);
	}
}

super关键字

1、调用父类的成员变量: super.成员变量;

2、调用父类的成员方法:super.成员方法;

3、调用父类的构造方法: super(参数);

在这里插入图片描述
此处位子类的有参构造函数,通过super关键字实现调用父类的构造函数来完成子类对象的初始化。
以下为示例代码:
1、父类:

public abstract class Employee {
	private String id;// 员工编号
	private String name; // 员工姓名
	
	//空参数构造方法
	public Employee()  {	}
	//有参数构造方法
	public Employee(String id, String name) {
		this.id = id;
		this.name = name;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	//工作方法(抽象方法)
	public abstract void work(); 
}

2、子类:

public abstract class Developer extends Employee {
	//空参数构造方法
	public Developer() {
		super();
	}
	//有参数构造方法
	public Developer(String id, String name) {
		super(id, name);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值