c 獲取物件的唯一標識 C 類(Class)

2021-10-13 21:55:34 字數 4311 閱讀 3779

當你定義乙個類時,你定義了乙個資料型別的藍圖。這實際上並沒有定義任何的資料,但它定義了類的名稱意味著什麼,也就是說,類的物件由什麼組成及在這個物件上可執行什麼操作。物件是類的例項。構成類的方法和變數稱為類的成員。

類的定義是以關鍵字class開始,後跟類的名稱。類的主體,包含在一對花括號內。下面是類定義的一般形式:

classclass_name

<returntype> method2(parameter_list)

...<returntype> methodn(parameter_list)

}請注意:

下面的例項說明了目前為止所討論的概念:

doublelength; // 長度publicdoublebreadth; // 寬度publicdoubleheight; // 高度

}classboxtester

", volume);// box2 的體積

volume = box2.height * box2.length * box2.breadth;

console.writeline("box2 的體積: ", volume);

console.readkey();}}

}當上面的**被編譯和執行時,它會產生下列結果:

box1 的體積: 210

box2 的體積: 1560

類的成員函式是乙個在類定義中有它的定義或原型的函式,就像其他變數一樣。作為類的乙個成員,它能在類的任何物件上操作,且能訪問該物件的類的所有成員。

成員變數是物件的屬性(從設計角度),且它們保持私有來實現封裝。這些變數只能使用公共成員函式來訪問。

讓我們使用上面的概念來設定和獲取乙個類中不同的類成員的值:

doublelength; // 長度privatedoublebreadth; // 寬度privatedoubleheight; // 高度publicvoidsetlength(doublelen )

publicvoidsetbreadth(doublebre )

publicvoidsetheight(doublehei )

publicdoublegetvolume()

}classboxtester

" ,volume);// box2 的體積

volume = box2.getvolume();

console.writeline("box2 的體積: ", volume);

console.readkey();}}

}當上面的**被編譯和執行時,它會產生下列結果:

box1 的體積: 210

box2 的體積: 1560

類的建構函式是類的乙個特殊的成員函式,當建立類的新物件時執行。

建構函式的名稱與類的名稱完全相同,它沒有任何返回型別。

下面的例項說明了建構函式的概念:

doublelength; // 線條的長度publicline()

publicvoidsetlength(doublelen )

publicdoublegetlength()

staticvoidmain(stringargs)

", line.getlength());

console.readkey();}}

}當上面的**被編譯和執行時,它會產生下列結果:

物件已建立

線條的長度: 6

預設的建構函式沒有任何引數。但是如果你需要乙個帶有引數的建構函式可以有引數,這種建構函式叫做引數化建構函式。這種技術可以幫助你在建立物件的同時給物件賦初始值,具體請看下面例項:

doublelength; // 線條的長度publicline(doublelen) // 引數化建構函式

", len);

length = len;

}publicvoidsetlength(doublelen )

publicdoublegetlength()

staticvoidmain(stringargs)

", line.getlength());// 設定線條長度

line.setlength(6.0);

console.writeline("線條的長度: ", line.getlength());

console.readkey();}}

}當上面的**被編譯和執行時,它會產生下列結果:

物件已建立,length = 10

線條的長度: 10

線條的長度: 6

類的析構函式是類的乙個特殊的成員函式,當類的物件超出範圍時執行。

析構函式的名稱是在類的名稱前加上乙個波浪形(~)作為字首,它不返回值,也不帶任何引數。

析構函式用於在結束程式(比如關閉檔案、釋放記憶體等)之前釋放資源。析構函式不能繼承或過載。

下面的例項說明了析構函式的概念:

doublelength; // 線條的長度publicline() // 建構函式

~line() //析構函式

publicvoidsetlength(doublelen )

publicdoublegetlength()

staticvoidmain(stringargs)

", line.getlength()); }}

}當上面的**被編譯和執行時,它會產生下列結果:

物件已建立

線條的長度: 6

物件已刪除

我們可以使用static關鍵字把類成員定義為靜態的。當我們宣告乙個類成員為靜態時,意味著無論有多少個類的物件被建立,只會有乙個該靜態成員的副本。

關鍵字static意味著類中只有乙個該成員的例項。靜態變數用於定義常量,因為它們的值可以通過直接呼叫類而不需要建立類的例項來獲取。靜態變數可在成員函式或類的定義外部進行初始化。你也可以在類的定義內部初始化靜態變數。

下面的例項演示了靜態變數的用法:

staticintnum;publicvoidcount()

publicintgetnum()

}classstatictester

", s1.getnum());

console.writeline("s2 的變數 num: ", s2.getnum());

console.readkey();}}

}當上面的**被編譯和執行時,它會產生下列結果:

s1 的變數 num: 6

s2 的變數 num: 6

你也可以把乙個成員函式宣告為static。這樣的函式只能訪問靜態變數。靜態函式在物件被建立之前就已經存在。下面的例項演示了靜態函式的用法:

staticintnum;publicvoidcount()

publicstaticintgetnum()

}classstatictester

", staticvar.getnum());

console.readkey();}}

}當上面的**被編譯和執行時,它會產生下列結果:

變數 num: 3

C 用Guid獲取不規則的唯一值 標識

在實際的設計當中,我們往往在許多地方需要用到不規則的唯一值 標識 比如在購物車id 資料標識 訊息佇列的標識等等。c 為我們提供了乙個guid,可以輕鬆的獲取到不規則的唯一值 標識 具體的方法如下 using system private static void creatguid 下面來寫乙個生成...

獲取iOS裝置的唯一標識

1.已禁用 uidevice uniqueidentifier 2.mac位址不能再用來設別裝置 還有乙個生成ios裝置唯一標示符的方法是使用ios裝置的media access control mac 位址。乙個mac位址是乙個唯一的號碼,它是物理網路層級方面分配給網路介面卡的。這個位址蘋果還有其...

iOS 獲取裝置的唯一標識

從而避免手機陷入再次試用軟體的麻煩中。但是,在二手的 iphone 手機中卻再次產生問題。無論初次使用的是何種軟體,免費試用階段結束後 僅限新使用者享用的優惠條款將無法供手機的新主人再次使用。即使對 iphone 進行初始化操作,手機也會預設儲存各項資料,轉讓與 並不會改變 iphone 的使用狀態...