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
相关文章推荐
- Java基础知识强化之集合框架笔记30:集合之泛型的引入
- java操作Excel效率之poi与fastexcel比较(转载)
- java.lang.ClassNotFoundException但是项目里明明已经导入了需要的类
- JAVA于Get和Post差异请求
- Java多线程12:ReentrantLock中的方法
- java Exception RuntimeException
- android eclipse ndk使用记录
- Spring @Cacheable 的key生成
- Eclipse--Team--SVN--URL修改
- 学习工具篇 - eclipse 中使用autotools plugins
- java基础——break灵活应用
- Mybatis返回Map的一种实现
- (转载)位图bitmap算法(java)
- Java——采用DOM4J+单例模式实现XML文件的读取
- Java实现简易的文件的迁移器
- Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.Invocation
- Java实现简易的文件的迁移器
- 插入排序-java
- 冒泡排序-java
- Genymotion 插件在 Eclipse 和 Android Studio 中点击后无法初始化 Initialize Engine: failed 解决方法