參考:
四種內部類:常規內部類、靜態內部類、區域性內部類、匿名內部類
1、常規內部類
常規內部類沒有用static修飾且定義在外部類類體中,常規內部類可以理解為類中普通的成員變數
(1)常規內部類可以訪問外部類的private成員變數和方法
(2)如果要訪問內部類,首先要例項化外部類outer,然後呼叫inner=outer.new inner()例項化內部類
public class outer
}}public
static
void
main(stirng args)
輸出:
hello
2、靜態內部類
使用static修飾的內部類稱為靜態內部類
(1)靜態內部類不能訪問外部類的非static成員,也不能用this關鍵字訪問外部類成員
(2)例項化靜態內部類可以直接用outer.inner inner=new outer.inner()進行例項化
public class outer
}}public
static
void
main(stirng args)
3、區域性內部類
在方法體或語句塊(包括方法、構造方法、區域性快活靜態chushihu8a快)內部定義的類稱為區域性內部類
(1)區域性內部類不能加任何訪問修飾符(private、protected、public等),也不可以用static修飾,但可以用final和abstract修飾
(2)區域性內部類對在方法體中有效,只能在方法體中例項化
(3)方法中的內部類可以訪問外部類成員,但是方法中的外部成員必須要有final修飾
(4)static方法中定義的內部類可以訪問外部定義的static成員
public
class outer
}return
new jubuclass(); //只能在這個方法中例項化這個內部類
}}public
static
void
main(string args)
輸出:finallocalvar:47 x:hello
4、匿名內部類
如果某個類的例項只是用一次,就可以將類的定義和類的建立放在一起,這就是匿名內部類
注:匿名內部類沒有名字,必須繼承乙個父類或者實現乙個介面,但是只能實現乙個介面,例項化的時候使用的是父類名或者介面名
如: new classorinte***cename()
classorinte***cename就是父類名或者介面名
public
class outer
}; //使用匿名內部類
}}public
static
void
main(string args)
java四種內部類詳解
一般來說,有4中內部類 常規內部類 靜態內部類 區域性內部類 匿名內部類。一.常規內部類 常規內部類沒有用static修飾且定義在在外部類類體中。1.常規內部類中的方法可以直接使用外部類的例項變數和例項方法。2.在常規內部類中可以直接用內部類建立物件 3.如下 public class myoute...
java四種內部類詳解
一般來說,有4中內部類 常規內部類 靜態內部類 區域性內部類 匿名內部類。一.常規內部類 常規內部類沒有用static修飾且定義在在外部類類體中。1.常規內部類中的方法可以直接使用外部類的例項變數和例項方法。2.在常規內部類中可以直接用內部類建立物件 3.如下 public class myoute...
Java 四種內部類例項
內部類 成員內部類 靜態內部類 區域性內部類和匿名內部類。package com.jiaoyinbrother.test 成員內部類可以呼叫外部類的所有成員,但只有在建立了外部類的物件後,才能呼叫外部的成員。public class outerclass public void display pu...