java的super和this用法
来源:互联网 发布:企业软件开发资质 编辑:程序博客网 时间:2024/06/04 18:35
在Java中,this通常指当前对象(当前类)的,super则指父类(被extends的类)的;
注:方法名与类名一样的方法叫构造方法(构造函数)
举例在 me.java 文件里:
class Person{ public static void outprint(String str){ System.out.println("I'm a person,name is "+str); } Person(){ outprint("null"); //this.outprint("null");这里this可要可不要,指调用当前对象(类)的outprint方法 } Person(String str){ outprint(str); }}public class me extends Person{ public static void main(String[] args){ me m = new me();//实例化一个对象时会自动调用构造方法,这里指下面的me()方法 System.out.println("================"); m.otherMethod("111111"); System.out.println("+++++++++++++++"); new me("myself");//实例化对象,调用参数一样的构造函数,这里是me(String str)方法 System.out.println("#############"); new me("boy","20");//调用me(String str,int age)构造方法 } me(){ super();//默认调用父类的空参数构造函数,即Person()方法 outprint("me");//使用父类里面的outprint函数 //上两句等同: super.outprint("me"); } me(String str){ super(str);//调用父类(Person类)中参数和this()内参数一样的构造函数。这里是调用Person(String str)方法 outprint(str+" and i like play basketball"); } me(String str,int age){ this(str);//调用当前对象(类)中参数和this()内参数一样的构造函数。这里是调用me(String str)方法 outprint(str+" and age is "+age); } public void otherMethod(String str) {//非构造方法 System.out.println("This is otherMethod---" + str); }}
运行结果,感受一下
简单对比来说this,一个方法用下面两个写法是一样的,就容易区分哪个变量是哪个(假设方法外已定义一个str全局变量)
public void change(String str){ this.str = str;}public void change(String name){ this.str = name;}
通过对比第二种写法,可以看出,第一种写法里,this.str指的是change方法外但在当前对象(类)的str变量,而后面的str指的是方法内的变量名,这样就可以看出this的用法了
0 0
- 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 中this和super的用法
- java中this和super的用法
- java中super和this的用法
- 【JAVA】this和super关键字的用法
- Java基础:this和super的用法
- super和this的用法JAVA
- java中super和this的用法
- java中this和super的用法
- Java中this和super的用法
- java的super和this用法
- C++接口
- Pjax是什么以及为什么推荐大家用
- 设计模式---外观模式(C++实现)
- js2个数组合并并去重
- 获取当前焦点所在窗口句柄,通过 句柄获取执行路径
- java的super和this用法
- java.net.UnknownHostException异常
- Java可变参数方法
- linux-0.11内核深度剖析视频
- Eclipse快捷键
- HttpClient发送get请求
- MySQL数据库的高可用性分析
- 笔试面试经
- 我为什么不在微信公众号上写文章--一双敏锐的眼睛直视10年光阴