static,final关键字,Object类的tostring方法,equals方法,hashCode方法
1)static关键字
static可以修饰:属性、方法、代码块
静态方法不能访问非静态 属性 或 方法
属性(变量):
成员变量:
静态变量: 通过 类名.静态变量来访问
通过 对象名.静态变量来访问(是有警告的)
存在于方法区中,有且仅有一份
非静态变量
局部变量
代码块
代码块的执行顺序
1、静态代码块:哪个静态代码块放在前边,就先执行谁
2、普通代码块:哪个普通代码块放在前边,就先执行谁
3、构造方法
如果有两个类,一个类是Father,另一个类是Child , Child 继承了 Father ,
这两个类中都有 构造方法,普通代码块、静态代码块
那么当 new Child() 的时候,执行顺序是什么?
代码块执行顺序:父类static(同级别与出现顺序有关)--->子类static--->父类普通-->父类构造--->子类普通-->子类构造
代码块的作用:
可以对 属性 进行一个初始化的操作
我们在一个类中可以写什么呢?
目前为止:
1、属性:静态属性 和 实例属性
2、方法:静态方法 和 实例方法
3、构造方法: 与类名相同的 ,没有返回的 公开的 方法
4、代码块:静态代码块 和 非静态代码块(普通代码块)
静态代码块 可以为 静态属性 进行 初始化操作
普通代码块 可以为 实例属性 进行初始化操作
2)
final
表示最终的,不可修改的,经常用于修饰类、方法、变量
final 修饰的类,不可以被继承
final 修饰的方法,不能被重写
final 修饰的变量 ,不能被更改
建议:用final 修饰的变量 全部大写
3)
toString() :
本来在Object中的形式:
getClass().getName() + "@" + Integer.toHexString(hashCode());
得到对应的类,从而得到对应的类型,然后 通过计算 hashCode 的 十六进制 数 拼接而成的字符串
重写之后的形式:
String s = "[" + this.studentName + "," +this.sutdentNumber + " , " + this.gender + " , " + this.age + "]" ;
理论上说,可以写任何形式的toString形式,但是,建议使用 属性来写toString
作用:
为了查看到 对象中的 具体的属性 的 值
4)
equals() :
在Object 类中 equals 是这么写的:
public boolean equals(Object obj) {
return (this == obj); // 底层还是用 == 比较,比较的还是地址
}
我们判断两个对象是否"相等"
可能在某种情况下( 在某种条件下 ) 我们认为是相等的
针对于学生来说:
学号、姓名、年龄、性别都相等,那么我就认为他们是相等的
官方建议: 重写 hashCode()
如果说 不重写 hashCode() , 会默认调用 Object 的hashCode()方法,但是 不一定能保证 维护 hashCode 方法的常规协定
5)
hashCode() :
hashCode 是 一种 特殊的 数组 通过 一系列的公式来算 hashCode
元素 11 22 33 44 55
下标 0 1 2 3 4
(下标+ 1 ) × 11
如果重写了 equals 必须重写 hashCode 方法
保证 维护 hashCode 方法的常规协定(三条)
static,final关键字,Object类的tostring方法,equals方法,hashCode方法的更多相关文章
- java继承,final,super,Object类,toString,equals,
Java中的内部类:成员内部类静态内部类方法内部类匿名内部类 内部类的主要作用如下: 1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类 2. 内部类的方法可 ...
- Object类的toString()和equals()方法
我们知道,Object类是所有类的父类,因此也被称为根类.祖先.那么,我们就来看一看Object类的最常用的两个方法是如何用的. 1.toString方法: Object类的toString()方法默 ...
- 1.9(java学习笔记)object类及toString()与equals()方法
object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...
- Object类的toString和Equals方法,以及Objects类的Equals方法
Object类 toString()方法 public class Person { private String name; private int age; public Person() { } ...
- java中equals和hashCode方法随笔二
前几天看了篇关于java中equals和hashCode方法的解析 1.Object类中的equals方法和hashCode方法. Object类中的equals和hashCode方法简单明了,所有的 ...
- Java中的Object类的toString()方法,equals()方法
Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法: 1.toString 如果输出一个对象的时候 ...
- Java基础知识强化27:Object类之toString()方法
1. Object类的toString()方法: public String toString():返回该对象的字符串表示 2. 案例演示: (1)Student类: package cn.itc ...
- Java第11次作业:什么是继承?继承的好处?什么是覆写?super()?构造代码块?子父类初始化顺序? 抽象类能用final声明吗?final关键字声明类 方法 变量以及全局常量?抽象类的构造方法?
什么是继承? 继承是以父类为基础,子类可以增加新的数据或新的功能.子类不能选择性地继承父类.这种技术使得复用以前的代码非常容易. JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一 ...
- Java:验证在类继承过程中equals()、 hashcode()、toString()方法的使用
以下通过实际例子对类创建过程汇中常用的equals().hashcode().toString()方法进行展示,三个方法的创建过程具有通用性,在项目中可直接改写. //通过超类Employee和其子类 ...
随机推荐
- Apache版hadoop编译
前言 做为大数据入门的基础,hadoop是每个大数据开发人员几乎不可避免的基础,目前hadoop已经发展到3.x.x版本,但当前企业使用的主流还是2.x.x版本,hadoop官网提供了编译后的had ...
- 【转】从SOA到微服务,企业分布式应用架构在云原生时代如何重塑
摘要: SOA 采用中心化的服务总线架构,解耦了业务逻辑和服务治理逻辑:微服务架构回归了去中心化的点对点调用方式,在提升敏捷性和可伸缩性的同时,也牺牲了业务逻辑和服务治理逻辑解耦所带来的灵活性. 为了 ...
- 二维码APP后台开发记录
先是搭建环境,我们采用spring4.2.1+hibernate5.0.1进行搭建,从官网上下载框架必用jar包. 在MyEclipse里,创建web项目,创建lib包,将相关jar包放入,别忘了my ...
- nginx 简单使用
一,下载 http://nginx.org/en/download.html 这个是我下载的windows版本 二,解压后目录 三,修改配置文件 (由于80端口很可能被 SQL Server Repo ...
- Java.util.Map的实现类有那些?
1.HashMap 2.Hashtable 3.LinkedHashMap 4.TreeMap
- vue 外卖app(3) 引入阿里图标
1.登陆阿里图标官网 2.点击搜索按钮,输入你想要搜索的图标,加入购物车,保存到项目中 3.在项目中使用
- php Excel导出功能
/** * * execl数据导出 */ function exportOrderExcel2($title, $cellName, $data) { //引入核心文件 vendor("PH ...
- Delphi 取整函数round、trunc、ceil和floor
Delphi 取整函数round.trunc.ceil和floor 1.Round(四舍六入五留双)功能说明:对一个实数进行四舍五入.(按照银行家算法)例:var i, j: Integer;begi ...
- Java——super关键字
2.3 super关键字 ①super不是引用类型,super中存储的不是内存地址,super指向的不是父类对象. ②super代表的是当前子类对象中的父类型特征. ③什么时候使用super? 类和父 ...
- 阿里云成为Hyperledger超级账本全球会员,发力区块链生态建设
摘要: 阿里云将会与Hyperledger社区共同推进全球区块链技术和商业生态在多行业领域的建设. 2018年12月12日在瑞士巴塞尔的2018Hyperledger全球峰会上,阿里云正式加入Hype ...