内部類我們在程式開發中經常會用到,這裡通過普通内部類,靜态内部類和方法内部類三種方式來介紹一下内部類的建立方式。
1.普通内部類的建立:
/**
*
* 普通内部類的定義
*
*/
class Outer {
private String name = "hello world !";
//普通内部類定義
class Inner{
public void print(){
System.out.println(name);
}
}
}
public class TestDemo {
public static void main(String[] args) {
Outer out = new Outer();
out.new Inner().print();
}
}
通過上面的代碼可以看出來,普通的内部類不必要通過外部類 顯示定義私有屬性的get和set方法就可以通路 外部類的私有屬性。
2.靜态内部類
/**
*
* 靜态内部類的定義
*
*/
class Outer{
private static String name = "hello world !";
static class Inner{
public static void print(){
System.out.println(name);
}
}
}
public class TestDemo {
public static void main(String[] args) {
Outer.Inner.print();
}
}
通過觀察上面的代碼,靜态内部類隻能通路外部類的靜态屬性,靜态内部類也不用 通過外部類 顯示定義靜态 私有屬性的get和set方法就可以通路 外部類的私有屬性。
3.方法内部類
/**
*
* 方法内部類的定義
*
*/
class Outer {
private String name = "hello world !" ;
public void fun(final int num){
final String param = "我是方法參數";
class Inner {
public void print(){
System.out.println("方法傳入參數:"+num);
System.out.println("外部類參數:"+Outer.this.name);
System.out.println("方法内部參數:"+param);
}
}
new Inner().print();
}
}
public class TestDemo {
public static void main(String[] args) {
new Outer().fun(100);
}
}
方法内部類要想通路方法傳入的參數和方法内部的參數,參數類型前面必須要添加final關鍵字來修飾。