java总结(面向对象)

1、abstract class  抽象类   不是具体的类

1)抽象方法 只有行为的概念 没有具体的行为实现

使用abstract关键字修饰  并且没有方法体

2)包含抽象方法的类就一定是抽象类

使用abstract关键字修饰 包含抽象方法

3)抽象类不能直接创建实例  可以定义引用变量

4)抽象类只能被继承 一个具体类继承抽象类 必须实现所有的抽象方法

5)抽象 类和抽象方法非常适合做系统的分析工具

2、接口相当于纯抽象类  

1)接口的全部方法都是抽象方法  全部的属性都是常量

接口用来表示纯抽象的概念 没有任何具体的方法和属性

2)不能实例化 可以定义变量

3)接口变量可以引用具体实现类的实例

4)接口只能被实现  一个具体类实现接口  必须实现全部抽象方法

5)接口之间可以继承

6)一个具体类可以实现多个接口  实现多继承现象  表示  即使。。。又是。。。

7)接口中的属性默认是  public static final  

8)接口的方法一定是抽象方法

9)实现一个接口使用关键字  implements   实际上是一种继承关系

3、Object

1) java类默认继承Object    万物皆对象

2)toString()  方法  经常由默认系统调用  活动当前对象的文本描述 Object默认返回

全限定名@hashcode

3)equals用来比较两个对象的内容是否相等   ==是比较两个对象的引用值是否相等

equals在Object类中声明  默认的比较规则是:比较引用  最好覆盖

实现对象的比较(比较对象的状态  就是比较对象的数据)

覆盖原则:

自反性  对于任何非空引用值都应该返回true

对称性  对于任何非空引用值 x 和 y 当且仅当y.equals(x)返回true时 x.equals(y) 才应返回true

一致性 对于任何非空引用值 x和 y多次调用 x.equals(y) 始终返回true或false 前提是对象上

equals 比较中所用的信息没有被修改

对于任何非空引用值 x, x.equals(null)都应返回false 

4) hashCode

hashCode()方法要与equals方法一同覆盖

当两个对象equals比较为true时候这两个对象应该具有相同的hashCode值

当两个对象equals比较为false时 这两个对象应该尽可能具有不同的hashCode值

hashCode()值要稳定(一致性) 一个对象创建以后就不应该再变化

默认的hashCode()值是当前堆对象转换的一个整数  这个整数不是内存地址

一般使用对象的OID值作为hashCode()值  OID对象的唯一编号 在工程项目中

一般采用数据库生成OID 也就是数据库中的主键

猜你喜欢

转载自blog.csdn.net/u011073924/article/details/37843639