this 和 super 关键字

运用super关键字实现子类调用父类的构造方法。
用this关键字实现当前类的对象调用成员变量或成员方法。

代码解释

class Point2{
	protected int x,y;
	Point2 ( int a , int b){
		setPoint(a,b);
	}
	public void setPoint (int a, int b){
		x = a; y = b;
	}
}
class Line2 extends Point2{
	protected int x,y;
	Line2 (int a, int b) { super(a,b); setLine(a,b);}
	public void setLine(int x, int y){
		this.x = x + x; this.y = y;
	}
	public double length(){
	int x1 = super.x, y1 = super.y , x2 = this.x, y2 = this.y;   //可以看出这里的 x1 和 y1 是类Point2 的变量, 而 x2 和 y2 是类Line2 变量。
	return Math.sqrt((x2-x1) * (x2-x1) + (y2 - y1) * (y2 - y1) ;
	}
	public String toString(){
		return "直线端点:[" + super.x + ","super.y + "][" + x + "," + y + " ] 直线长度: " + this.length();
	}
}
public class exp5_3 {
	public static void main(String args[]){
		Line2 line = new Line2(50,50);
		System.out.println("/n" + line.toString());
	}
}
  1. this 可以代表当前类或对象本身。在一个类中, this 表示对当前类的引用,在使用类的成员是隐含着 this 引用。 尽管可以不明确地写出,当一个类被实例化为一个对象时,this 就是对象名的另一种表示。通过this可顺利的访问对象,凡是在需要使用对象的地方都可以用this 代替。
  2. super代表父类,如果子类的变量隐藏了父类的变量,使用不加引用的变量一定是子类的变量,如果使用父类的变量,就必须加上 super 引用。同样的道理,如果有方法覆盖的发生,调用父类的方法时也必须加上super引用。
  3. super()可用来调用父类的构造方法。

让我想起了鸣人和自来也在一起的日子,不如把蛤蟆文太和蛤蟆吉看做父类和子类,鸣人刚和自来也历练的时候,常常召唤的是蛤蟆吉,这就是用子类对象的过程,this 是鸣人的另一种表示, 如果想要召唤文太,就要看 super 自来也的了,加上super引用,用的就是父类蛤蟆文太,自来也真的是亦师亦父,是鸣人的super。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值