面向对象
2019-05-31 10:59:56 1 举报
面向对象
作者其他创作
大纲/内容
实体
简单工厂:用来向外返回对象优点:1.屏蔽了对象底层实现的细节 2.简化了调用者的调用复杂度缺点:1.需要编写大量的逻辑判断 2.如果后期增加了子类,需要改代码
修饰符:面向对象的封装private:本类可见默认:同包可见protected:同包、异包下的子类可见public:都可见
父类
类(子类)
this:this. 当前对象赋值,区分同名变量时不可省略this(); 调用构造器,用于给予默认值 1.要在当前构造器的第一行,不能发放在其他方法中 2.注意构造器互相调用时出现的循环调用问题
interface 接口:接口不能实例化,而且也没有构造器接口中不允许出现普通方法,只能存在抽象方法(1.8之前)接口中的变量:public static final接口中允许多继承,一个接口可以继承多个接口一个类实现了一个接口,必须要重写这个接口中的所有抽象方法,对于类而言可以实现多个接口接口不能实例化,但是可以指向一个实现类对象
设计模式
工厂模式
继承(单继承)
方法:1.单纯在main方法中编写案例完成功能: 1]解决问题 2]后期不好维护 3]内存浪费,不能做到具体需求具体实现2.通过面向对象抽离圆生成对应的圆类: 1]解决问题 2]代码量提高了 3]提高了代码的复用性,维护方便3.抽离父类: 1]代码量提高了 2]利于维护,后期利于扩展
优点:提高代码的复用性
懒汉式:1.构造器私有 static类型名 变量名 =null;2.对外提供一个方法能够获取当前类的对象3.声明一个静态变量4.优点:消耗内存小5.缺点:线程不安全
内部类:在类中定义的类1.方法内部类:定义在方法里面的类2.匿名内部类:就是new了一个通过代码段实现了接口,或者抽象类的子类,只能使用一次
饿汉式:1.构造器私有 static类型名 变量名 = new 类();2.对外提供一个方法能够获取当前类的对象3.定义一个静态变量4.优点:线程安全5.缺点:消耗内存大
final类:太监类 不能有子类方法 不能重写变量 不能改值
重写:1.父类中的方法不满足于子类需要。2.一定要发生继承关系,子类中一定存在同名、参数列表相等、同类型、返回值相等,权限修饰符(子类≥父类)
多态:1.一定发生了继承关系,并且子类一定重写了父类中的方法2.父类 变量 = new 子类对象();自动类型转换;多态的前提3.变量.重写的方法();编译时查看左侧是否存在当前方法,运行时通过子类对象调用子类中重写的方法4.应用场景: 父类作为形象(让方法更加复用) 父类作为返回值(工厂模式)
抽离共性
面向对象:把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽出共性形成类。类通过一个简单的外部接口与外界发生关系。对象与对象之间通过消息进行通信。
3大特征:封装 继承 多态
static:static隶属于类 非static隶属于对象1.静态调用非静态 创建对象2.非静态调用静态 直接调用3.静态内容 通过类名调用
super:super(); 父类构造器 1.子类在加载前一定会加载父类构造器 2.super();this();都必须在构造器首行,不能同时出现 3.super();会默认在子构造器首行super. 父类对象 1.当属性赋值时,this.可代替super. 2.区分重写的方法:在方法上法添加@override
对象:对于类的抽象
接口
抽离共性:抽取外在表现形式(属性),内在功能(方法)
类:前人将某一些事物的特征抽离出来总结经验归为一类
实例抽离共性,创建类。类反向可以通过实例化构建一个个实体对象
抽象类
abstract:类:抽象类 不能实例化 但是有构造器方法:抽象方法 只有方法头 没有方法体一旦一个类继承了抽象类,一定要重写抽象类中的所有抽象方法,不然这个继承的类还是抽象类
单例模式
0 条评论
下一页