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方法的更多相关文章

  1. java继承,final,super,Object类,toString,equals,

    Java中的内部类:成员内部类静态内部类方法内部类匿名内部类 内部类的主要作用如下: 1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类 2. 内部类的方法可 ...

  2. Object类的toString()和equals()方法

    我们知道,Object类是所有类的父类,因此也被称为根类.祖先.那么,我们就来看一看Object类的最常用的两个方法是如何用的. 1.toString方法: Object类的toString()方法默 ...

  3. 1.9(java学习笔记)object类及toString()与equals()方法

    object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...

  4. Object类的toString和Equals方法,以及Objects类的Equals方法

    Object类 toString()方法 public class Person { private String name; private int age; public Person() { } ...

  5. java中equals和hashCode方法随笔二

    前几天看了篇关于java中equals和hashCode方法的解析 1.Object类中的equals方法和hashCode方法. Object类中的equals和hashCode方法简单明了,所有的 ...

  6. Java中的Object类的toString()方法,equals()方法

    Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法: 1.toString 如果输出一个对象的时候 ...

  7. Java基础知识强化27:Object类之toString()方法

    1. Object类的toString()方法: public  String  toString():返回该对象的字符串表示 2. 案例演示: (1)Student类: package cn.itc ...

  8. Java第11次作业:什么是继承?继承的好处?什么是覆写?super()?构造代码块?子父类初始化顺序? 抽象类能用final声明吗?final关键字声明类 方法 变量以及全局常量?抽象类的构造方法?

    什么是继承? 继承是以父类为基础,子类可以增加新的数据或新的功能.子类不能选择性地继承父类.这种技术使得复用以前的代码非常容易. JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一 ...

  9. Java:验证在类继承过程中equals()、 hashcode()、toString()方法的使用

    以下通过实际例子对类创建过程汇中常用的equals().hashcode().toString()方法进行展示,三个方法的创建过程具有通用性,在项目中可直接改写. //通过超类Employee和其子类 ...

随机推荐

  1. Apache版hadoop编译

    前言  做为大数据入门的基础,hadoop是每个大数据开发人员几乎不可避免的基础,目前hadoop已经发展到3.x.x版本,但当前企业使用的主流还是2.x.x版本,hadoop官网提供了编译后的had ...

  2. 【转】从SOA到微服务,企业分布式应用架构在云原生时代如何重塑

    摘要: SOA 采用中心化的服务总线架构,解耦了业务逻辑和服务治理逻辑:微服务架构回归了去中心化的点对点调用方式,在提升敏捷性和可伸缩性的同时,也牺牲了业务逻辑和服务治理逻辑解耦所带来的灵活性. 为了 ...

  3. 二维码APP后台开发记录

    先是搭建环境,我们采用spring4.2.1+hibernate5.0.1进行搭建,从官网上下载框架必用jar包. 在MyEclipse里,创建web项目,创建lib包,将相关jar包放入,别忘了my ...

  4. nginx 简单使用

    一,下载 http://nginx.org/en/download.html 这个是我下载的windows版本 二,解压后目录 三,修改配置文件 (由于80端口很可能被 SQL Server Repo ...

  5. Java.util.Map的实现类有那些?

    1.HashMap 2.Hashtable 3.LinkedHashMap 4.TreeMap

  6. vue 外卖app(3) 引入阿里图标

    1.登陆阿里图标官网 2.点击搜索按钮,输入你想要搜索的图标,加入购物车,保存到项目中 3.在项目中使用

  7. php Excel导出功能

    /** * * execl数据导出 */ function exportOrderExcel2($title, $cellName, $data) { //引入核心文件 vendor("PH ...

  8. Delphi 取整函数round、trunc、ceil和floor

    Delphi 取整函数round.trunc.ceil和floor 1.Round(四舍六入五留双)功能说明:对一个实数进行四舍五入.(按照银行家算法)例:var i, j: Integer;begi ...

  9. Java——super关键字

    2.3 super关键字 ①super不是引用类型,super中存储的不是内存地址,super指向的不是父类对象. ②super代表的是当前子类对象中的父类型特征. ③什么时候使用super? 类和父 ...

  10. 阿里云成为Hyperledger超级账本全球会员,发力区块链生态建设

    摘要: 阿里云将会与Hyperledger社区共同推进全球区块链技术和商业生态在多行业领域的建设. 2018年12月12日在瑞士巴塞尔的2018Hyperledger全球峰会上,阿里云正式加入Hype ...