內部類是一種類的結構擴充,讓乙個類的內部除了屬性與方法之外還可以存在有其它類的結構,並且內部類也可以定義在方法或**塊中,但是從開發的角度來講,要盡量避免使用內部類,優先考慮普通類。
乙個內部類的例子
class outer
} public void fun()
}public class testdemo
}
那內部類有什麼用呢?
1. 內部類有乙個最大的優點:可以直接訪問外部類的私有屬性和方法,避免了物件間的過多的傳遞引用。需要注意的是,外部類同樣也可以訪問內部類的私有屬性
例:訪問內部類的私有屬性
class outer
} public void fun()
}public class testdemo
}
例項化內部類物件
內部類需要使用外部類中的屬性,而所有的屬性只有在物件例項化之後才會分配空間,所以在例項化內部類物件時首先要例項化外部類物件。
內部類例項化語法:
外部類.內部類 物件 = new 外部類().new 內部類();
class outer }}
public class testdemo
}
使用static定義內部類
使用static定義的屬性或者是方法是不受到類例項化物件控制的,所以如果使用了static定義內部類。它一定不可能受到外部類的例項化物件控制。
如果乙個內部類使用了static定義的話,那麼這個內部類就變為了乙個「外部類」,並且只能夠訪問外部類中定義的static操作。相當於定義乙個外部類
class outer
} }public class testdemo
} new inner().print() ; // 內部類例項化物件呼叫print()輸出 }}
public class testdemo
}
訪問方法中定義的引數或者是變數
class outer
} new inner().print() ;// 內部類例項化物件呼叫print()輸出 }}
public class testdemo
}
程式執行結果: 屬性:hello world !
java內部類詳解
成員內部類 作為外部類的乙個成員存在,與外部類的屬性 方法並列。成員內部類中,不能定義靜態成員 成員內部類中,可以訪問外部類的所有成員 在內部類中訪問內部類自己的變數直接用變數名 在內部類中訪問內部類自己的變數也可以用this.變數名 在內部類中訪問外部類中與內部類同名的例項變數用外部類名.this...
Java內部類詳解(三)
首先,靜態內部類實際上與普通類 即類名必須與檔名一樣的頂級類 一樣,只是靜態內部類在某一類的內部定義了而已,既然是類,要想使用就必須例項化。概念上與靜態變數 靜態方法是不一樣的,不要被 靜態 兩個字迷惑了 不要以為凡是靜態的東西就不需要例項化就可以直接使用,靜態內部類是有區別 而且只有靜態內部類,而...
java基礎 內部類詳解
內部類 成員內部類 非靜態的 區域性內部類 匿名內部類 靜態內部類。員內部類 作為外部類的成員存在,與成員變數和成員方法平級關係 宣告 public class out 成員變數 成員方法 成員內部類 訪問許可權 class in 成員變數 成員方法 語法說明 成員內部類的訪問許可權 任意的 思考如...