在Monkey C 跟java一樣有static
只要class的成員常數前加了static
要使用class內的這個常數時,就不需要先建立instance才能使用,
而是可以直接呼叫使用這個常數
class Test {
static const LUCKY_NUM = 777;
}
System.println("myNum:"+Test.LUCKY_NUM); // Prints myNum:777
此外,跟java一樣,前面加了static的變數是可以共用的,
也就是只要在一個instance修改了一個static變數的值,
即便new了一個新的instance,這個static變數也會跟上一個instance的值一樣
class BananaBunch {
static var mNumberOfBananas = 10;
}
var bunchOne = new BananaBunch();
var bunchTwo = new BananaBunch();
System.println(bunchOne.mNumberOfBananas); // 10
System.println(bunchTwo.mNumberOfBananas); // 10
bunchOne.mNumberOfBananas = 12;
System.println(bunchOne.mNumberOfBananas); // 12
System.println(bunchTwo.mNumberOfBananas); // 12
在Monkey C ,物件存取權限只有三個層級:public、protected、private
public : 所有範圍皆可使用
protected : 只有class自身跟有繼承這個class的子class可以使用,等同hidden
private : 只有class自身內部可以使用
我原本以為在Monkey C是沒有在限制存取範圍的語言,
結果仔細一看,其實還是有的
不過跟java不一樣的地方在於,Monkey C 的default就是public,
而不是像java一樣defalut跟public有著不同的存取權限,
並且存取權限的修飾子能只作用在class的成員變數,
所有的class本身永遠都會是public,沒辦法再做調整。