百无聊赖之JavaEE从入门到放弃(八)IDEA常用快捷键 equals()方法 super关键字
目录
一.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关键字相关推荐
- 百无聊赖之JavaEE从入门到放弃(二)基础语法
目录 一.注释(单行,多行,文档) 二.标识符_关键字_驼峰原则 三.bug解决:Welcome.java:6: 错误: 编码GBK的不可映射字符 四.常量constant 五.数据类型 1.整型 2 ...
- 百无聊赖之JavaEE从入门到放弃(五)this的本质_对象创建过程的4 步_隐式参数 static
目录 一.this关键字 1.对象创建的过程和this的本质 2.this最常的用法: 二.static关键字 三.变量分类 一.this关键字 1.对象创建的过程和this的本质 构造方法是创建Ja ...
- 百无聊赖之JavaEE从入门到放弃(十二)数组
目录 一.基础知识 1.数组的定义 2.建议 3.注意 4.数组的默认初始化 二.基操示例代码 三.拷贝 四.Arrays类 一.基础知识 1.数组的定义 数组是相同类型数据的有序集合.数组描述的是相 ...
- 百无聊赖之JavaEE从入门到放弃(七)继承
目录 一.继承 1.继承使用要点 二.instanceof关键字 三.方法的重写(override) 四.final关键字 五.组合 定义啥的就不说了,说说要点,跑跑代码. 一.继承 1.继承使用要点 ...
- 百无聊赖之JavaEE从入门到放弃(三)JVM内存机制
一.从属于线程的内存区域 JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;我们将这部分归为一类. 1.程序计数器(Program Counter Register) 在JVM规 ...
- 百无聊赖之JavaEE从入门到放弃(六)包机制 静态导入
一.包机制 包机制是Java中管理类的重要手段.开发中, 我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理. 包对于类,相当于文件夹对于文件的作用. 我们通过pac ...
- 百无聊赖之JavaEE从入门到放弃(九)封装详解 多态详解
目录 一.封装 1.封装的作用和含义 2.编程中封装的具体优点: 3.封装的实现一使用访问控制符 4.关于protected的两个细节: 5.开发中封装的简单规则 6.javaBean 二.多态(po ...
- 百无聊赖之JavaEE从入门到放弃(四)垃圾回收机制(Garbage Collection)
目录 一.垃圾回收原理和算法 1.内存管理 2.垃圾回收过程 3.垃圾回收相关算法 二.通用的分代垃圾回收机制 1.年轻代 2.年老代 3.永久代 4.三种GC 三. JVM调优和Full GC 四. ...
- 百无聊赖之JavaEE从入门到放弃(十)抽象方法_抽象类 接口
目录 一.abstract 1.抽象方法 2.抽象类 3.抽象类的使用要点 4.示例代码 二.接口 1.接口是什么 2.接口的作用 3.区别 4.格式 (1)声明格式: (2)定义接口的详细说明 (3 ...
最新文章
- iOS原生如何加载HTML中img标签的图片
- ASP.NET MVC2 Web项目中公用类库的问题
- android开发,静音录制视频,在一般清晰度的前提下保证文件大小越小越好
- 连麦互动直播 将成直播体验深度优化的必然形式
- 初学者:如何使用虚拟PC将Windows 7安装到虚拟机
- Cannot resolve jakarta.validation:jakarta.validation-api:2.0.2
- linux 备份mysql并上传_Linux 网站目录和MySQL备份并上传FTP
- 创建设计模式 - 抽象工厂设计模式
- 千兆交换机下面可以接多少层交换机_视频监控系统如何选择网络交换机
- JNIWrapper控件发布v3.8.4版本
- IP 层收发报文简要剖析1-ip报文的输入
- pythonindex函数的使用格式_Python正课31 —— 函数参数的使用
- 加密狗破解加密狗复制
- 前端合并单元格(行合并、列合并)
- 罗振宇2021跨年演讲5:为什么你要建成自己的“黄鹤楼”?
- 经验分享:SecureCRT远程登录树莓派开发板
- 判断将输入字母,进行大写转小写,小写转大写
- 【论文精读】CMT: Convolutional Neural Networks MeetVision Transformers
- 4周,从入门小白到爬虫老炮儿,薪资水平超过60% IT 新手!
- 用EXCEL统计分段数据的个数