學(xué)習(xí)啦 > 生活課堂 > 生活小常識(shí) > 結(jié)構(gòu)和類的區(qū)別是什么以及構(gòu)造函數(shù)

結(jié)構(gòu)和類的區(qū)別是什么以及構(gòu)造函數(shù)

時(shí)間: 志峰887 分享

結(jié)構(gòu)和類的區(qū)別是什么以及構(gòu)造函數(shù)

  對(duì)于學(xué)計(jì)算機(jī)的學(xué)生,結(jié)構(gòu)和類的區(qū)別是必須了解的。它們的區(qū)別是什么呢?下面是學(xué)習(xí)啦小編為大家準(zhǔn)備的結(jié)構(gòu)和類的區(qū)別,希望大家喜歡!

  傳說(shuō)中的結(jié)構(gòu)與類

  在高級(jí)語(yǔ)言編程里面我們都知道數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)有多種,比如單個(gè)的簡(jiǎn)單數(shù)據(jù)類型int、string、char,或則是使用數(shù)組存儲(chǔ)多個(gè)具有相同數(shù)據(jù)類型和語(yǔ)義的數(shù)據(jù)信息。但是在實(shí)際操作中我們操作的數(shù)據(jù)類型有很多,用以上兩種很多難于解決,于是就引出了今天要講的傳說(shuō)中的結(jié)構(gòu)。說(shuō)到結(jié)構(gòu)我們腦海中是不是有一個(gè)“類”的概念在飄,沒(méi)錯(cuò)結(jié)構(gòu)和類十分的相似,結(jié)構(gòu)和類一樣可以包含數(shù)據(jù)和方法的定義,可以包含構(gòu)造函數(shù)、常量、變量、方法、屬性等等。但是它們也存在這些許不同,包括用法、定義以及數(shù)據(jù)類型各個(gè)方面。

  結(jié)構(gòu)與類的區(qū)別

  1.結(jié)構(gòu)的定義

  1 [修飾符] struct [結(jié)構(gòu)名] [ : 接口名]

  2 {

  3 //結(jié)構(gòu)成員

  4 }

  2.結(jié)構(gòu)的構(gòu)造函數(shù)

  1 public struct Test

  2 {

  3 public Test()

  4 {

  5 //此方法編譯不會(huì)通過(guò),提示錯(cuò)誤消息“結(jié)構(gòu)不能包含顯示的無(wú)參數(shù)構(gòu)造函數(shù)”

  6 }

  7 }

  3.結(jié)構(gòu)的成員變量賦值

  1 struct Test

  2 {

  3 static int x = 1;

  4 static int y = x + 5;

  5 //以下兩句編譯錯(cuò)誤,在結(jié)構(gòu)中可以給結(jié)構(gòu)的靜態(tài)變量賦初值,但不允許給結(jié)構(gòu)的一個(gè)實(shí)例變量賦初值

  6 int m = 2;

  7 int n = m + 2;

  8 }

  4.創(chuàng)建對(duì)象的方法

  使用new運(yùn)算符來(lái)創(chuàng)建結(jié)構(gòu)對(duì)象

  直接用結(jié)構(gòu)類型的變量來(lái)創(chuàng)建結(jié)構(gòu)對(duì)象

  5.繼承

  不允許結(jié)構(gòu)從另外一個(gè)結(jié)構(gòu)或類繼承

  總結(jié)

  1.結(jié)構(gòu)是一種值數(shù)據(jù)類型,而類是一種引用類型

  2.在結(jié)構(gòu)中不允許定義無(wú)參數(shù)的構(gòu)造函數(shù)(編譯不會(huì)通過(guò))

  3.在結(jié)構(gòu)中可以給結(jié)構(gòu)的靜態(tài)變量賦初值,但不能給結(jié)構(gòu)的一個(gè)實(shí)例變量賦初值

  4.創(chuàng)建結(jié)構(gòu)對(duì)象可以不使用new關(guān)鍵字,直接用結(jié)構(gòu)類型的變量來(lái)創(chuàng)建

  5.不允許繼承(可以將結(jié)構(gòu)看成是密封的類)


猜你感興趣:

1.公文15個(gè)種類不同

2.2017年銀行一類二類三類賬戶規(guī)定

3.無(wú)線路由器加密三種安全類型有什么區(qū)別

4.品牌架構(gòu)的三種類型

5.15種公文類型區(qū)別在哪兒

1731518