【20200919】編程基礎(chǔ)外冀,結(jié)構(gòu)(Struct)

1. 介紹

1.1 介紹

前面我們學(xué)習(xí)了編程的入門課程生闲,了解的編程語言的基本語法媳溺,知道編程語言的基本要素。

今天開始福哥開始給大家講編程的基礎(chǔ)知識(shí)碍讯,這個(gè)基礎(chǔ)知識(shí)是用來提高編程水平的知識(shí)褂删,基礎(chǔ)知識(shí)每種編程語言的差異會(huì)比較大,所以福哥在講解某一種編程語言的某一特性的時(shí)候冲茸,會(huì)標(biāo)明這種特性針對(duì)的是哪一種編程語言屯阀,只想學(xué)習(xí)某一種編程語言的童鞋可以有選擇的學(xué)習(xí)。

第一課是公共知識(shí)轴术,所以就沒有標(biāo)明是哪一種編程語言难衰,這一課講的主題是結(jié)構(gòu)(Struct),這是一個(gè)輕松的話題逗栽,了解結(jié)構(gòu)可以幫助我們樹立一個(gè)框架性的概念盖袭,對(duì)編寫各種級(jí)別的項(xiàng)目會(huì)有一個(gè)基本概念。

2. 結(jié)構(gòu)層級(jí)

結(jié)構(gòu)層級(jí)指的是在編程領(lǐng)域彼宠,小到一個(gè)函數(shù)鳄虱,大到一個(gè)解決方案,它們之間都是存在這一系列層級(jí)關(guān)系的凭峡,從大到小的順序是:

解決方案(Solution)拙已,針對(duì)一個(gè)大的需求給出的一整套解決方案,它可能是一個(gè)或多個(gè)項(xiàng)目工程組成

項(xiàng)目工程(Project)摧冀,針對(duì)一個(gè)特定的領(lǐng)域的一個(gè)獨(dú)立的程序或庫倍踪,它可能是一個(gè)或多個(gè)模塊組成

模塊(Module),針對(duì)一個(gè)具體的解決一個(gè)特定功能的需求的對(duì)象模型索昂,它可能是一個(gè)或多個(gè)對(duì)象組成

對(duì)象(Class)建车,針對(duì)一個(gè)具體的實(shí)體對(duì)象的定義,它包含這個(gè)實(shí)體對(duì)象的屬性組和方法組

函數(shù)(Function)椒惨,針對(duì)一個(gè)具體的行為的定義缤至,它是實(shí)現(xiàn)這個(gè)行為得到具體邏輯

3. 數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)指的是包含若干屬性的一個(gè) 獨(dú)立的數(shù)據(jù)模型,在c語言里可以使用struct定義數(shù)據(jù)結(jié)構(gòu)康谆,在c++語言里可以使用class定義數(shù)據(jù)結(jié)構(gòu)领斥,在java語言里也是使用class定義數(shù)據(jù)結(jié)構(gòu)错洁,在php語言里除了可以使用class定義數(shù)據(jù)結(jié)構(gòu)外,還可以使用php獨(dú)有的array來定義數(shù)據(jù)結(jié)構(gòu)戒突。

3.1 數(shù)據(jù)結(jié)構(gòu)和變量

數(shù)據(jù)結(jié)構(gòu)是一組變量的集合體屯碴,數(shù)據(jù)結(jié)構(gòu)的實(shí)例可以作為普通變量傳遞給函數(shù)使用,數(shù)據(jù)結(jié)構(gòu)比較變量的優(yōu)勢(shì)有很多膊存,諸如:

攜帶更多的變量导而,傳遞能力更強(qiáng)大

抽象實(shí)體,可以根據(jù)實(shí)體的屬性模擬定義抽象實(shí)體隔崎,這個(gè)是對(duì)象(class)的精髓

便于維護(hù)今艺,通過一個(gè)實(shí)例可以將一眾變量一起帶著走,這種特性使得編寫代碼變得很優(yōu)雅

3.2 數(shù)據(jù)結(jié)構(gòu)和對(duì)象

數(shù)據(jù)結(jié)構(gòu)在沒有對(duì)象的c語言是用struct定義的爵卒,在c++和java虚缎、php等支持對(duì)象的語言里和普通對(duì)象的區(qū)別就只有一條,就是作為數(shù)據(jù)結(jié)構(gòu)的對(duì)象是沒有任何方法定義的钓株,它只作為一組屬性的集合體存在实牡。

4. 實(shí)體對(duì)象

