this

  • this代表对象本身,相当于是对象自身的一个指针。

  • this的三种用法:

    • 1 直接引用对象本身。
    • 2 形参与成员名字重名,用this来区分。
    • 3 引用本类的构造函数。
  • 测试:

public class Test {public static void main(String[] args) {Person p=new Person();//this直接引用System.out.println(p);//打印p对象的地址p.soutThis();//调用p对象中打印this的方法 可以发现,二者完全一致}
}
class Person{int sex;int age;public Person(){}public Person(int sex){//此处 形式参数和成员变量重名,this.sex代表该对象的成员变量this.sex=sex;}public Person(int sex,int age){//这里this代表引用本类中的构造方法this(sex);this.age=age;}public void soutThis(){//此处打印对象自身的地址System.out.println(this);}}

super

  • super代表父类对象(离自己最近的一个父类),相当于是父类的一个指针。

  • super的三种用法:

    • 1 直接引用父类。
    • 2 子类中的成员变量或方法与父类中的成员变量或方法同名时,用super进行区分。
    • 3 引用父类构造函数
  • 测试:

public class Test {public static void main(String[] args) {Orange orange=new Orange(5,"orange","Lorange");}
}
class Orange extends Fruit{String name;public Orange(int size,String color,String name){//调用父类的构造方法super(size,color);this.name=name;}public void info1(){//此处super用于区分子类与父类名字相同的成员变量System.out.println(this.name);System.out.println(super.name);}public void info2(){//此处super直接引用父类的成员变量System.out.println(super.size);}}
class Fruit{int size;String color;String name;public Fruit(){}public Fruit(int size,String color){this.size=size;this.color=color;}public Fruit(int size,String color,String name){this.size=size;this.color=color;this.name=name;}
}

注意事项:

  • (1)使用super调用父类中的某一个构造函数时,该语句应该为构造函数中的第一条语句。

  • 使用this调用本类中另一种形式的构造函数,该语句应该为构造函数中的第一条语句。

  • (2)thissuper对成员方法和成员变量的使用是一样的。

  • (3)thissuper都是指的对象实例,所以不能再任何static语句中使用。

  • (3)不能使用this调用两个构造方法。

  • (4)his和super不能同时出现在一个构造函数里面。

    • 因为每一个子类的构造函数中的第一行都有一条默认的隐式语句super();this调用的其它构造方法必然也会有这条语句,这样就会冲突,失去了语句本身的意义。
二者本质上的区别就是代表的对象不同,一个代表自身,一个代表父类。二者的使用上类似。

Java中this和super的区别相关推荐

  1. Java中this与super的区别

    2019独角兽企业重金招聘Python工程师标准>>> this与super关键字在java中构造函数中的应用:  ** super()函数 **  super()函数在子类构造函数 ...

  2. 【Java】泛型中 extends 和 super 的区别?

    <? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概念. ...

  3. java底层原理书籍_阿里面试题:Java中this和super关键字的底层实现原理

    知道的越多,不知道的就越多,业余的像一棵小草! 编辑:业余草 来源:https://www.xttblog.com/?p=5028 B 站:业余草 最近一个粉丝加我说,接到了阿里的面试,问问我阿里会面 ...

  4. JAVA语言-比较器Comparator(java中Comparable和Comparator的区别)

    文章目录 一.什么是Comparator 二.Java compare方法和compareTo方法 三.java中Comparable和Comparator的区别 Comparator的例子 三.de ...

  5. JAVA中this和super用法

    参考网上资料和自行理解总结java中this和super中各自用法及其差异 <一>. this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对 ...

  6. java中的异常种类和区别以及处理机制和区别

    java中的异常种类和区别以及处理机制和区别 按照异常需要处理的时机分为编译时异常(也叫强制性异常)也叫 CheckedException 和运行时异常(也叫非强制性异常)也叫 RuntimeExce ...

  7. java中ArrayList和LinkedList的区别

    首先来看ArrayList和LinkedList的集成类和接口的区别.// lang java public class ArrayList<E> extends AbstractList ...

  8. java中Runnable和Callable的区别

    文章目录 运行机制 返回值的不同 Exception处理 java中Runnable和Callable的区别 在java的多线程开发中Runnable一直以来都是多线程的核心,而Callable是ja ...

  9. java中wait和sleep的区别

    文章目录 Wait和sleep的区别 唤醒wait和sleep java中wait和sleep的区别 在本篇文章中,我们将会讨论一下java中wait()和sleep()方法的区别.并讨论一下怎么使用 ...

  10. java throw与throws_基于Java中throw和throws的区别(详解)

    系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...

最新文章

  1. 5G 和云原生时代的技术下半场,视频化是最大最新的确定性
  2. set集合判断集合中是否有无元素_一文了解 JavaScript 中的 Set(集合)- 对 Set 的扩展...
  3. 【zookeeper】zookeeper znode 存储系统解密
  4. 06-自定义构造方法
  5. Spring Boot 框架介绍和使用
  6. pyplot设置刻度字体大小以及标签字体大小
  7. 启发式搜索 (Heuristically Search)-【贪婪最佳优先搜索】和【A*搜索】
  8. 机器人学DH参数及利用matlab符号运算推导
  9. 分享76个PHP源码总有一个适合你
  10. python脚本自动填调查问卷
  11. 系统性谈谈软件可靠性——第1讲:软件可靠性基础概念
  12. Web 的全栈工程师必修课 - 关于 MVC 框架
  13. r55600h和i511320h哪个好
  14. 《游戏机制——高级游戏设计技术》一1.1 规则定义游戏
  15. 非法破坏计算机系统罪宣判,以非法经营罪提起公诉。法庭未当庭宣判。为什么不会被定破坏计算机信息系统罪呢?...
  16. 关于UWP中下载文件夹操作问题
  17. v2ray服务端启动出现panic: runtime error: invalid memory address or nil pointer dereference
  18. 大数据常见英文词汇(待更新)
  19. UVM:7.5.2 常用操作及其对期望值和镜像值的影响
  20. 如何隐藏TPageControl Delphi控件的选项卡

热门文章

  1. 任务栏管理器无法结束任务 taskkill也无法结束任务 pchunter加载驱动失败
  2. 重磅!2021年国内Java培训机构排名前十最新出炉啦
  3. linux 实验七 初步理解shell程序设计
  4. C语言 标准库stdio.h
  5. 【CS229 Deep Learning笔记】二. 介绍:分类问题
  6. 标准化考点考场高考英语听力广播系统解决方案
  7. Datawhale 202210 Excel | 第五、六、七章 Excel函数示例 Excel函数列表
  8. 数据结构基础——城市链表
  9. mugen linux主程序,Mugen主程序报错汇总
  10. SwiftUI Button精品组件之完美的SwiftUI抖动按钮效果(教程含源码)