• MATLAB面向对象编程——从入门到设计模式(第2版) 9787512424029
21年品牌 40万+商家 超1.5亿件商品

MATLAB面向对象编程——从入门到设计模式(第2版) 9787512424029

正版图书,可开发票,请放心购买。

52.98 7.7折 69 全新

库存16件

广东广州
认证卖家担保交易快速发货售后保障

作者徐潇 李远

出版社北京航空航天大学出版社

ISBN9787512424029

出版时间2017-10

装帧平装

开本16开

定价69元

货号25176349

上书时间2024-10-24

哲仁书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言
前言

本书第1 版的编写从2011年4 月开始,2015 年出版之后作者就开始准备第2 版的新内容,并于2016年11 月完稿。本书从理工科研究人员和学生的角度出发,分4 部分介绍MATLAB 面向对象编程。

编写本书的难点是,不仅需要介绍面向对象编程的思想和技巧,而且要让非计算机专业的读者领会为什么需要面向对象编程,它对我们的科研工作将有什么样的帮助,并且怎样把面向对象的思想应用到科研程序中。

本书的特点是:技术实用,重点突出,代码简单易读,内容讲解图文并茂。

一本技术书籍,纯粹的文字叙述是必要的,因为文字叙述是精确的;一本介绍编程的书,如果尽量提供例子代码,则能够帮助读者更深刻地理解文字概念;“一张图可胜过千言万语”,简洁明了的图表可以直观形象地表达文意。因此,本书不仅尽量使用通俗的语言和形象的图表阐述道理,以典型且简洁易读的代码作为例程,全面讲解MATLAB 面向对象编程从入门到设计模式,而且尽量让内容的编排更具可读性,以便带给读者更佳的阅读体验。

除此之外,本书还加入了大量的面向对象编程的统一建模图(UnifiedModeling Language),与所提供的代码相互对应,以反映代码中类、对象、属性、方法之间的关系。