實(shí)體對(duì)象(Entity)是設(shè)計(jì)模式里的一個(gè)概念,這種設(shè)計(jì)模式倡導(dǎo)的是所有需要存儲(chǔ)的數(shù)據(jù)都要?dú)w類到一個(gè)實(shí)體對(duì)象里轴合,存儲(chǔ)數(shù)據(jù)的只能是實(shí)體對(duì)象创坞,讀取數(shù)據(jù)也只能從實(shí)體對(duì)象的屬性里獲取,這是OOP編程思想的思維受葛,是比較先進(jìn)的設(shè)計(jì)思想题涨。

4.1 c/c++示例

在c/c++里,大家更加習(xí)慣使用struct這種數(shù)據(jù)結(jié)構(gòu)語法定義實(shí)體對(duì)象

typedef?struct?T_TFUser?{

????int?userId;

????string?userName;

};

在c/c++里的struct就是一個(gè)類型总滩,我們可以通過這個(gè)struct聲明變量

4.2 java示例

在java里纲堵,實(shí)體對(duì)象會(huì)被放入entity包下面,并且使用setter/getter為實(shí)體對(duì)象增加讀寫能力

@Data

public?class?TFUser?{

????private?Integer?userId;

????private?String?userName;

}

在java里的entity就是一個(gè)class闰渔,我們可以通過這個(gè)class聲明變量

4.3 php示例

在php里席函,實(shí)體對(duì)象就是php的數(shù)組

$TFUser?=?array(

????'userId'=>35,

????'userName'=>"福哥"

);

4.4 python示例

在python里,實(shí)體對(duì)象就是dict(字典)

TFUser?=?{

????"userId":35,

????"userName":"福哥"

}

4.5 javascript示例

在javascript里澜建,實(shí)體對(duì)象就是object對(duì)象

var?TFUser?=?{

????userId:?0,

????userName:?"福哥"

};

5. 總結(jié)

了解了結(jié)構(gòu)層級(jí)向挖,就知道一個(gè)網(wǎng)站,一個(gè)軟件背后有多少代碼了炕舵,就可以大概估算出一個(gè)需求的工作量了,培養(yǎng)這個(gè)經(jīng)驗(yàn)對(duì)于評(píng)估項(xiàng)目復(fù)雜度跟畅,評(píng)估項(xiàng)目周期咽筋,是非常有幫助的。

理解數(shù)據(jù)結(jié)構(gòu)的意義徊件,熟練使用實(shí)體對(duì)象奸攻,有助于幫助我們?cè)O(shè)計(jì)我們的程序代碼結(jié)構(gòu)蒜危,在功能不斷更新迭代當(dāng)中也不會(huì)變得混亂不堪。

【20200919】編程基礎(chǔ)睹耐,結(jié)構(gòu)(Struct) 第 1 頁 - 鬼谷子叔叔的主頁 - 同福網(wǎng) - TONGFU.net

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末辐赞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子硝训,更是在濱河造成了極大的恐慌响委,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窖梁,死亡現(xiàn)場(chǎng)離奇詭異赘风,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)纵刘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門邀窃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人假哎,你說我怎么就攤上這事瞬捕。” “怎么了舵抹?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵山析,是天一觀的道長。 經(jīng)常有香客問我掏父,道長笋轨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任赊淑,我火速辦了婚禮爵政,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘陶缺。我一直安慰自己钾挟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布饱岸。 她就那樣靜靜地躺著掺出,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苫费。 梳的紋絲不亂的頭發(fā)上汤锨,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音百框,去河邊找鬼闲礼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的柬泽。 我是一名探鬼主播慎菲,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼锨并!你這毒婦竟也來了露该?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤第煮,失蹤者是張志新(化名)和其女友劉穎解幼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體空盼,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡书幕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了揽趾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片台汇。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖篱瞎,靈堂內(nèi)的尸體忽然破棺而出苟呐,到底是詐尸還是另有隱情,我是刑警寧澤俐筋,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布牵素,位于F島的核電站,受9級(jí)特大地震影響澄者,放射性物質(zhì)發(fā)生泄漏笆呆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一粱挡、第九天 我趴在偏房一處隱蔽的房頂上張望赠幕。 院中可真熱鬧,春花似錦询筏、人聲如沸榕堰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逆屡。三九已至,卻和暖如春踱讨,著一層夾襖步出監(jiān)牢的瞬間魏蔗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國打工勇蝙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沫勿,地道東北人挨约。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓味混,卻偏偏與公主長得像产雹,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子翁锡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容