小伍随笔

导航

面向对象

面向对象

 

什么是面向对象

面向对象与面向过程

面向过程

步骤清晰,第一步做什么,第二步做什么,下一步做什么...

面向过程适合处理一些较为简单的问题

面向对象

物以类聚,分类的思维,将问题或者功能统合为一个模块,然后通过调用这个模块去解决问题或者完成工作,淡化具体步骤,只求最后结果的思想

面向对象适合处理复杂的问题,需要多人协作的问题

对于描述复杂的物体,为了从宏观上把握,从整体合理分析,需要使用面向对象的思路去分析整个系统,但具体到微观操作,需要通过面向过程去完成

面向对象是什么

面向对象编程(oop)

面向对象的本质就是:以类的方式组织代码,以对象的组织(封装)数据

是一种抽象的概拿

三大特性为:封装,继承,多态

从认识角度考虑是先有对象后有类。对象是,具体的事物,类是抽象的,对对象的抽象。

从代码角度来说先有类后有对象。类是对象的模板。

创建与初始化对象

使用NEW关键字创建对象

使用new关键字创建对象时,除了分配空间之外,还会给创建好的对象,进行默认的初始化以及对类的构造器调用。

类中的构造器也称构造方法,是在进行创建对象的时候必须调用的。构造器必须与类的名字相同,没有返回类型,不能写void。

封装

程序设计要追求“高内聚,低耦合”高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合,只提供少量方法给外部使用

封装就是数据的隐藏,通常,禁用直接访问一个对象中的数据实际表现,必须通过操作相关接口来访问,这称为信息隐藏

继承

继承是类与类之间的一种关系,除此之外还有依赖,聚合,组合等

继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示

java中只有单继承没有多继承

方法重写

重写都是方法的重写和属性无关只能是子类对父类方法的重写

重写是子类对父类方法的改变,补充或者增强

多态

既是同一方法可以根据发送对象的不同而采取多种不同的行为方式

一个类的实际类型是确定的,但是可以指向对象的引用的类型有很多种

多态是方法的多态,属性没有多态性

多态可以使程序可扩展性更强

多态的存在条件

有继承关系

子类重写父类的方法

父类引用指向子类对象

抽象类

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。

由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。

父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。

在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。

接口

普通类:只有具体的实现

抽象类:具体实现和规范都有

接口:只有规范,自己无法写方法 专业的约束。约束和实现分离

接口就是规范,定义是一组规则

接口中的定义其实都是抽象的

实现接口的类必须重写接口中的方法

 

 

 

 

posted on 2021-03-04 16:24  小伍随笔  阅读(33)  评论(0)    收藏  举报