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.
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:
this通常指代当前对象,super通常指代父类
使用this关键字来指明你要使用某个成员,使用方法是“this.成员名”,而不带this的那个便是形参。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yihuei123/archive/2007/06/04/1637893.aspx