3.1 面向对象的思想

news2024/10/7 4:24:25

 

 思维导图:

**第3章 面向对象(上)**

**目录**
1. 面向对象的思想
2. 封装性
3. 继承性
4. 多态性

**3.1 面向对象的思想**
- 面向对象是一种编程思想,与现实生活中的事物和它们之间的关系相对应。
- 面向过程分析问题,通过函数实现步骤;面向对象将问题中的事物划分为对象,并通过调用对象的方法来解决问题。
- 当程序功能改变时,只需修改部分对象,使得代码更易于维护。
- 面向对象的三大特性:封装性、继承性和多态性。

**3.2 封装性**
- 核心思想是把对象的属性和行为视为一个整体。
- 封装有两层含义:
    1. 将属性和行为“组合”在一起。
    2. 信息隐藏,如学开车时只需知道如何操作汽车,不必知道汽车内部工作原理。

**3.3 继承性**
- 描述的是类与类之间的关系。
- 通过继承,可以在已有类基础上扩展功能。
- 如有一个汽车类,轿车类不仅包含汽车的特性和功能,还可以增加轿车特有功能。轿车类可继承汽车类并添加其特性和方法。
- 继承增强了代码的复用性,提高了开发效率,也方便了程序维护与扩展。

**3.4 多态性**
- 一个类的属性和方法被其他类继承后,它们可以具有不同的数据类型或表现出不同的行为。
- 如汽车和飞机都是交通工具,但汽车在陆地行驶,飞机在天空飞行。
- 多态使程序更抽象和便捷,帮助开发人员设计程序时进行分组协同开发。

**学习目标:**
- 了解面向对象思想,掌握其三大特性。
- 能够定义类,创建和使用对象,以及通过对象访问其属性和方法。
- 了解Java的4种访问控制权限和如何在类中使用它们。
- 熟悉类的封装特性,了解为什么要封装以及如何实现封装。
- 能够定义和重载构造方法,使用`this`关键字调用属性、方法及构造方法。
- 了解代码块的应用,特别是普通代码块和构造块。
- 熟悉`static`关键字的使用,了解静态属性、静态方法和静态代码块的特点。

**小结:**
面向对象的思想不仅是理论知识,还需要通过大量实践来真正领悟和应用。

我的理解:

面向对象编程(OOP)的三大特性:封装性、继承性和多态性,是支撑OOP的核心概念。为了更好地理解它们,我们可以通过以下方式来深入探讨:

**1. 封装性 (Encapsulation):**

**概念**: 
封装是面向对象编程中的一种将数据(属性)和与数据相关的操作(方法)结合在一起的机制,确保对象的内部结构的完整性和安全性。

**类比**:
想象一个真实世界的例子:电视遥控器。我们使用按钮来更改频道或调整音量,但我们不知道这背后的复杂电子工作原理。这就是封装——我们只与暴露出的接口交互,而不必关心其内部实现。

**意义**: 
- 保护内部数据不被外部随意修改。
- 简化外部对对象的访问,只暴露必要的操作和功能。
- 提高代码的可维护性和安全性。

**2. 继承性 (Inheritance):**

**概念**:
继承允许我们创建一个新类,继承并使用已有类的属性和方法,同时还可以添加新的属性和方法或覆盖现有的功能。

**类比**: 
想象一个家族,孩子会继承父母的某些特征,如眼睛的颜色或发型。但孩子也可能有他们自己独特的特点。在编程中,"父母"是父类,而"孩子"是子类。

**意义**: 
- 代码重用:子类可以复用父类的代码,避免重复编写。
- 创建类的层次结构,使代码组织得更结构化。
- 为多态性提供基础。

**3. 多态性 (Polymorphism):**

**概念**:
多态是指允许你使用一个接口表示多种数据类型。在OOP中,多态性使得不同的对象可以被视为其父类或接口的对象。

**类比**: 
考虑动物园中的动物。每个动物都可以"说话"(例如狗叫、猫喵喵叫),但它们所发出的声音是不同的。在编程中,你可能有一个方法叫做`speak()`,但根据对象是狗还是猫,它会有不同的实现。

**意义**: 
- 代码灵活性:使得函数或方法可以对不同的对象进行操作。
- 支持扩展:当添加新的子类时,不需要修改现有代码来支持新的对象。
- 提高代码的维护性和组织结构。

总之,这三大特性帮助程序员编写更加模块化、可维护和可扩展的代码,也让代码更接近现实世界的模拟。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1090901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安卓APP:有读写权限,却读取不到照片的怪事

这是我的: 忽然想起用京东时也碰到过:

RabbitMQ之Exchange(交换机)属性及备用交换机解读

目录 基本介绍 主要结论 备用交换机 springboot代码实战(备用交换机) 实战架构 工程概述 RabbitConfigDeal 配置类:创建队列及交换机并进行绑定 MessageService业务类:发送消息及接收消息 主启动类RabbitMq01Application…

GO 语言的并发模式你了解多少?

工作中查看项目代码,发现会存在使用 GO 语言做并发的时候出现各种各样的异常情况,有的输出结果和自己期望和设计的不一致,有的是程序直接阻塞住,更有甚者直接是程序 crash 掉。 实际上,出现上述的情况,还是…

spring6-事务

