內部類1.可以用來修飾乙個類
2.可以用來修飾乙個方法
3.可以用來修飾乙個區域性變數
4.可以用來修飾乙個成員變數
當final關鍵字用來修飾乙個類的時候,格式:
public final class 類名稱
含義:當前這個類不能有任何的子類。
其中所有的成員方法都無法覆蓋重寫。
當final關鍵字用來修飾乙個方法的時候,格式
修飾符 final 返回值型別 方法名稱(引數列表)
對於類、方法來說,abstract關鍵字和final關鍵字不能同時使用,因為矛盾。抽象方法需要重寫,final關鍵字不被能重寫。
public
final
class
fu/*public abstract final void method()//錯誤寫法*/
}
public
class
zi/* extends fu*/
}
對於成員變數來說,如果使用final關鍵字修飾,那麼這個變數也照樣是不可變
1.由於成員變數具有預設值,一旦用了final關鍵字之後,必須手動賦值。
2.對於final的成員變數,要麼直接賦值,要麼通過構造方法賦值。二者選其一。
3.必須保證類當中所有過載的構造方法,最終會對final的成員變數進行賦值。
成員變數
public
class
person
public
person
(string name)
public string getname()
/*public void setname(string name) */
}
區域性變數
public
class
final
}
內部類
分類:1.成員內部類
2.區域性內部類(包含匿名內部類)
成員內部類的定義格式
修飾符 class 類名稱
//....
} 注意:內用外,隨意訪問:外用內,需要內部類物件。
***********************************
如何使用成員內部類?有兩種方式:
1.間接方式:在外部類的方法當中,使用內部類;然後main只是呼叫外部類的方法。
2.直接方式,公式:
類名稱 物件名 = new 類名稱();
外部類名稱.內部類名稱 物件名 = new 外部類名稱().new 內部類名稱();
public
class
body
public
void
setname
(string name)
public
class
heart
}public
void
methodbody()
}
//如果出現了重名現象,那麼格式是:外部類名稱.this.外部類成員變數名
public
class
outer
}}
public
class
outerclass
}
如果乙個類是定義在乙個方法內部的,那麼這就是乙個區域性內部類。
「區域性」:只有當前所屬的方法才能使用它,出了這個方法外面就不能用了。
定義格式:
修飾符 class 外部類名稱
}}
public
class
inner
} inner1 inner1 =
newinner1()
; inner1.
methodinner()
;}}
如果介面的實現類(或者是父類的子類)只需要使用唯一的一次
那麼這種情況下就可以省略掉該類的定義,而改為使用【匿名內部類】
匿名內部類的定義格式:
介面名稱 物件名 = new 介面名稱();
另外還要注意幾點問題:
1.匿名內部類在建立物件的時候,只能使用唯一一次。如果希望多次建立物件,而且內容一樣的話,
那麼就必須使用單獨定義的實現類。
2.匿名物件,在【呼叫方法】的時候,只能呼叫唯一一次。
如果希望同乙個物件,呼叫多次方法,那麼必須給物件起個名字。
3.匿名內部類是省略了【實現類/子類名稱】,但是匿名物件是省略了【物件名稱】
public
inte***ce
myinte***ce
public
class
myinte***ceimp
implements
myinte***ce
}
public
class
impmyinte***ceimp};
inte***ce.
method()
;//匿名內部類重寫方法
myinte***ceimp myinte***ceimp =
newmyinte***ceimp()
};myinte***ceimp.
method()
;//這裡重寫了
newmyinte***ce()
}.method()
;//匿名物件匿名內部類
}}
final關鍵字和內部類
1.final關鍵字 final關鍵字表示不可改變的,最終的意思用於修飾變數方法和類。當final關鍵字修飾變數時,表示該變數是不可改變的量,即常量。當final關鍵字修飾方法的,是該方法不可被子類重寫,即最終方法。當final關鍵字修飾類時,而是開立不可被子類繼承,即最終類。2.內部類 在乙個類的...
static關鍵字和final關鍵字
static記住幾點 1.優先順序高,載入優先物件例項化 2.在記憶體中只分配一次 3.屬於類本身,所有例項共享,一處變,處處變 4.1 static不能訪問沒有static修飾的方法 因為不認識,物件例項後才能在外部使用方法 2 可以訪問static塊 3 未加static的方法可以訪問stati...
abstract關鍵字和final關鍵字
abstract類和abstract方法 用關鍵字abstract修飾的類 方法 稱為abstract類 方法 抽象類,抽象方法。對於abstract方法,沒有方法體,且以 結尾,且不允許使用final和abstract同時修飾乙個類或者方法,因為被abstract修飾的話,就無法被繼承 abstr...