Super关键字和this关键字

super和this关键字不能在static方法中使用,应为static创建的时候可能对象还没有创建,但是super和this关键字都是表示当前对象

super:可以 用于修饰属性、方法、构造器


        1)属性:       当子类与父类有同名的属性是,可以通过"super.父类的属性"显示的调用父类中的属性。若想要调用
               子类的同名属性使用“this.子类的属性”
        2)方法:        当子类重写父类的方法以后,在子类中若想再显示的调用父类的被重写的方法,
               就必须使用“super.方法名”
        3)构造器:    super修饰构造器,通过在子类中使用“super(形参列表)”来显示的调用父类中的构造器
              》在构造器内部,“super(形参列表)”必须在首行声明
              》在构造器内部,当不显示的调用“this(形参列表)”或者“super(形参列表)”其中的任何一个,
                  默认调用父类空参的构造器!
             建议:设计一个类时候,尽量要提供一个空参的构造器!

this关键字

1.可以用来修饰属性、方法、构造器
2.this理解为当前对象或当前正在创建的对象
3.可以在构造器中通过“this(形参)”的方式显示的调用本类中其他重载的指定的构造器。
       要求:1.在构造器内部必须声明在首行
                  2.若一个类中有n个构造器,那么最多有n - 1个构造器中使用了this()

                  3.在进行构造方法的调用时候,一定要为方法保留调用的出口

 

public class TestThisKey {
	public static void main(String[] args) {
		Person p = new Person();
		p.setAge(998);
		p.setName("小小猪");     //此时p对象即:this = p;
		p.info();
	}

}
class Person{
	private String name;
	private int age;
	
	//构造器
	public Person() {
		
	}
	//this.name表示当前正在创建的采纳数和方法
	public Person(String name) {
		System.out.println("这是Person类中形参name的构造器!");
		this.name = name;
	}
	
	//this.name表示当前正在创建的对象
	//name :表示形参
	public Person(String name,int age) {
		//this.name = name;  当两个代码操作一样时,可以使用this(name)调用上面Person(String name)方法中的对象
		//this():可以显示的调用本类的重载的指定的构造器
		this(name);   //调用其他的构造器的时候必须将此语句卸载构造器的首行
		this.age = age;
		System.out.println("这是调用的重载的指定的构造器!");
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) { //当属性相同时
		this.name = name;              //this指的是谁调用当前的setName谁就是当前的对象即this
	} 
	
	public int getAge() {
		return age;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	public void eat() {
		System.out.println("人吃饭");
	}
	public void info() {
		System.out.println("name:" + this.name + "\t age:" + this.age);
		this.show();  //当前对象调用show的方法
	}
	public void show() {
		System.out.println("我是一个人,我的名字是" + this.name);
	}
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值