轉自:
http://www.java265.com/JavaCourse/202206/3755.html
下文筆者講述java中內部類的簡介說明內部類簡介
我們將定義在類中的類稱之為“內部類”例:
public class User{
//內部類
public class run{
}
}
內部類的使用場景及功能
當一個物件內部
還擁有一個完整的結構時,內部結構同時為外部結構服務
那么內部完整結構,可使用內部類設計
內部類注意事項:
1.內部類通常可以方便訪問外部類的成員,包括私有的成員
2.內部類提供了更好的封裝性
內部類本身就可以用private protectecd等修飾
封裝性可以做更多控制,
內部類的分類
靜態內部類 成員內部類(非靜態內部類) 區域內部類 匿名內部類
靜態內部類簡介
有static修飾
屬于外部類本身
如:
public class outer{
//靜態內部類
public class static inner{
}
}
靜態內部類創建物件的格式
外部類名.內部類名 物件名 = new 外部類名.內部類名();
例:
public class user {
public static String name = "劉暢";
public static class score{
private String name ;
private int price;
public score() {
}
public score(String name, int price) {
this.name = name;
this.price = price;
}
public void buy(){
System.out.println(user.name+"購買了"+this.name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
}
//main方法
user.score m = new user.score("貓貓",300);
m.buy();
靜態內部類可以訪問外部類的靜態成員 但是不能訪問外部類的實體成員 因為實體成員是由物件創建的 內部類無法找到 除非在內部類中new一個物件 進行間接的訪問
成員內部類簡介
無static修飾
屬于外部類的物件
//格式
public class outer{
public class inner{
}
}
成員內部類創建物件的語法:
外部類名.內部類名 物件名 = new 外部構造器.new內部構造器();
outer.inner in = new outer().new inner();
例:
public class user {
public static String name1 = "劉暢";
private String name2 ;
public class score{
private String name ;
private int price;
public void buy(){
System.out.println(user.name1+"購買了"+this.name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
}
//main方法
user.score m = new user().new score();
m.setName("奧特曼");
m.buy();
區域內部類簡介
區域內部類放在方法、代碼塊、構造器等執行體中
區域內部類的類檔案名:
外部類$N內部類.class
例:在方法test中定義類
class 類名{
}
匿名內部類
將定義在方法中,代碼塊中等
并且沒有類名,我們將這種類稱之為“匿名內部類”
匿名內部類的用途:
方便創建子類物件,簡化代碼撰寫
new 類名|抽象類名|或者介面名(){
重寫方法;
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/492477.html
標籤:其他
上一篇:Python批量匯出word檔案中的圖片、嵌入式檔案
下一篇:Python雙人五子棋
