JAVA中this与super两个关键字的用法
来源:互联网 发布:qq for mac截图快捷键 编辑:程序博客网 时间:2024/05/21 22:52
讨论一下JAVA中this与super两个关键字的用法。
在Java中this通常指当前对象,super通常指父对象。如果想引用当前对象的某种东西,比如当前对象的成员属性或者方法,则可使用this来实现这个目的。this也可以用来调用当前对象的构造函数,通过参数来选择具体哪个构造函数。而super关键字与this使用方法类似,区别在于super指的是父对象。下面来演示具体用法:
this用法
1.this调用当前对象成员属性
public class Person { private String name; private String age; Person(String name,String age){ this.name = name; this.age = age; prt();//this.prt(); } protected void prt(){ System.out.println("this person's name is "+name+",age is "+age); } public static void main(String[] args){ new Person("tom","11"); }}
2.this调用当前对象方法
public class Person { private String name; private String age; Person(String name,String age){ setName(name);//this.setName(name); setAge(age);//this.setAge(age); prt();//this.prt(); } protected void setName(String name){ this.name = name; } protected void setAge(String age){ this.age = age; } protected void prt(){ System.out.println("this person's name is "+name+",age is "+age); } public static void main(String[] args){ new Person("tom","11"); }}
上面使用this调用了当前对象的方法,同时省略this。
3.this调用当前对象的构造函数
public class Person { private String name; private String age; private String weight; Person(){ this.weight = "75"; } Person(String name,String age){ this();//调用无参构造函数 setName(name);//this.setName(name); setAge(age);//this.setAge(age); prt();//this.prt(); } protected void setName(String name){ this.name = name; } protected void setAge(String age){ this.age = age; } protected void prt(){ System.out.println("this person's name is "+name+",age is "+age); System.out.println("weight is "+weight); } public static void main(String[] args){ new Person("tom","11"); }}
super的用法
1.super调用父类方法
public class Student extends Person{ public void prt(){ super.prt();//调用父类方法 System.out.println("is a student"); } public static void main(String[]args){ Student s = new Student(); s.setName("tom"); s.setAge("11"); s.prt(); }}
2.super调用父类构造函数
person:
public class Person { Person(){ System.out.println("person()"); } Person(String name){ System.out.println("person(String name)"); }}
student:
public class Student extends Person{ Student(){ super();//父类无参构造函数 } Student(String name){ super(name);//父类有参构造函数 System.out.println("name is "+name); } public static void main(String[]args){ new Student(); new Student("tom"); }}
0 0
- JAVA中this与super两个关键字的用法
- Java中this关键字和super关键字的用法
- java中this关键字与super关键字的区别
- Java关键字this与super用法总结
- Java中super和this关键字用法
- java中关键字 this 和super的作用及用法
- java中this和super关键字的用法及其区别
- 【JAVA】this和super关键字的用法
- java关键字this、super的用法
- java中关键字super与this
- Java中this与super关键字
- Java中Super与This关键字的区分
- Java中关键字super与this的区别
- Java中this关键字和super关键字用法
- this & super 这两个关键字的意义和用法
- Java的this与super关键字
- java中this,super关键字的点点滴滴
- java中super的用法和与this的区别
- HDFS如何检测并删除多余副本块
- HTTP服务七层架构技术探讨
- AVR中断引起重启
- NS2常用命令总结
- 数据结构总结(5)
- JAVA中this与super两个关键字的用法
- 最详细的Log4j使用教程
- python 排序
- 扩展activiti使用自己的用户表和群组表
- getRequestDispatcher()与sendRedirect()的区别
- 数据结构习题--线性表
- java并发内存模型
- 4.0 第十一章 Linq
- 实现计时器 的简单demo