目录

一.IDEA快捷键和相关操作

二.重写equals()函数

三.super关键字_继承树追溯


除了构造方法之外的所有的属性和方法都被继承。但是,不是所有的都能直接使用。

当打印一个对象时,如果没调用toString()方法,则会自动调用toString()方法。返回:类名@对象地址

一.IDEA快捷键和相关操作

1.类的结构视图: alt+7
2.看类的源码: ctr|+左键
3.查看类的关系:鼠标放到类名上,右键--> Diagram-->show Diagram

4.自动生成构造器,get, set方法,equals等: alt+ insert

5.设置鼠标悬停后快速文档说明提示:File-->Settings-->Editor-->General-->

二.重写equals()函数

equals()函数源码:

public boolean equals(Object obj) {return (this == obj);
}

如下代码,没重写equals()前输出为:

false
false
true
true

代码:

import java.util.Objects;public class Equals {int id;int age;String name;//选取时按Ctrl选多个public Equals(int id, int age, String name) {this.id = id;this.age = age;this.name = name;}public static void main(String[] args) {Equals e1=new Equals(1,22,"小明");Equals e2=new Equals(1,22,"小明");//比较对象地址System.out.println(e1==e2);System.out.println(e1.equals(e2));//通过equals()方法源码可看到equals也是用==比较,即比较对象是否是一个System.out.println("123".equals("123"));System.out.println("123"=="123");}//重写equals()函数,右键Generate自动生成,根据id判断是否相等@Overridepublic boolean equals(Object o) {if (this == o) return true;//空对象或者类型不一致if (o == null || getClass() != o.getClass()) return false;Equals equals = (Equals) o;return id == equals.id;}@Overridepublic int hashCode() {return Objects.hash(id);}
}

重写equals()后输出为:

false
true
true
true

三.super关键字_继承树追溯

super“可以看做”是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。
使用super调用普通方法,语句没有位置限制,可以在子类中随便调用。
this
若是构造方法的第一行代码没有显式的调用supe(..)或者this(..);那么 Java默认都会调用super)含义是调用父类的无参数构造方法。这里的super()可以省略。

代码1:

public class TestSuper01 {public static void main(String[] args) {new ChildClass().f();}
}class FatherClass{public int value;public void f(){value=100;System.out.println("FatherClass.value="+value);}
}class ChildClass extends FatherClass{public int value;//覆盖一个变量public void f(){ //覆盖父类的函数super.f();//调用父类的普通方法value=200;System.out.println("ChildClass.value="+value);System.out.println(value);System.out.println(super.value);//调用父类的成员变量}
}

输出:

FatherClass.value=100
ChildClass.value=200
200
100

代码2:

public class TestSuper02 {public static void main(String[] args) {System.out.println("开始创建一个ChildClass对象......");new ChildClass2();}
}
class FatherClass2{public FatherClass2(){//这里会先去调用父类即Object类的构造函数,相当于省略了super();System.out.println("创建FatherClass2对象");}}class ChildClass2 extends FatherClass2{public ChildClass2(){//这里会先去调用父类即FatherClass2的构造函数,相当于省略了super();System.out.println("创建ChildClass2对象");}}

输出:

开始创建一个ChildClass对象......
创建FatherClass2对象
创建ChildClass2对象

百无聊赖之JavaEE从入门到放弃(八)IDEA常用快捷键 equals()方法 super关键字相关推荐

  1. 百无聊赖之JavaEE从入门到放弃(二)基础语法

    目录 一.注释(单行,多行,文档) 二.标识符_关键字_驼峰原则 三.bug解决:Welcome.java:6: 错误: 编码GBK的不可映射字符 四.常量constant 五.数据类型 1.整型 2 ...

  2. 百无聊赖之JavaEE从入门到放弃(五)this的本质_对象创建过程的4 步_隐式参数 static

    目录 一.this关键字 1.对象创建的过程和this的本质 2.this最常的用法: 二.static关键字 三.变量分类 一.this关键字 1.对象创建的过程和this的本质 构造方法是创建Ja ...

  3. 百无聊赖之JavaEE从入门到放弃(十二)数组