为了平衡各专业的需求,书中所列举的例子大多是“通例”,而不是具体到某个专业领域的专题。但是作者也十分清楚,一本好书是要能够“深入骨髓”地解决读者所遇到的体的专业问题,好有对应的范例供参考。所以,在此也希望读者能够将“面向对象编程”的专业问题的程序以及产生的问题发布在MATLAB 中文论坛本书的版块(http://www.ilovematlab.cn/forum-219-1.html)上。日积月累,论坛上一定会有更多的MATLAB 面向对象编程范例可以参考,也会有更多的科研新人受益其中。

本书第1 版出版以后,读者在MATLAB 论坛中提了很多问题,根据这些问题我们修订了书中的部分内容,把大家都有疑问的地方解释得更详细一些。另外,本书还针对部分读者工作中的中大型工程计算问题提供了设计上的建议和指导。我们的经验是,只要读者愿意积极的思考,保持好奇心,善于探索,再辅以本书设计思想的指导,完全可以使用MATLAB完成工业级别的工程应用。这也是本书第4 部分——框架篇的由来。

由于作者水平有限,书中存在的错误和疏漏之处恳请广大读者和同行批评指正。本书勘误网址:http://www.ilovematlab.cn/thread-310165-1-1.html。

本书所有内容仅代表个人观点,与MathWorks无关。

作者

2016 年11 月



导语摘要

本书分为4 部分:第1 部分是面向对象编程初级篇,主要介绍MATLAB 面向对象编程的基础知识和语法;第2 部分是面向对象编程中级篇,主要介绍面向对象编程的中高级概念,方便读者在编程中遇到问题时查询;第3 部分是设计模式篇,把面向对象的编程方法应用到实际问题中,并从实际问题中抽象出一般的解决方法,即设计模式;第4 部分是框架篇,主要介绍构建在面向对象和设计模式基础之上的MATLAB测试框架,包括单元测试框架和性能测试框架。

本书既可作为高等院校MATLAB 课程的辅助读物,也可作为从事科学计算、程序设计等工作的科研人员的参考用书。



作者简介

徐潇:MathWorks开发部MATLAB架构C  高级软件工程师。计算物理学博士,研究方向为电子结构计算、密度泛函算法开发;计算机硕士,研究方向为图像处理。2004年,开始使用MATLAB,在科研编程中遇到了开发大型程序难以维护的困难,花了很多时间用于改进程序但效果总不尽如人意。2009年,开始使用MATLAB面向对象编程,发现工程进度被迅速加快,于是萌生了写一本介绍MATLAB 面向对象编程书的念头。2011年,在美国取得博士学位之后入职MathWorks,从理科科研工作者和多年的MATLAB爱好者,成为一名MATLAB语言的设计开发和实现的软件工程师。2016年,作者在MATLAB中文论坛开辟了技术专栏(http://www.ilovematlab.cn/forum-219-1.html),和大家分享*的行业应用技术和MATLAB编程理念,旨在推动软件工程中的现代手段在MATLAB科学工程计算项目中的使用,帮助科学家和工程师们更有效地解决复杂的科研问题。本书凝结了作者多年的科研和工作经验以及对MATLAB语言的理解,希望能对各种规模的科学工程计算项目的MATLAB使用者有所启发。


李远:本、硕毕业于北方交通大学,在美国的维克弗斯特大学取得物理学博士学位。2014年回国创建北醒(北京)光子科技有限公司,专注于固态激光雷达的研发和生产,产品应用于无人驾驶、无人机和机器人等领域。希望这本《MATLAB面向对象编程——从入门到设计模式(第2版)》能够给工程科学领域的工作者带来方便,尤其对于一些需要长期使用而且不断更新的程序。



目录

第1 部分面向对象编程初级篇


第1 章面向过程编程和面向对象编程. . . . . . . . . . . . . . . . . . . . . . . . 3


1.1
什么是面向过程编程. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 3


1.2
什么是面向对象编程. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 4


1.2.1
什么是对象. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 4


1.2.2
什么是类. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 4


1.2.3
什么是统一建模语言. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 6


1.3
面向过程编程有哪些局限性. . . . . . . . . . . . . . . . . .
. . . . . . . . . . 9


1.4
面向对象编程有哪些优点. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 13


第2 章MATLAB 面向对象编程入门. . . . . . . . . . . . . . .
. . . . . . . . . 16


2.1
如何定义一个类. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 16


2.2
如何创建一个对象. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 17


2.3
类的属性. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 19


2.3.1
如何访问对象的属性. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 19


2.3.2
什么是属性的默认值. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 19


2.3.3
什么是常量属性. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 21


2.3.4
什么是非独立属性. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 21


2.3.5
什么是隐藏属性. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 25


2.4
类的方法. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 26


2.4.1
如何定义类的方法. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 26


2.4.2
如何调用类的方法. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 27


2.4.3
点调用和函数调用类方法的区别. . . . . . . . . . . . . . . . .
. . . . . . . 29


2.4.4
什么是方法的签名. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 29


2.4.5
类、对象、属性和方法之间的关系. . . . . . . . . . . . . . . .
. . . . . . . 32


2.4.6
如何用disp 方法定制对象的显示. . .
. . . . . . . . . . . . . . . . . . . . . 32


2.5
类的构造函数. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 35


2.5.1
什么是构造函数. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 35


2.5.2
如何在构造函数中给属性赋值. . . . . . . . . . . . . . . . .
. . . . . . . . 36


2.5.3
如何让构造函数接受不同数目的参数. . . . . . . . . . . . . . . .
. . . . . . 36


2.5.4
什么是默认构造函数. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 37


2.5.5
用户一定要定义构造函数吗. . . . . . . . . . . . . . . . . .
. . . . . . . . . 38


2.6
类的继承. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 39


2.6.1
什么是继承. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 39


2.6.2
为什么子类构造函数需要先调用父类构造函数. . . . . . . . . . . . . .
. . . . 43


2.6.3
在子类方法中如何调用父类同名方法. . . . . . . . . . . . . . . .
. . . . . . 45


2.6.4
什么是多态. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 46


2.7
类之间的基本关系:继承、组合和聚集. . . . . . . . . . . . . . .
. . . . . . 47


2.7.1
如何判断B 能否继承A . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 47


2.7.2
企鹅和鸟之间是不是继承关系. . . . . . . . . . . . . . . . .
. . . . . . . . 48


2.7.3
如何把类组合起来. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 49


2.7.4
什么是组合聚集关系. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 51


2.8
Handle 类的set 和get 方法. . . . . . . . . . . . . . . . . . . . . . . . . . . 52


2.8.1
什么是set 方法. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 52


2.8.2
什么是get 方法. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 54


2.9
类的属性和方法的访问权限. . . . . . . . . . . . . . . . . .
. . . . . . . . . . 56


2.9.1
什么是public、protected 和private 权限. . . . . . . . . . . . . . . . .
. . 56


2.9.2
如何设置类的属性和方法的访问权限. . . . . . . . . . . . . . . .
. . . . . . 59


2.9.3
如何更细粒度地控制访问权限. . . . . . . . . . . . . . . . .
. . . . . . . . 60


2.9.4
MATLAB 对属性访问的控制与C  和Java 有什么不同. . . . . . . . . . . . 62


2.10
clear classes 到底清除了什么. . . . . . . . . . . . . . . . . . . .
. . . . . . . 63


2.11
对象根据类定义的改变而自动更新. . . . . . . . . . . . . . . .
. . . . . . . . 64


第3 章MATLAB 的句柄类和实体值类. . . . . . . . . . . . . .
. . . . . . . . 66


3.1
引子:参数是如何传递到函数空间中去的. . . . . . . . . . . . . . .
. . . . . 66


3.2
MATLAB 的Value 类和Handle 类. . . . . . . . . . . . . . . . . . . . . . . 70


3.2.1
什么是Value 类和Handle 类. . . . . . . . . . . . . . . . . . . . . . . . . 70


3.2.2
Value 类对象和Handle 类对象复制有什么区别.
. . . . . . . . . . . . . . . . 72


3.2.3
Value 类对象和Handle 类对象赋值有什么区别.
. . . . . . . . . . . . . . . . 73


3.2.4
Value 类对象和Handle 类对象当作函数参数有什么区别. . . . . . . . . . . . . 76


3.2.5
Value 类对象和Handle 类对象作为默认值有什么区别. . . . . . . . . . . . . . 77


3.2.6
什么情况下使用Value 类或Handle 类. . . . . . . . . . . . . . . . . . . . . 78


3.3
类的析构函数(Destructor) . .
. . . . . . . . . . . . . . . . . . . . . . . . . 83


3.3.1
什么是对象的生存周期. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 83


3.3.2
什么是析构函数. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 84


3.3.3
对Object 使用clear 会发生什么. . . . . . . . . . . . . . . . . . . . . . . . 84


3.3.4
对Object 使用delete 会发生什么. . . . . . . . . . . . . . . . . . . . . . . 85


3.3.5
什么情况下delete 方法会被自动调用. .
. . . . . . . . . . . . . . . . . . . . 88


3.3.6
出现异常时delete 函数如何被调用. .
. . . . . . . . . . . . . . . . . . . . . 91


3.3.7
什么情况下用户需要自己定义一个delete 方法. . . . . . . . . . . . . . . . . 92


第4 章事件和响应. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95


4.1
事件. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 95


4.1.1
什么是事件. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 95


4.1.2
如何定义事件和监听事件. . . . . . . . . . . . . . . . . .
. . . . . . . . . . 96


4.1.3
为什么需要事件机制. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 97


4.2
发布者通知观察者,但不传递消息. . . . . . . . . . . . . . . .
. . . . . . . . 98


4.3
发布者通知观察者,并且传递消息. . . . . . . . . . . . . . . .
. . . . . . . . 100


4.4
删除listener . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 103


第5 章MATLAB 类文件的组织结构. . . . . . . . . . . . . . .
. . . . . . . . . 104


5.1
如何使用其他文件夹中类的定义. . . . . . . . . . . . . . . . .
. . . . . . . . 104


5.2
如何把类的定义和成员方法的定义分开. . . . . . . . . . . . . . .
. . . . . . 105


5.3
如何定义类的局部函数. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 106


5.4
如何使用Package 文件夹管理类. . .
. . . . . . . . . . . . . . . . . . . . . . 108


5.4.1<

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP