首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 屬性 get/set 與 Java 字段的異同

     編輯:程式設計綜合問答

C# 屬性 = 編譯器生成的 get/set 方法對

// C# 簡寫屬性
public string Name { get; set; }

// 編譯器展開為
private string _name;
public string get_Name() => _name;
public void set_Name(string value) => _name = value;

Java 手寫等價代碼

// Java
private String name;
public String getName() { return name; }
public void setName(String name) { this.name = name; }

差異點

特性C# 屬性Java 字段 + 方法
語法簡潔度極高(自動屬性一行)需手寫 6-8 行
封裝控制get; private set; 等訪問級別方法訪問修飾符控制
驗證邏輯在 set { if(v<0) throw; _x=v; } 中編寫在 setX 方法中編寫
反射獲取PropertyInfoMethod (getX/setX)
調試體驗視為字段,可直接 Watch需調用方法

本質上功能等價,C# 屬性為語法糖,減少樣板代碼,提升可讀性與維護性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved