java中super,this的用法举例

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


你可能感兴趣的:(java中super,this的用法举例)