結(jié)構(gòu)和類的區(qū)別是什么以及構(gòu)造函數(shù)
結(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ū)別,希望大家喜歡!
傳說中的結(jié)構(gòu)與類
在高級(jí)語言編程里面我們都知道數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)有多種,比如單個(gè)的簡(jiǎn)單數(shù)據(jù)類型int、string、char,或則是使用數(shù)組存儲(chǔ)多個(gè)具有相同數(shù)據(jù)類型和語義的數(shù)據(jù)信息。但是在實(shí)際操作中我們操作的數(shù)據(jù)類型有很多,用以上兩種很多難于解決,于是就引出了今天要講的傳說中的結(jié)構(gòu)。說到結(jié)構(gòu)我們腦海中是不是有一個(gè)“類”的概念在飄,沒錯(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ì)通過,提示錯(cuò)誤消息“結(jié)構(gòu)不能包含顯示的無參數(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)算符來創(chuàng)建結(jié)構(gòu)對(duì)象
直接用結(jié)構(gòu)類型的變量來創(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)中不允許定義無參數(shù)的構(gòu)造函數(shù)(編譯不會(huì)通過)
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)類型的變量來創(chuàng)建
5.不允許繼承(可以將結(jié)構(gòu)看成是密封的類)
猜你感興趣: