关于面向对象三大特性的相关预习

关于面向对象三大特性的相关预习:


前言

java是一门面向对象的程序技术,我们想要学好java,首先应该清楚什么是面向对象将其与面向过程区分,并掌握面向对象的三大特性。


以下是我在预习结束后对面向对象与面向过程的认知,以及对面向对象的三大特性的一些理解。

一、面向对象和面向过程的区别?

## 面向过程-侧重于怎么做: 1.把完成某一个需求的所有步骤依据从头到尾的过程来逐步实现。 2.根据开发要求,将某些功能独立的代码封装成一个又一个函数。 3.最后完成的代码,就是顺序的调用不同的函数。 ## 面向对象-侧重于谁来做: 相比较函数,面向对象是更大的封装,根据职责在一个对象中封装多个方法。 1.在完成某一个需求前,首先确定职责,要做的事。 2.根据职责确定不同的对象,在对象内部封装不同的方法,即我们所说的函数。 3.最后完成代码,就是顺序的让不同的对象调用不同的方法。 ###### 简而言之,就是面向对象更注重结果,而面向过程更注重过程。 # 二、面向对象三大特性具体是? ## 1.封装(Encapsulation) ###### ·对java中封装的理解:将某些东西进行隐藏,然后提供相应的方式进行获取。 ###### ·概念:封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的借口访问其他对象。封装是一种信息隐藏技术,在java中通过关键字private,protected,public实现封装。什么是封装?封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。 **·private的使用**:private在封装中的作用是保护成员变量,使其无法输出。 **·public的使用**:建立公有的public访问方法,强调调用代码通过这些方法访问成员变量。 **·protected的使用**:作为权限修饰符,被protected修饰的成员对于本包和其子类可见。 **·封装的好处**:提高代码的安全性。 ###### 示例:(如此则无法得到mima)

加粗样式
在这里插入图片描述
另外:被private修饰的成员变量可以通过setter-getter方法暴露。

**

2.继承(Inheritance)

概念:类是对对象的抽象,继承是对类的抽象。即在合理的范围中进行抽取,抽取出子类父类的关系。
特点:

**·**继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
**·**在本职上是特殊——一般的关系,即常说的is-a关系。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法。从多种实现类中抽象出一个基类,使其具备多种实现类的共同特性 ,当实现类用extends关键字继承了基类(父类)后,实现类就具备了这些相同的属性。
**·**继承的类叫做子类(派生类或者超类),被继承的类叫做父类(或者基类)。

·如何实现继承:Java通过extends关键字来实现继承,父类中通过private定义的变量和方法不会被继承,不能在子类中直接操作父类通过private定义的变量以及方法。

在这里插入图片描述

·继承的优点: 继承避免了对一般类和特殊类之间共同特征进行的重复描述,通过继承可以清晰地表达每一项共同特征所适应的概念范围——在一般类中定义的属性和操作适应于这个类本身以及它以下的每一层特殊类的全部对象。运用继承原则使得系统模型比较简练也比较清晰。
继承的部分原则:

成员变量的具体继承原则如下:
1.能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;
2. 对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
3.对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。

基础示例:在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
(其中:human为父类,student为子类。子类可以通过setter-getter方法调用父类中被private修饰的成员变量。)

注意:先有父类->子类:继承 先有子类->父类:泛化。

3.多态(Polymorphism)

多态与属性无关,多态是指方法的多态。
多态的原理:在这里插入图片描述
多态的优点

·消除类型之间的耦合关系
·可替换性
·可扩充性
·接口性
·灵活性
·简化性
·直接的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

多态存在的三个必要条件

·继承
·重写
·父类引用指向子类对象:Parent p = new Child();

多态注意点

·当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

·个人理解:相比较封装与继承而言,多态有一些综合的味道,也就是说多态要比封装与继承更难理解,但多态的理论基础是建立在继承与封装之上的。

简单示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

☬GGBOY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值