Share E-Book

《面向对象编程》学习笔记(作者:风往北吹-April 23,2023 First Edition) (Administrator) (Z-Library)

Author 风往北吹

Technology
Language Chinese

No Description

Format PDF
Size 1.5 MB
301
Views
0
Downloads
0.00
Total Donations
(First 20 pages)

Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

Page 1
(This page has no text content)
Page 2
《面向对象》学习笔记
Page 3
《面向对象编程》学习笔记 by 风往北吹 作者:风往北吹 邮箱:lifeandhome@live.com 封面设计者:风往北吹 产品设计者:风往北吹 出版历史: April 6,2023 First Edition
Page 4
感谢 谨以此书献给我的家人,父亲、母亲和Internet,是您们的爱和支持伴 随我走过这些岁月 您们给于我生命,您们造就了如今的我。是您们的教育使我不断进 步,是您们开括了我们的视野(世界上拥有各种不同生存方式),是 您们让我们找到了志同到合的伙伴(不管我们的兴趣多么小众),是 您们改变了我们思维方式(从不同方面来看问题),让我们以一种全 新的视角看待问题,重新审视我们的生活方式,更好的思考生活的意 义。您们使我的存在拥有了意义。对您们的感谢我无法用言语表述, 仅以此书,献给您们!您们就是我的生命!
Page 5
目录 感谢 3 前言Preface iii 一切为了您的阅读的价值 iv 为什么要讲述学习技巧? iv Chapter 1 Introduction to Object Oriented Programming 6 第1.1节 OOP介绍 6 第1.2节 两种类型编程语言 6 第1.3节 模块化模型VS 面向对象模型 7 第1.4节 对象的组成 8 第1.5节 Methods 11 第1.6节 类的构造/Class Construction 12 第1.7节 Abstraction/抽像 15 1.7.1 Setters & Getters 16 1.7.2 Method Overloading/方法超载 17 1.7.3 Method Overriding/重载 18 1.7.4 Operator Overloading/操作符超载 18 第1.8节 Inheritance & Friends 19 附录 A 字符索引 23
Page 6
前言Preface 本书读者 本书面向没有编程经验且希望学习编程的人员。 意见和问题 本书是我自己编写的学习手册,难免出现错误。如果发现错误忽喷。 实在无法忍受书中的错误,请将错误指正并发送给我。因为是业余时 间编写,更新时间可能会很慢。最后,谢谢观看本书。 联系方式: Email:lifeandhome@live.com 如何使用本书 可以根据自己的需要使用本书。本书各章的内容相互独立,不必按顺 序阅读,你完全可以跳过不感兴趣的章节。如果遇到不理解的技术术 语,请参考书后的术语表,或者Google它。 风往北吹 2023年4月4日
Page 7
一切为了您的阅读的价值 书阅读的最大成本 时间才是读者付出的最大阅读成本。 阅读的时间成本=选择图书所花费的时间+阅读图书所花费的时间+误 读图书所浪费的卖单 阅读的收益 阅读图书最大的收益,来自于获取知识后,应用于自己的工作和生 活,获得品质的改善和提升,视野的开阔,更宽广的心胸,由此,油 然而生一种无限的满足感。 业绩的增长(效率的提高) 花费 一顿饭钱 职位的晋升 几次打车钱 工资的晋级 更好的生活条件 更开阔的视野 更宽广的心胸 为什么要讲述学习技巧? 学习如登山,路很多,但难、易不同。每人体能不 同,选择正确的道路才能登顶。同理,选择适合的、 最高效的学习方法至关重要。 学习方法--如何阅读一本书 大脑是我们进行学习器官。我们只有了解了大脑运行 原理,在学习时迎合这种原理进行学习才能更高效。 建议读者有时间的话,请阅读《如何阅读一本书》, 它会让提高你的阅读能力。 本书目标人群:没有编程语言背景,想学习编程,将 学到的西应用到日常生活当中。 人脑工作原理:人脑始终在搜索、扫描,寻找发现不同寻常的事物。 比如危险,当这种事件发生,神经系统工作,调动激素,作出应急反 映。比如看到老虎,我们的大脑会告诉我们危险,调动激素,让我们 运动起来逃跑。因此,大脑对图像更敏感,同样大脑对受伤的、痛苦
Page 8
的、快乐的、丰富的、危险的记忆是记忆的最牢的,多少年过去仍无 法忘记。 如何更好的记忆知识: 阅读前: 1. 明确学习目标、动机,有激情的学习; 2. 拿张白纸; 3. 学习前,在白纸上记下想要了解的问题、想法或过程; 4. 保持在学习前的注意力。 学习中应建立知识的总体框架、相互联系,然后进行细节描述。先整 体,后细节: 1. 保持高度的注意力。 2. 知识面覆盖:对学习的内容有大致印象。看讲座视频为 1.5X或2.X。全看完,不懂的先记下来 。阅读时只偶尔做 笔记,或在每章节后写一段落的总结。1将总结或想法可 视化,图文并茂。 学习完: 1. 使用交谈方式和个人风格描述您想要了解的问题、想 法,如故事模式、问答。用我们自己的话解释它。无法 解释的就是我们要填补的知识缺口。 2. 对付各种过程:了解每一个过程,并弄清楚它是怎么执 行的。将过程可视化,图文并茂。 3. 解决问题,触动情感,作笔记。记忆事情主要依赖于它 的情感内容(高兴的事,惊奇的事)。进行习题练习, 每做完一题,对答案,自我审查。练习,找出什么不 懂,再次翻书回顾就行 重点重温。
Page 9
Chapter 1 Introduction to Object Oriented Programming 面向对象编程导论 第1.1节 OOP介绍 什么是OOP?(非正式) 一种使用特殊数据类型的编程方法或风格; 使用新型数据类型(Frog类),而不是变量数据类型 (eg:整数、字符); Frog数据类型(对象)可以拥有函数(方法),比如 speak 什么是OOP?(正式) 利用那些拥有方法(函数)和属性的数据结构的编程方法 对象是下面单词的代名词 Class Interface(注:某些语言中,类与接口有一些不同) Figure 1.1 类与实例 对象(类对象)之间的关系 第1.2节 两种类型编程语言 支持OOP: 语言包含或通过插件来支持OOP功能。例如,C++。 完全OOP: 语言完全基于OOP,所有用到的数据结构都是对象。例如, Java、C#。 相似点: 类与Structure和Union很相似。
Page 10
不同点: 类有自己的方法; 类的数据、方法有访问权限(public、private、 protected); 类可以继承; 每个类各自独立,与程序其它部分不相关-----有点像程序 中的程序。 第1.3节 模块化模型VS 面向对象模型 Figure 1.2 不同模型的函数调用原理 消信传递(有两种方式) 通过interface 通过调用另一类中的方法 第1.4节 对象的组成
Page 11
Figure 1.3 方 法调用 Main Class 与C相似,需知道从那里开始; 注:不是所有OOP语言都有Main Class概念。有些脚本 语言,有它自己确定程序启动点的方法。它们通常称为动 态程序语言(Dynamic Programming Languages)。 支持Class Figure 1.4 main()类图 他们没有开始执行的main()函数
Page 12
Figure 1.5 支 持类图 类是方法和属性的封装体(Encapsulation) 每个类都拥有唯一的生态系统 回顾(以Person类为例) Figure 1.6 每个类都有唯一的生态系统 ---Object 虚的 Person的概念 ---Instance
Page 13
实体 具体某人 成员 Figure 1.7 类与实例的对比 ---属于对象的 Fields 属性 对象的成员都是数据类型 Integer Strings Other object Etc..... Method(方法) ---“Function”属于类 ---参考OOP,所有函数(Function)都被称为方法(Method)。 ---有点像汽车与卡车之间的不同。看起来不同之处很轻微,实际上是 两个不同的东西。 Properties Delegates 第1.5节 Methods Methods ---Function属于类 两种类型的成员
Page 14
Figure 1.8 方法与函数的对比 1. 类级访问(Static) 属于类而不是实例。例如:世界人类数量不是人类的属性,而是全人 类的属性。 2. 实例级访问(non-Static) 属于实例而不是类。例如:生日不是所有人类的属性,而是个人的属 性。 访问权限 1. public 任何代码都可以访问。 2. private 只能由类自身或“Friend”函数访问。 3. protected 类或子类访问。 构造方法:当新对象实例创建时自动调用。
Page 15
Figure 1.9 类与实例属性之间的区别 析构方法:当一个现有实例被销毁时自动执行。 第1.6节 类的构造/Class Construction 构造类的步骤 定义一个新的对象类型 构建新对象类型的组成部分
Page 16
使用此对象类型创建一个实例 定义一个类的步骤 首先,是先有鸡还是先有蛋的问题? 假设我们是宇宙之主,我们想创建一个名为Chicken的动 物。首先,我们要定义Chicken是什么,它能做什么。 Table 1.1 Chicken的组成部分和行为 组成部分 行为 头 走 翅 吃 足 呼吸 眼 咕咕叫 羽毛 扇翅膀 鸟嘴 生蛋 现在,回到先有鸡,还是先有蛋的问题? Figure 1.10 类实例化-----创建类实体 ------根据OOP 首先,要有造物主 鸡蛋出现 鸡出现 如何创建类
Page 17
依赖语言 纯OOP语言,不必用template 内置OOP,需要template 什么是对象Template? 典型对象由两个文件组成,以及一个执行文件 ------Header/Interface/Template File 拥有对象模板的代码文件 ------实例文件(类) 定义类方法的代码文件 ------Driver文件 使用对象的代码文件,创建实例的文件 第1.7节 Abstraction/抽像 Figure 1.11 利用Template创建类和类实例 什么是Abstraction? 将处理细节信息与用户分离; 在OOP代码中,程序员不必了解所有错综复杂的细节,只 要知道如何使用它。
Page 18
实例 1. 创建Car 实例2.使用Car Figure 1.12 Car工厂 我们只要知道它的几个功能,以及这些功能是工作良好还是异常即 可。 Figure 1.13 使用Car 1.7.1 Setters & Getters Setters 一个设置实例属性的方法。 Gettters 一个直接获取类变量的方法。 Setters & Getters 用两种方法实现 ---方法 ---属性(后面详细介绍)
Page 19
优点:如果一个子段即可读或可写,使用起来会更方 便。阻止直接访问私有信息,可由某一方法(自己) 来控制访问权限。 Figure 1.14 Setters & Getters的使用 1.7.2 Method Overloading/方法超载 对同一个名称的函数,提供多个同名函数,但使用的参数不相同。这 使方法适用更多环境,更通用。 在类中提供一个设置number的方法,允许多种类型参数输入。
Page 20
Figure 1.15 方法超载 1.7.3 Method Overriding/重载 使用外部方法替换方法; 可以被重载的方法被称为(virtual Methods)虚拟方法。 1.7.4 Operator Overloading/操作符超载 为作操符提供多种方法; 这使操作符可以在你的object与instance使用,好像他们是 原始数据类型。
The above is a preview of the first 20 pages. Register to read the complete e-book.

Recommended for You

Loading recommended books...
Failed to load, please try again later

Tip the Site

Scan the WeChat Pay or Alipay code to tip. No login required.

WeChat Pay
Alipay
Back to List