Java物件導向專題(五)

2021-09-10 19:59:18 字數 2973 閱讀 3196

修飾符內部類

區域性內部類

匿名內部類

其實就是資料夾

舉例:方案1:按功能分:

方案2:按模組分:

package 包名;

多級分包用 . 分開

乙個檔案中,下列語句包含的數量:

package:只能有乙個

import:可以有多個

class:可以有多個,但建議乙個

本類同乙個包下(子類和無關類)

不同包下(子類)

不同包下(無關類)

privatey預設

yyprotectedyy

ypublicyy

yy這四種許可權修飾符在任意時刻只能出現一種.

說明:y表示許可權修飾符修飾的變數或方法對其他類是可使用的,否則不可直接使用。

把類定義在其他類的內部,這個類被稱為內部類

舉例:在類a中定義了乙個類b,類b就是內部類

例子:

class outer

} public void method()

}

例子:

class outer

public void method() }

}

class body

} //外部類要提供使用內部類的方法

public void method()

}//呼叫

body b = new body();

b.method();

class outer	}}

class innerclassdemo

}

class outer

public static void show2()

} }

class innerclassdemo

}

要求填空,使分別輸出30 ,20 ,10。

class outer	}	

}class innerclassdemo

}

答案:

① num

② this.num

③ new outer().num 或者 outer.this.num

注意:

1、內部類和外部類沒有繼承關係

2、通過外部類名限定this物件:outer.this

例子:

class outer

} inner i = new inner();

i.show(); }

}class innerclassdemo

}

匿名內部類是內部類的簡化寫法。

本質是乙個繼承了父類或者實現了介面的子類匿名物件

存在乙個類或者介面

這裡的類可以是抽象類或者具體類

new 類名或者介面名();
例子1:(介面只有乙個抽象方法的情況)

inte***ce inter

class outer

};//無列印任何結果

*/new inter()

}.show; //再呼叫show方法即可列印出資訊 }}

class outerdemo

}

例子2:(介面有兩個或多個抽象方法的情況)

inte***ce inter

class outer

public void method()

@override

public void show2()

};inter.show();

inter.show2(); }}

public class innerclassdemo

}

在開發過程中,會遇到抽象類或者介面作為引數的方法,此時需要的實際引數是乙個子類物件或者實現類物件

如果該方法僅僅呼叫一次,則可以使用匿名內部類的格式簡化。

例子:(注意比較使用匿名物件和使用匿名內部類的區別)

inte***ce person

class persondemo

}class student implements person

}public class innerclasstest

});}}

使用匿名物件,需要先用介面的實現類重寫介面方法,然後利用多型例項化介面,可重複多次使用實現類建立物件。

使用匿名內部類,只需直接建立匿名物件並直接重寫介面方法即可,只能使用一次。

按照要求補齊**,要求在控制台輸出「helloworld」

inte***ce inter

class outer

class outerdemo

}

答案:

public static inter method()

};}

分析:

1、outer.method()可以看出method()應該是outer中的靜態方法

2、outer.method().show()可以看出method()方法的返回值是乙個物件。由於介面inter中有個show()方法,故認為method()方法的返回值型別是乙個介面。

Java物件導向(五)

類間關係 1.1 this與super 繼承關係圖 當子類建立物件後,該子類物件本身可以使用this來指代,該物件當助的父類物件空間可以使用super指代。public class person public person string name,int age getters和setters省略 ...

Java基礎之物件導向(五)

一 介面 inte ce 1 概念 指用inte ce關鍵字修飾的一種型別 介面型別。他用於描述一系列功能性的方法,並讓子類實現。2 內容 1 介面不能有屬性,只能有被static final修飾的屬性及靜態常量。2 介面只能有抽象方法,不能有具體的方法。3 介面沒有構造器,所以不能建立物件,只能通...

Java基礎 物件導向(五)多型

一 概述 物件的多型性 class 動物 class 貓 extends 動物 class 狗 extends 動物 class demo 貓這類食物既具備貓的形態,又具備動物的形態。這就是多型性。簡單說 就是乙個物件對應著不同型別 提高了 的擴充套件性,前期定義的 可以使用後期的內容。abstra...