內部類: 在乙個類的內部定義另外乙個類,那麼另外乙個類則稱作為內部類 。
內部類的class檔名: 外部類$內部類.class
成員內部類:
成員內部類的訪問方式:
方式一: 在外部類提供乙個方法建立內部類的物件進行訪問。
方式二:在其他類中直接建立內部的物件進行訪問。
格式:
外部類.內部類 變數名 = new 外部類().new 內部類();
注意:靜態成員內部類在其他類建立物件的格式:
外部類.內部類 變數名 = new 外部類.內部類();
內部類的好處: 直接訪問外部類的所有成員。
應用場景: 我們在描述a事物的時候,a事物內部還維護了另外乙個b事物,
而且b事物還必須 要訪問到a事物的成員,那麼這時候我們就可以使用內部類描述b事物。
比如: 人– 心臟 . 圖形化介面程式設計
成員內部類要注意的細節:
1. 內部類可以直接訪問外部類的所有成員。
2. 內部類與外部類存在同名的成員時, 在內部類中預設是訪問內部類的成員, 可以通過"外部類.this.成員"進行指定訪問外部類的成員。
3. 私有的成員內部類只能通過在外部類提供乙個公共的方法進行訪問。 在其他類無法訪問。
4. 如果乙個成員內部類定義了靜態的成員,那麼該類也必須使用static修飾。
疑問:為什麼如果乙個成員內部類定義了靜態的成員,那麼該類也必須使用static修飾 ???
靜態的成員變數是不依賴物件而存在的
class outer
}//外部類
public
void
newinstance()
}//其他類
class demo7
}
區域性內部類:在乙個方法內部定義的類稱作為區域性內部類。
區域性內部類要注意的細節:
1. 如果區域性內部類要訪問區域性變數,那麼區域性變數必須使用final去修飾。
class outer
}//建立乙個區域性內部類物件
inner inner = new inner(); // inner物件的生命週期比y的生命週期要長
inner.show();
}}class demo8
}
匿名內部類:沒有類名的內部類就稱作為匿名內部類。
匿名內部類的好處: 簡化書寫。
匿名內部類的使用前提: 必須存在繼承或者實現的關係。
注意的事項:
1. 匿名內部類只是沒有類名而已,其他的一切成員都是具備的。
需求: 定義乙個區域性內部類繼承animal,建立物件呼叫run方法。
abstract class animal
class outer
public void sleep()
}//建立區域性內部類的物件
fish f = new fish();
f.run();
f.sleep();
*///匿名內部類只是沒有類名而已,其他的一切成員都是具備的。
//多型
animal f = new animal()
public
void
sleep()
};f.run();
f.sleep();
}}class demo9
}
class person
}inte***ce dao
class outer
}.eat();
}//實現關係下的匿名內部類
public
void
show()
}.add();
}}class demo10
}
throwable常用的方法:
1. tostring() 返回的是用於描述該異常情況的類的完整類名。 包名+ 類名 = 完整類名。
2. getmessage() 返回建立throwable物件的時候傳入的訊息字串的,
3. printstacktrace() 列印異常的棧資訊。
class demo11
public
static
void test()
}
—-| throwable
———| error 錯誤一般都是由於jvm或者是硬體引發的問題,所有一般都不會通過**去處理。
———| exception 異常 如果程式出現了異常,那麼一般就需要通過**去處理了。
疑問:程式出現了不正常情況,我怎麼能區分到底是錯誤還是異常呢?
如果不正常情況的訊息是以error結尾的,那麼則代表了這是乙個錯誤,
如果不正常情況的訊息是以exception結尾的,那麼則代表是乙個異常。
JAVASE入門基礎知識整理筆記篇(十一)
位元組輸出流 outputstream 此抽象類是表示輸出位元組流的所有類的超類 fileoutputstream檔案輸出流是用於將資料寫入 file 嘗試 檔案的拷貝 資料來源 程式 目的地 io 目的 讀寫檔案中的內容 流 一連串流動的資料,先進先出的方式傳輸資訊,管道 資料來源 目的地 以程式...
JavaSe基礎(4) 陣列
如果需要儲存100個學員的成績,如何做?int a 12 int b 13 int c 14 int d 15 定義100個變數?no,我們可以使用陣列 一組具有相同資料型別的有序的集合 資料結構 a 陣列的長度固定 一旦定義就不可以改變 不可改變 b 陣列中的元素可以基本資料型別 也可以是引用資料...
Java SE 基礎 集合(1)
1.儲存物件可以考慮 陣列 集合 2.陣列儲存物件的弊端 一旦建立,其長度不可變 3.集合 分為 collection 和 map 兩種體系。collection 介面 set 元素無序 不可重複的集合 list 元素有序 可重複的集合 map 介面 具有對映關係 key value對 的集合。co...