程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#與JAVA之比較(2)

C#與JAVA之比較(2)

編輯:關於C語言

3. 屬性(Property)

屬性的概念對大家來說應該是很熟悉的,類成員函數可以自由地訪問本類? 任何屬性成員。不過若要從一個類中去訪問另一個類中的屬性,那就比較麻煩了,所以很多時候我們使用Getxxx和Setxxx方法,這樣看起來顯得極不自然,比如用Java或者C++,代碼是這樣的:

foo.setSize (getSize () + 1);

label.getFont().setBold (true);

但是,在C#中,這樣的方法被“屬性化”了。同樣的代碼,在C#就變成了:

foo.size++;

label.font.bold = true;

可以看出來,C#顯然更容易閱讀和理解。我們從這個“屬性方法”的子程序代碼中,也可以看到類似情況:

Java/C++:

public int getSize()
{
   return size;
}
public void setSize (int value)
{
   size = value;
}
C#:
public int Size
{
  get{return size;}
  set{size = value;}
}

為了區分這種屬性化的方法和類的屬性成員,在C#中把屬性成員稱作“域(fIEld)”,而“屬性”則成為這種“屬性化的方法”專用的名詞。順便說一句,其實這樣的屬性化方法在VB和Delphi中是經常碰到的,在VB中它也就叫屬性。

另外,在C#中Get和Set必須成對出現,一種屬性不能只有Get而沒有Set(在Java和C++中就可以只有Get或者只有Set),C#中這樣做的好處在於便於維護,假如要對某種屬性進行修改,就會同時注意Get和Set方法,同時修改,不會改了這個忘了那個

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved