Java中this和super的用法

Java中this和super的用法

一、作为对象使用

1.this的用法
作为当前类的一个对象使用,一般用于封装中的getXxx()方法,调用当前类中的属性

package program;

public class Person {

    private String name;//姓名
    private int 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;
    }
}

2.super的用法
作为父类中的一个对象在子类中进行使用,调用父类中的getXxx()和setXxx()方法

“`
package program;

public class Student extends Person{

private String studentNo;//学号

public String getStudentNo() {
    return studentNo;
}

public void setStudentNo(String studentNo) {
    this.studentNo = studentNo;
}

public void test(){
    super.setName("小明");
    super.setAge(18);
    this.setStudentNo("0144004");
    String name = super.getName();
    int age = super.getAge();
    String studentNo = this.getStudentNo();

    System.out.println("姓名: " + name + "  年龄 " + age + " 学号 " + studentNo);
}

public static void main(String[] args){
    Student s = new Student();
    s.test();
}

}

这里写图片描述

“`二、作为构造方法使用

super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。
this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。

class Person {
public static void prt(String s) {
System.out.println(s);
}

Person() { 
   prt("父类·无参数构造方法: "+"A Person."); 
}//构造方法(1) 

Person(String name) { 
   prt("父类·含一个参数的构造方法: "+"A person's name is " + name); 
}//构造方法(2) 

}

public class Chinese extends Person {
Chinese() {
super(); // 调用父类构造方法(1)
prt(“子类·调用父类”无参数构造方法“: “+”A chinese coder.”);
}

Chinese(String name) { 
   super(name);// 调用父类具有相同形参的构造方法(2) 
   prt("子类·调用父类”含一个参数的构造方法“: "+"his name is " + name); 
} 

Chinese(String name, int age) { 
   this(name);// 调用具有相同形参的构造方法(3) 
   prt("子类:调用子类具有相同形参的构造方法:his age is " + age); 
} 

public static void main(String[] args) { 
   Chinese cn = new Chinese(); 
   cn = new Chinese("codersai"); 
   cn = new Chinese("codersai", 18); 
} 

}
运行结果:

父类·无参数构造方法: A Person.
子类·调用父类”无参数构造方法“: A chinese coder.
父类·含一个参数的构造方法: A person’s name is codersai
子类·调用父类”含一个参数的构造方法“: his name is codersai
父类·含一个参数的构造方法: A person’s name is codersai
子类·调用父类”含一个参数的构造方法“: his name is codersai
子类:调用子类具有相同形参的构造方法:his age is 18

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值