面向对象
什么是面向对象
面向对象与面向过程
面向过程
面向过程适合处理一些较为简单的问题
面向对象
物以类聚,分类的思维,将问题或者功能统合为一个模块,然后通过调用这个模块去解决问题或者完成工作,淡化具体步骤,只求最后结果的思想
面向对象适合处理复杂的问题,需要多人协作的问题
对于描述复杂的物体,为了从宏观上把握,从整体合理分析,需要使用面向对象的思路去分析整个系统,但具体到微观操作,需要通过面向过程去完成
面向对象是什么
面向对象编程(oop)
面向对象的本质就是:以类的方式组织代码,以对象的组织(封装)数据
是一种抽象的概拿
三大特性为:封装,继承,多态
从认识角度考虑是先有对象后有类。对象是,具体的事物,类是抽象的,对对象的抽象。
从代码角度来说先有类后有对象。类是对象的模板。
创建与初始化对象
使用NEW关键字创建对象
使用new关键字创建对象时,除了分配空间之外,还会给创建好的对象,进行默认的初始化以及对类的构造器调用。
类中的构造器也称构造方法,是在进行创建对象的时候必须调用的。构造器必须与类的名字相同,没有返回类型,不能写void。
封装
程序设计要追求“高内聚,低耦合”高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合,只提供少量方法给外部使用
封装就是数据的隐藏,通常,禁用直接访问一个对象中的数据实际表现,必须通过操作相关接口来访问,这称为信息隐藏
继承
继承是类与类之间的一种关系,除此之外还有依赖,聚合,组合等
继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示
java中只有单继承没有多继承
方法重写
重写都是方法的重写和属性无关只能是子类对父类方法的重写
重写是子类对父类方法的改变,补充或者增强
多态
既是同一方法可以根据发送对象的不同而采取多种不同的行为方式
一个类的实际类型是确定的,但是可以指向对象的引用的类型有很多种
多态是方法的多态,属性没有多态性
多态可以使程序可扩展性更强
多态的存在条件
有继承关系
子类重写父类的方法
父类引用指向子类对象
抽象类
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。
父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。
在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。
接口
普通类:只有具体的实现
抽象类:具体实现和规范都有
接口:只有规范,自己无法写方法 专业的约束。约束和实现分离
接口就是规范,定义是一组规则
接口中的定义其实都是抽象的
实现接口的类必须重写接口中的方法
浙公网安备 33010602011771号