面向对象总结
1.类
##### 1.1类的定义
类的定义有访问级别,类型,类名,是否抽象,是否静态,泛型标识,继承或实现关键字等组成,类型有class,interface,enum
类由两部分组成,成员和方法,公用方法放最前,其次protercted(核心),再其次私有,最后getter/setter
##### 1.2接口和抽象类
定义类是抽象行为,定义接口和抽象类是更高层次的抽象,仅定义公共行为和特征。不能实例化,但可以定义引用变量指向实力对象。
抽象类在继承时是is-a关系,接口是can-do关系
1.3访问权限控制
面向对象核心思想就是封装,只把有限的方法和成员公布给别人
-
public 跨类,跨包,甚至可以跨工程
-
protected 只能修饰属性和方法
-
无 缺省
-
private 私有
考虑修饰符要慎重,为代码重构做准备
1.4 this和super
从本类到父类的工兵
构造方法里默认调用super()
共同点:
1.都是关键字,起指代作用
2.在构造方法中必须出现在第一行
不同点
1.this 访问本类实例属性和方法,super访问父类的实例和方法
2.先找本类,再找父类, super直接找父类
3.单独使用时,标识当前对象,super在子类复写父类方法时,访问父类同名方法
1.5序列化
内存中的数据对象只有转化成二进制流才可以进行数据持久化和网络传输,将数据对象转化成二进制流的过程称之为序列化,反之称作反序列化
保证充分的信息以恢复
常见的序列化
java原生序列化 实现Serializabel
Hessian序列化 支持动态类型,跨语言,基于对象传输的网络协议
jason 抛弃类型信息
2.方法
2.1方法签名
方法签名包括方法名称和参数列表,时JVM识别方法的唯一索引,不包括返回值,权限修饰符,异常类型
2.2参数
形参和实参 题1
2.3构造方法
1.方法名一定与类名相同
2.没有返回值 它返回的是对象的地址,并赋值给引用变量
3.构造方法不能被继承,不能被复写,不能被直接调用(调用方式)
4.类定义时提供默认的无参构造
5.构造方法可以私有