-
屌,你的價格沒有分配,大哥,當然預設值是0。將段落寫入 ticket 類的建構函式中。
if(distance>=0&&distance<100)price = distance*;
else if(distance>=100&&distance<200)
price = distance *
else if(distance>=200&&distance<300)
price = distance *
elseprice = distance *
-
私有字段不能在類外操作,int 型別預設為 0,宣告類時沒有提供建構函式來設定私有字段,因此在例項化時通過屬性設定值; 您可以將 private 更改為 public,輸出將是正確的。
-
標準類應由字段、屬性、建構函式和方法組成。
欄位和屬性是全域性的,這意味著您可以在類中的任何地方使用它們,這與在乙個方法中宣告變數而不能直接在另乙個方法中宣告變數不同。
首先,您必須告訴房東有關欄位和屬性的資訊。 簡單地說,屬性是公共的,欄位是私有的。 也就是說,當你例項化這個類的物件時,你可以直接獲取屬性,但不能獲取字段。
而且屬性是用來修改欄位的,也許房東覺得這裡很奇怪,為什麼不直接暴露欄位呢? 你必須繞著乙個房地產圈子轉一圈嗎? 這是為了避免欄位的值不合規。
讓我們舉個例子。
學生,年齡(整數),如果給年齡賦值-1,是不是不合理? 因此,向控制項新增乙個屬性,為該屬性賦值 -1,發現它沒有意義,因此該屬性為字段分配乙個預設值(例如 0)。
但在實踐中,你不必完全這樣做,你可以控制**中的輸入範圍(例如在介面中),這樣你就可以直接暴露字段。
回到房東說的,有沒有可能理解所有資料成員都是字段。 由於資料成員屬於字段,因此值型別資料和引用型別資料的成員自然屬於字段。 值型別和引用型別只是此字段的資料型別。
-
字段只是乙個定義,可以說資料成員都是字段。 欄位是型別化的,可以是值,也可以是引用,但不能說型別屬於字段。 就像你說鋼鐵屬於汽車一樣。
-
屬性和字段之間的區別:
在 C 語言中,我們可以非常自由且不受限制地訪問公共字段,但在某些情況下,我們可能希望限制只能分配給特定範圍欄位的值,或者要求欄位是唯讀或只寫的,或者在更改欄位時更改物件的其他一些狀態, 這不能單獨由字段來完成,所以我們有屬性,其中包含兩個塊:set 和 get,set 塊負責寫入屬性,get 塊負責讀取屬性。在這兩個塊中,您可以執行一些其他操作,例如驗證分配的值是否滿足集合中的要求,並決定是否分配該值。
當缺少其中乙個塊時,該屬性只能被讀取或寫入,並且集合和 get 塊中必須有乙個屬性,因為有乙個無法讀取或寫入的屬性是沒有意義的。
class myclass
set }}
1)可以保證屬性是安全的,當本類中不使用時,可以保證使用屬性名,避免使用欄位名。
2)屬性的set和get函式可以限制欄位的某些函式,以達到一定的目的。如:
private int a=0;
public int a
set}3)屬性沒有儲存資料的功能,資料儲存在字段中,所以只能更改欄位的資料,屬性的值沒用。
-
讓我們看一下 msdn 文件中對它的描述:
公共語言執行庫允許您新增稱為屬性的類似關鍵字的描述性宣告。 它對程式中的元素進行批註,例如型別、字段、方法和屬性。 屬性和 Microsoft
.NET Framework 檔案的元資料儲存在一起,可用於向執行時描述您的 **,或在程式執行時影響應用程式的行為。
功能用於處理各種問題,例如序列化、程式的安全功能、阻止實時編譯器優化程式以使其易於除錯等。
例如,如果我們要描述乙個可以序列化的類,它應該:
public class test
例如,我們想要描述乙個已被棄用的屬性(例如,它在早期版本中使用過,但在舊版本的介面中已被棄用,並且出於相容性原因仍保留宣告,而不是簡單地刪除 ** 部分)。
class test}
-
告訴編譯器如何編譯,例如 Web 伺服器