mzy對於列舉的理解

2022-06-01 22:39:13 字數 1122 閱讀 2172

關於enum,其實就是簡化了的class,功能就是提供乙個個獨立的、特定含義的常量!

在jdk5.0之前我們想模擬enum的功能,只能使用自定義類的形式:

1.首先私有化構造方法,讓外部不能new物件。

2.在類內部new多個final的成員變數,讓每個成員變數代表特殊含義(可以私有乙個帶引數的構造方法,提供乙個私有屬性,對外提供乙個get方法)。

如下:

class score  // 私有化構造方法,不能讓使用者隨意構造物件,固定了四個等級

public string gets()

public static final score a = new score("100-90");

public static final score b = new score("89-80");

public static final score c = new score("79-70");

public static final score d = new score("69-60");

public static final score e = new score("59-0");

@override

public string tostring()

}

在jdk5.0之後,enum的的出現,更加的靈活:

這裡的a、b、c... 對應上面理解就比較容易了!

enum score 

public string gets()

// enum不能重寫tostring

}

同時,enum提供乙個values方法,可以同時獲得所有的屬性!

package b_enum;

/** * 發現乙個有意思的事情,在所有花括號後面加分號都不會報錯!

* 發現其實是可以加分號的,但是我們習慣省略了,因為花括號就已經是乙個整體;

* 是一段獨立的內容了!

* 所以一般我們省略分號,並不會這樣去寫:main() {}; class test{};

* @author mzy

*/public class demo01

}}

對於STL的理解

stl standard template library stl是一些 容器 的集合,這些 容器 有list,vector,set,map等,stl也是演算法和其他一些元件的集合。這裡的 容器 和演算法的集合指的是世界上很多聰明人很多年的傑作。stl的目的是標準化元件,這樣就不用重新開發,可以使用...

對於ftok的理解

回顧了一下以前的實驗,一直不理解為什麼在訊息佇列中要使用ftok,比如下面的乙個例項 if key ftok a 1 qid msgget key,ipc creat 0666 建立乙個訊息佇列 if qid 0 printf created queue id d n qid 輸出訊息佇列的id 要...

對於Zookeeper的理解

zookeeper是google 的chubby乙個開源的實現,是hadoop 的分布式協調服務。它包含乙個簡單的原語集,分布式應用程式可以基於它實現同步服務,配置維護和命名服務等。zookeeper包括乙個leader和多個follower。為什麼使用zookeeper?大部分分布式應用需要乙個主...