面向对象编程

继承
子类继承父类的方法和字段
主要是在父类或者子类重新写多种方法或者字段,使用继承可以大大减少这些代码,增强代码可读性
构造器无法继承,以及初始化块
继承java只能是单继承
equals方法,判断两个对象是否相等,可以直接用的
Object类是所有类的父亲或者祖先
super关键字,如果父类的是有参构造器的话,则在子类构造器一定要主动声明和调用,而且super所指的一般都是父类的东西
在类中使用this一般是指调用本类的字段或者方法名,如果是调用构造器也要在第一行使用,也可以指该类
instanceof
判断某个对象是否是某个类型
类型转换
我们自己创建的类,也是可以进行相互转换的
但是这个转换需要条件1、必须要有继承关系 2、必须有父类引用指向子类对象
多见于多态中使用
好处是为了更快速的写代码,如果有多个类是一样的方法属性,则可以直接定义一个父类,然后通过继承的方法来使用这些属性和方法,而不用在重写一次

封装
为了保护数据,不让从外界更改值,从而使外界看来,这个东西就是一个盒子,你只用往里面传参数就可以了,不需要知道具体执行过程,只能通过该类的setter方法和getter方法来设置属性值
setter方法是设置字段值,也就是只写的
getter方法是获取字段值的,也就是只读
标致是在字段面前加上private
封装的实质就是使用修饰符来整理数据,所以才会在修饰符讲解之后才来讲述封装
初始化块
静态初始化块
实力初始化块
构造器
静态变量:如果说封装是对本类而言,那么静态变量就是对于整个包而言,定义了static关键字的方法或者字段,在访问时一定是和类名相关的
换而言之,只要是涉及到static的均是与类名有联系的,而不是对象
四大修饰符
public修饰符
所有的都可以访问
protected修饰符
同一个包中的可以访问
default修饰符
默认修饰符
private修饰符
只有本类能够访问和调用

多态
为了解决不同子类产生的不同方法
前提:1:必须有继承关系;2:必须有方法重写;3:必须有父类引用指向子类的对象
最常见的就是在一个方法中的形参写上父类的类型,例如:cat extends animal,在后面方法中的形参可以设置为animal animal,对于后者animal是一个设置的变量名可以随意更改,但是一定要是animal类型就可以的
instanceof判断是否属于该类型,常常用于判断子类和父类之间的关系
应用:多态参数和异构集合
多态参数,就是为了在其他的方法中通过不同的子类展现出不同的方法特性
多态参数,是为了避免在测试类中执行过多的new操作导致测试麻烦,直接建议父类引用类型的数组,然后再在方法中使用for-each来遍历数组,这种形式在方法体中的参数往往就是多态参数
多态中的如果要调用子类特有的方法,要使用强转,


是对象的蓝图或者模板,为了表示一类特征相同而定义的一类东西
字段/属性
构造器,初始化字段
默认构造器
在没有设置构造器的时候,系统会自动添加一个默认构造器
无参构造器
人为设置的没有参数的构造器
有参构造器
人为设置的含有参数的构造器
关于使用super对于构造器的影响
如果是默认构造器或者无参构造器,在子类构造器中则无需使用super,如果父类的构造器是有参构造器,在子类中一定要是用super来调用父类构造器
方法/行为
类和类的关系
泛化关系(继承和实现) is-a
关联关系 has-a
一个类在另外一个类中当做属性出现
关联关系的变种
聚合关系
默认有一种整体和部分的关系:比如 :部门类与员工类
组合关系
两者密不可分:比如 人这个类和脑子类,机器人和零件之间的关系,由各种不同的类组合而成的
依赖关系 use-a
一个类在另外一个类的方法中出现(当做参数或者局部变量)

对象
是对于类的实例化
对于类中的方法则是定义对象的行为
对于类中的字段则是定义对象的属性

抽象类
为了让父类的某些方法被重写,而不是全部方法
抽象和接口是不能实例化的,,而且一旦被使用abstract关键词的方法,在子类中必须被重写

当父类设置private或者final是则无法继承

枚举
枚举中定义的内容均是已经实例化的对象
在枚举的反编译代码中,有个语法糖的概念,枚举会把很多内容都已经封装好,直接使用就行了
如果要在枚举已经定义好的内容加东西,则需要重新定义字段,如果需要几个,则重新定义几个字段,而且都必须要封装,不需要设置字段,只可读就行了,也就是不需要setter方法
如果要调用枚举的东西,则直接类名加对象就行了
枚举中的方法会自动添加
name 输出这个枚举数组的各个常量名
* ordinal();将枚举里面的常量装进一个数组,并进行排序,这里输出的就是序号
* values();将枚举中的静态常量转换为字符串
* valueof(Enum,String);
* valueof(String)

实现接口的对象可以多个

接口
为了让方法全部被重写,更加纯粹
接口中的default方法和静态方法不用被重写
default默认方法,可以理解为是继承的,在子类中可以直接使用,
静态方法,只能和类绑定

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值