面向对象的特征

面向对象的三大特征

封装 继承 多态


封装

封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。

        封装最主要的功能在于我们能修改自己的实现代码,而不用修改哪些调用我们代码的程序片段。适当的封装可以让程序更容易理解和维护,加强安全性。

封装的优点

1. 良好的封装能够减少耦合。

2. 类内部的结构可以自由修改。

3. 可以对成员变量进行更精确的控制。

4. 隐藏信息,实现细节。


封装的步骤

在Java中的体现及步骤

(1)把类中的字段私有化;

(2)给每一个字段都提供一组getter  setter方法  (方法的规范写法);setXxx

在测试类中尝试创建对象,并通过调用getter setter方法完成 对字段的赋值和取值;

(3)提供一个无参数的构造方法

注意事项

1.不可以把字段的getset方法写成一个方法(取值的时候还得传入参数不可取)

2.不可以把一个类中的多个字段赋值方法携程一个方法(耦合度太高,如果我们只想给一个字段赋值就无法操作)

3. 单一职能原则:功能最小化,不要想着一个方法写完所有功能。


继承

继承的概念:

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为

如:兔子和羊属于食草动物类,狮子和豹属于食肉动物类。食草动物和食肉动物又是属于动物类。


类的继承格式

在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:

类的继承格式

class 父类 {

}

class 子类 extends 父类 {

}


继承的意义

便于维护,减少代码重复。


继承的特性

子类拥有父类非 private 的属性、方法。

子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

子类可以用自己的方式实现父类的方法。

Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C

类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。

提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)


多态


多态的概念


1.一个人就是一个动物:

     (1) Animal aml = new Person();//一个动物变量中,可能存放子类对象的多种可能

2.理解:使用aml:编译是看的是Animal类型,运行时看的是实际存放的对象[真实类型]

3.官方概念:编译时跟运行时类型不一致就产生了多态

4.民间理解:父类类型的变量,存放子类类型的对象,可能存放子类类型的对象有多种可能

5.多态存在的前提:必须有继承关系

多态编译时和运行时过程


1.编译时,看的是父类类型,会现在父类中,看有不有对应的方法,如果没有继续向上找{更高父类}

如果找到了,编译通过,如果找不到,编译失败报错

2.运行时:看真实类型,如果在真实类型中找到了,就运行真实类型中的函数,如果没有找到,向上找。

多态的好处


1. 多态的好处:屏蔽了不同子类之间实现的差异

2. 加强面向对象编程思想:

     a)此处体现java语言设计是想,希望将现实生活中的对象与对象之间的关系在计算机系统得以体现

你可能感兴趣的:(面向对象的特征)