文章目录 1、JdbcTemplate1.1、简介1.2、准备工作1.3、实现CURD①装配 JdbcTemplate②测试增删改功能③查询数据返回对象④查询数据返回list集合⑤查询返回单个的值 2、声明式事务概念2.1、事务基本概念①什么是事务②事务的特性 2.2、编程式事务2.3、声明式事务 3、基于注解的…

NewStarCTF2023week2-ez_sql

闭合之后尝试判断字段数,存在WAF,使用大小写绕过(后面的sql语句也需要进行大小写绕过) ?id1 Order by 5-- 测出有5列 ?id1 Order by 6-- 查一下数据库名、版本、用户等信息 ?id1Union Select database(),version(),user(),4,…

205、使用消息队列实现 RPC(远程过程调用)模型的 服务器端 和 客户端

目录 ★ RPC模型(远程过程调用通信模型)▲ 完整过程:代码演示总体流程解释:ConstantUtil 常量工具类ConnectionUtil RabbitMQ连接工具类Server 服务端Client 客户端测试结果服务端客户端 完整代码ConstantUtil 常量工具类Connecti…

CocosCreator 面试题(十一)Cocos Creator 屏幕适配

Cocos Creator 提供了多种屏幕适配的方式,以确保游戏在不同设备上能够正确显示和布局。 以下是 Cocos Creator 中常用的屏幕适配方式及其说明。 1、 Cocos Creator 项目设置中统一配置设计分辨率和屏幕适配 在同一个项目里的多个 Canvas 的设计分辨率仍然采用同一…

2023年中国改性ABS树脂产能、产量及市场规模分析[图]

ABS树脂是由丙烯腈(Acrylonitrile)、丁二烯(Butadiene)和苯乙烯(Styrene)三种单体共聚而成的热塑性聚合物,是介于通用塑料和工程塑料之间的一种高分子材料,是五大合成树脂之一。随着…

USB转串口芯片GP232RL 完全兼容替代FT232RL SSOP28

GP232RL是一款高度集成的USB到UART桥接控制器,提供了一种简单的解决方案,可以使用最少的元器件和PCB空 间,将RS232接口转换为USB接口 。GP232RL包括一个USB 2.0全速功能控制器、USB收发器、振荡器、EEPROM和带有完整的调制解调器控制信号的异…

优雅而高效的JavaScript——扩展运算符

😗博主:小猫娃来啦 😗文章核心:优雅而高效的JavaScript——扩展运算符 文章目录 什么是扩展运算符扩展运算符的定义扩展运算符的作用 扩展运算符在数组中的应用数组的展开数组的合并数组的复制数组的解构赋值 扩展运算符在对象中的…

IDEA创建项目失败提示 Failed to create directory 或 “项目初始化失败”

基本只有一个原因,IDEA对该文件夹操作没有权限 比如你把项目建在了C盘的User文件夹下,User是系统盘,不要乱在里面搞东西 其他教程也许有可能教你文件夹开放权限的方法 但我个人建议,换个普通的文件夹创建项目即可 或者新建个文件…

【计算机毕业设计】python学生成绩补考通知管理系统

经过分析和研究,基于Web的学生成绩管理系统主要包括学生信息管理模块,学生成绩管理模块,学生班级管理模块,学生课程管理模块和系统管理模块。其中信息管理包括信息的浏览和处理,成绩管理包括成绩查询和处理&#xff0c…

【C语言】结构体+位段+枚举+联合(2)

大家好,我是苏貝,本篇博客带大家了解结构体和位段以及枚举,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 这是这个系列的第二篇,上一篇详细介绍了结构体的基本知识,详情…

基于SSM的高校疫情管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

HTML 核心技术点基础详细解析以及综合小案例

核心技术点 网页组成 排版标签 多媒体标签及属性 综合案例一 - 个人简介 综合案例二 - Vue 简介 02-标签语法 HTML 超文本标记语言——HyperText Markup Language。 超文本:链接 标记:标签,带尖括号的文本 标签结构 标签要成…

python基于协同过滤算法商品商城购物推荐系统vue

随着移动互联网的普及,电子商务的发展也引来了新一轮的发展,越来越手动消费者的喜爱,网络经济的发展对国家经济的发展也带来了很大的利好,带动了很多实体经济的转型,用户可以通过网络可以买到自己称心如意的商品&#…

Windows提权方法论

Windows提权方法论 1.溢出漏洞提权2.计划任务提权3.SAM文件提权4.启动项提权5.不带引号的服务路径提权 1.溢出漏洞提权 溢出提权攻击的基本原理是,通过向目标系统发送过长的输入数据,超出了程序所分配的缓冲区大小,导致溢出。攻击者可以利用…

如何理解BFC、开启BFC、BFC解决哪些问题

1.BFC 概念 BFC 英文名为 Block Formatting Context (块级格式化上下文) 具体可查看 MDN 2.BFC的作用 元素开启BFC后,子元素不会发生margin塌陷问题元素开启BFC后,子元素浮动,元素不发生高度塌陷元素开启BFC后,该元素不被其他元…

2023年中国分子筛稀土催化材料竞争格局及行业市场规模分析[图]

稀土催化材料能够起到提高催化剂热稳定性、催化剂活性、催化剂储氧能力,以及减少贵金属活性组分用量等作用,广泛应用于石油化工、汽车尾气净化、工业废气和人居环境净化、燃料电池等领域。 2015-2023年中国稀土催化材料规模及预测 资料来源:…

基于SSM的失物招领信息交互平台

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…