形式參數和返回值問題
形式參數
基本類型:
形式參數的改變對實際參數沒有影響(String是引用類型和基本數據類型的效果一樣String s ="abc")
引用類型:
具體類:如果形式參數是一個具體類,那麼需要創建該類對象
抽象類:如果形式參數是抽象類的情況,那麼需要自定義一個抽象類的子類,來進行實例化(創建對象)!,創建對象的實質:抽象類多態!
接口:那麼需要自定義一個接口的子實現類,然後通過接口多態的形式給接口進行實例化!(接口多態!
由於接口不能實例化,需要定義接口的子實現類)
返回值類型
基本類型
引用類型
具體類:直接返回該類對象(實際開發中使用的是匿名對象)
抽象類:返回值如果是抽象類,需要的返回是該抽象類的子類對象
接口:返回值如果是接口類型,需要的是返回該接口的子實現類對象,通過子實現類進行實例化。
3:內部類的概述及訪問特點
概念: 在一個類中定義另一個類,那麼把這種情況稱爲內部類
內部類是直接可以訪問外部類的成員,無論是局部內部類還是成員內部類(一般指非靜態)包括私有
外部類想要訪問內部類的成員,必須通過創建內部類的對象訪問該內部類的成員
格式:
外部類名.內部類名.對象名 = 外部類對象.內部類對象
class Outer{
//外部類的成員變量
public int num = 100 ;
private int num = 20 ;//內部類可以訪問私有外部類成員變量
//內部類
class Inner{
//內部類的成員方法
public void show(){
System.out.println(num);
}
}
//外部類的成員方法
public void method(){
//創建內部類對象
Inner i = new Inner() ;
i.show() ;
}
}
4:內部類的分類
成員內部類:在外部類的成員位置
局部內部類:在外部了的局部位置定義的這個類
關係如下:
//外部類
class Outer2{
//外部類的成員變量
public int num = 100 ;
//成員內部類
class Inner2{
}
//外部類的成員方法
public void method(){
//局部位置
class Inner2{
}
}
}
匿名內部類是內部類的簡化版格式。
前提條件:
必須存在一個接口或者是一個類(可以是具體類,也可以是一個抽象類)
書寫格式:
new 接口名或者類名(){
方法重寫;
}
匿名內部類面試題:
按照要求,補齊代碼
interface Inter { void show(); }
class Outer { //補齊代碼 }
class OuterDemo {
public static void main(String[] args) {
Outer.method().show();
}
}
要求在控制檯輸出”HelloWorld”
/*按照要求,補齊代碼
interface Inter { void show(); }
class Outer { //補齊代碼 }
class OuterDemo {
public static void main(String[] args) {
Outer.method().show();
}
}
要求在控制檯輸出”HelloWorld”*/
package org.west_09_匿名內部類面試題;
interface Inter {
public abstract void show();
}
class Outer { //補齊代碼
public static Inter method() {
//返回值是一個接口
return new Inter() {
@Override
public void show() {
System.out.println("HelloWorld");
}
};
}
}
class OuterDemo {
public static void main(String[] args) {
Outer.method().show();
/* method能被類名調用 說明方法是靜態的(static)
method能調用show 說明返回一個對象*/
}
}