您的位置:首页 > 编程语言 > Java开发

java中super,this的用法举例

2015-10-05 12:55 609 查看
eg1:
class Person {

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

Person() {
prt("A Person.");
}

Person(String name) {
prt("A person name is:" + name);

}
}
public class Chinese extends Person {
Chinese() {
super(); // 调用父类构造函数(1)//////1111
prt("A chinese.");// (4)//////22222
}

Chinese(String name) {
super(name);// 调用父类具有相同形参的构造函数(2)//////3333
prt("his name is:" + name);//////4444
}

Chinese(String name, int age) {
this(name);// 调用当前对象具有相同形参的构造函数(3) Chinese(String name) ////5555
prt("his age is:" + age);/////6666
}

public static void main(String[] args) {
Chinese cn = new Chinese();
cn = new Chinese("kevin");
cn = new Chinese("kevin", 22);
}
}
A Person.

A chinese.

A person name is:kevin

his name is:kevin

A person name is:kevin

his name is:kevin
his age is:22

eg2:

public class DemoThis {
private String name;
private int age;

DemoThis(String name, int age) {
setName(name);
// 你可以加上this来调用方法,像这样:this.setName(name);但这并不是必须的
setAge(age);
this.print();
}

public void setName(String name) {
this.name = name;// 此处必须指明你要引用成员变量
}

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

public void print() {
System.out.println("Name=" + name + " age=" + age);
// 在此行中并不需要用this,因为没有会导致混淆的东西
}

public static void main(String[] args) {
DemoThis dt = new DemoThis("Kevin", 22);
}
}
Name=Kevin age=22

eg3:
class Person2 {
public int c;
private String name;
private int age;

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

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

protected void print() {
System.out.println("Name=" + name + " Age=" + age);
}
}

public class DemoSuper extends Person2 {
public void print() {
System.out.println("DemoSuper:");
super.print();/////调用父类的print
}

public static void main(String[] args) {
DemoSuper ds = new DemoSuper();
ds.setName("kevin");
ds.setAge(22);
ds.print();///调用自己的print
}
}
DemoSuper:

Name=kevin Age=22

总结:
this通常指代当前对象,super通常指代父类

使用this关键字来指明你要使用某个成员,使用方法是“this.成员名”,而不带this的那个便是形参。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yihuei123/archive/2007/06/04/1637893.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: