Matlab AppDesigner程式設計教程第1章——物件導向程式設計
Matlab AppDesigner程式設計教程第1章——物件導向程式設計
前言
首先為什麼我們學習Matlab AppDesigner要先學物件導向程式設計呢?
1直接原因:Matlab appdesigner是物件導向程式設計的,所有控制元件都是物件,如果不瞭解物件導向程式設計,編起來就會比較懵逼;
2重要原因:物件導向程式設計好處多多,可以讓程式變得簡潔易讀易擴充套件易改等等,所以程式一大,物件導向程式設計就是必然的選擇;
一、什麼是物件導向程式設計
我們一開始寫程式一般都是程式導向程式設計,我們把需要計算機做的事情一步一步按照過程叫計算機完成,這就叫程式導向程式設計;與之相對的就是物件導向程式設計。
那麼到底什麼是物件導向程式設計呢?
說白了就是把我們的程式要乾的事情抽象出一個一個的類出來,類裡面的個體就是物件;比如說我們程式設計與人有關那麼,那麼人就是類,人的個體比如小紅、小明就是物件,各個物件作為人這個 “類“有他們共有的屬性,比如身高體重等,作為物件個體他們又有屬性上的差異,比如身高差異,體重差異等等;類還有另一個重要特點就是還具有方法或者叫操作,作為人這個“類”,他可以有很多方法比如會吃飯睡覺等等,根據程式設計需要我們可以任意新增。
講到這裡你可能還是不明白,這些在程式裡怎麼體現呢?下面用一個著名的五子棋例子來說明,你就能明白麵向物件的精妙所在。
五子棋程式設計例子
- 程式導向怎麼寫呢?
1) 畫出棋盤2)黑子下2)畫出棋子3)白子下4)畫出棋子5)判斷輸贏6)重複步驟7)輸出輸贏結果 - 物件導向寫法
先抽象類,縱觀整個下棋過程可以抽象出3類:
第一類:人;人類包括兩個物件黑和白,這兩個物件其實是完全一樣的
第二類:畫圖系統
第三類:判定系統
整個程式只需要幾個物件之間傳遞資料就行。
這樣寫程式是不是很簡潔明瞭,還有其他很多優點比如這個程式可以分工合作來寫,一個人寫第一類;一個人寫第二類;一個人寫第三類,最後只需提供輸入輸出的介面就行,類裡面就是一個黑匣子不用管裡面是什麼;還有比如說畫圖系統的美術風格變了,那麼物件導向程式設計只需要在類裡面改就行了,甚至還可以提供幾個風格供使用者選擇,實現這個功能在物件導向裡就非常方便,如果是面向對過程程式設計,畫圖系統分佈於整個程式不同位置,改起來就很麻煩。
到這裡為止,你應該對物件導向程式設計有個大概直觀的瞭解了,那麼接下來我們看看matlab如何建立類、物件以及如何物件導向程式設計。
首先建議大家使用最新版Matlab,因為Matlab一直在對AppDesigner更新,,2020相比2019就加了好多東西,所以我建議使用最新版本。那麼我們開始吧
二、使用步驟
1.新建類
2.程式碼說明
classdef untitled
%UNTITLED 此處顯示有關此類的摘要
% 此處顯示詳細說明
properties
Property1
end
methods
function obj = untitled(inputArg1,inputArg2)
%UNTITLED 構造此類的例項
% 此處顯示詳細說明
obj.Property1 = inputArg1 + inputArg2;
end
function outputArg = method1(obj,inputArg)
%METHOD1 此處顯示有關此方法的摘要
% 此處顯示詳細說明
outputArg = obj.Property1 + inputArg;
end
end
end
上圖就是一個空白類,untitled就是類的名字;properties就是類的屬性;methods就是類的方法
3.建立點類
下面通過一個簡單的例子來講解類
構造一個點類,屬性有x,y,類方法裡的第一個函式為建構函式,規則則為下面程式碼所示;注:類的屬性和方法都可以用點來呼叫和賦值,和結構體類似
classdef point
properties
x
y
l
end
methods
function obj = point(x,y)
obj.x = x;
obj.y = y;
end
function obj=get_l(obj)
obj.l = sqrt(obj.x^2+obj.y^2);
end
end
end
這樣一個簡單的2維點類就構造完畢,現在我們可以構建兩個點p1和p2,p1,p2即為物件:p1=(1,1),p2=(1,2)
p1=point(1,1)
p2=point(1,2)
構造完類就可以新增方法了,比如我想知道點到原點的距離,我們就可以新增一個屬性l來表示,並在方法里加個函式,取名get_l,如下:
classdef point
properties
x
y
l
end
methods
function obj = point(x,y)
obj.x = x;
obj.y = y;
end
function obj=get_l(obj)
obj.l = sqrt(obj.x^2+obj.y^2);
end
end
end
這樣我們要知道p1到原點的距離可以這樣呼叫:
p1=point(1,1)
p1.get_l
當然我們還可以繼續新增屬性和方法根據我們需要,到這裡為止,構造類,建立物件,呼叫方法的基本方法我們已經會了,當然物件導向程式設計還有許多進階技巧,這些就需要大家自己在實踐中自己掌握了。
總結
以上就是Matlab構建類的方法,當然這是最基礎的概念,由於Matlab Appdesigner是用物件導向程式設計的方式寫的,所以掌握類的概念十分重要,下一章通過具體的例子來進一步說明類的使用。
本人專業光學設計工作者,業餘Matlab愛好者,感興趣的可以關注我的微信公眾號“靠譜光學”,分享靠譜知識。
相關文章
- Matlab AppDesigner程式設計教程第2章——介面介紹及編寫一個計算器(物件導向的方式)MatlabAPP程式設計物件
- 物件導向程式設計物件程式設計
- Python物件導向程式設計Python物件程式設計
- 程式設計思想 物件導向程式設計物件
- js物件導向程式設計JS物件程式設計
- 十三、物件導向程式設計物件程式設計
- 十六、物件導向程式設計物件程式設計
- Python 物件導向程式設計Python物件程式設計
- 好程式設計師Java教程分享Java物件導向與程式導向程式設計師Java物件
- 物件導向程式設計和`GP`泛型程式設計物件程式設計泛型
- JavaScript-設計模式-物件導向程式設計JavaScript設計模式物件程式設計
- JavaScript設計模式之物件導向程式設計JavaScript設計模式物件程式設計
- JS物件導向程式設計(一):物件JS物件程式設計
- 物件導向程式設計C++物件程式設計C++
- Python OOP 物件導向程式設計PythonOOP物件程式設計
- python技能--物件導向程式設計Python物件程式設計
- javascript:物件導向的程式設計JavaScript物件程式設計
- JS物件導向的程式設計JS物件程式設計
- Javascript 物件導向程式設計(一)JavaScript物件程式設計
- Javascript 物件導向程式設計(二)JavaScript物件程式設計
- Javascript 物件導向程式設計(三)JavaScript物件程式設計
- 06 物件導向程式設計 (續)物件程式設計
- Python物件導向程式設計(1)Python物件程式設計
- Scala的物件導向程式設計物件程式設計
- Python - 物件導向程式設計 - super()Python物件程式設計
- Python - 物件導向程式設計 - @propertyPython物件程式設計
- JavaScript物件導向程式設計理解!JavaScript物件程式設計
- 全網最適合入門的物件導向程式設計教程:00 物件導向設計方法導論物件程式設計
- 全網最適合入門的物件導向程式設計教程:01 物件導向程式設計的基本概念物件程式設計
- 好程式設計師前端教程-javascript的物件導向程式設計師前端JavaScript物件
- 史上最全 Python 物件導向程式設計Python物件程式設計
- 淺談PHP物件導向程式設計PHP物件程式設計
- JS物件導向程式設計(三):原型JS物件程式設計原型
- [筆記]物件導向的程式設計筆記物件程式設計
- python基礎(物件導向程式設計)Python物件程式設計
- java-物件導向程式設計--(3)Java物件程式設計
- python物件導向程式設計基礎Python物件程式設計
- python之物件導向程式設計(一)Python物件程式設計