JAVASE基礎(十一)

2021-08-06 06:37:35 字數 2473 閱讀 3292

內部類: 在乙個類的內部定義另外乙個類,那麼另外乙個類則稱作為內部類 。

內部類的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...