    目录 一.基础知识 1.数组的定义 2.建议 3.注意 4.数组的默认初始化 二.基操示例代码 三.拷贝 四.Arrays类 一.基础知识 1.数组的定义 数组是相同类型数据的有序集合.数组描述的是相 ...

  4. 百无聊赖之JavaEE从入门到放弃(七)继承

    目录 一.继承 1.继承使用要点 二.instanceof关键字 三.方法的重写(override) 四.final关键字 五.组合 定义啥的就不说了,说说要点,跑跑代码. 一.继承 1.继承使用要点 ...

  5. 百无聊赖之JavaEE从入门到放弃(三)JVM内存机制

    一.从属于线程的内存区域 JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;我们将这部分归为一类. 1.程序计数器(Program Counter Register) 在JVM规 ...

  6. 百无聊赖之JavaEE从入门到放弃(六)包机制 静态导入

    一.包机制 包机制是Java中管理类的重要手段.开发中, 我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理. 包对于类,相当于文件夹对于文件的作用. 我们通过pac ...

  7. 百无聊赖之JavaEE从入门到放弃(九)封装详解 多态详解

    目录 一.封装 1.封装的作用和含义 2.编程中封装的具体优点: 3.封装的实现一使用访问控制符 4.关于protected的两个细节: 5.开发中封装的简单规则 6.javaBean 二.多态(po ...

  8. 百无聊赖之JavaEE从入门到放弃(四)垃圾回收机制(Garbage Collection)

    目录 一.垃圾回收原理和算法 1.内存管理 2.垃圾回收过程 3.垃圾回收相关算法 二.通用的分代垃圾回收机制 1.年轻代 2.年老代 3.永久代 4.三种GC 三. JVM调优和Full GC 四. ...

  9. 百无聊赖之JavaEE从入门到放弃(十)抽象方法_抽象类 接口

    目录 一.abstract 1.抽象方法 2.抽象类 3.抽象类的使用要点 4.示例代码 二.接口 1.接口是什么 2.接口的作用 3.区别 4.格式 (1)声明格式: (2)定义接口的详细说明 (3 ...

最新文章

  1. iOS原生如何加载HTML中img标签的图片
  2. ASP.NET MVC2 Web项目中公用类库的问题
  3. android开发,静音录制视频,在一般清晰度的前提下保证文件大小越小越好
  4. 连麦互动直播 将成直播体验深度优化的必然形式
  5. 初学者:如何使用虚拟PC将Windows 7安装到虚拟机
  6. Cannot resolve jakarta.validation:jakarta.validation-api:2.0.2
  7. linux 备份mysql并上传_Linux 网站目录和MySQL备份并上传FTP
  8. 创建设计模式 - 抽象工厂设计模式
  9. 千兆交换机下面可以接多少层交换机_视频监控系统如何选择网络交换机
  10. JNIWrapper控件发布v3.8.4版本
  11. IP 层收发报文简要剖析1-ip报文的输入
  12. pythonindex函数的使用格式_Python正课31 —— 函数参数的使用
  13. 加密狗破解加密狗复制
  14. 前端合并单元格(行合并、列合并)
  15. 罗振宇2021跨年演讲5:为什么你要建成自己的“黄鹤楼”?
  16. 经验分享:SecureCRT远程登录树莓派开发板
  17. 判断将输入字母,进行大写转小写,小写转大写
  18. 【论文精读】CMT: Convolutional Neural Networks MeetVision Transformers
  19. 4周,从入门小白到爬虫老炮儿,薪资水平超过60% IT 新手!
  20. 用EXCEL统计分段数据的个数

热门文章

  1. a+=b和a=a+b是一样的吗?
  2. 网站经常崩溃,企业应该如何做好监控?
  3. 运维面试必问的web高频面试题(2021年最新版)
  4. 梦幻西游 Mac版游戏特色
  5. python 爬取财经新闻_Python光大证券中文云系统——爬取新浪财经新闻
  6. FPGA 及数字电路基础小知识(二)
  7. 背景图铺满屏幕的方法
  8. 国内Linux shell,Bash shell 的诞生 | Linux 中国
  9. 家庭投影仪哪个牌子好?比较好的投影仪品牌
  10. pdf在线压缩免费网站?