内部类分为四种:
1.成员内部类
2.局部内部类
3.静态内部类
4.匿名内部类
1.成员内部类
Java code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
//成员内部类......相当于非静态方法
class MemberInner {
private int a = 3;
public class Inner2 {
private int a = 2;
public void doSomething() {
// 调用外部类的属性
System.out.println(MemberInner.this.a);// 这块要注意......很重要!!!
System.out.println(a);
}
}
}
public class Test3 {
public static void main(String[] args) {
MemberInner.Inner2 inner2 = new MemberInner().new Inner2();// 非静态内部类要new实例
inner2.doSomething();
}
}
2.静态内部类
Java code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
//静态内部类......相当于静态方法
class StaticInner{
private static int a=3;
public static class Inner{
public void test(){
System.out.println(a);
}
}
}
public class Test2 {
public static void main(String[] args) {
StaticInner.Inner inner=new StaticInner.Inner();//静态内部类直接调用
inner.test();
}
}
3.局部内部类
Java code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
//局部内部类......相当于局部变量
class LocalInner {
public void doSomething(int b) {
final int a = 3;// 只能访问final的变量
class Inner3 {
public void test(int b) {
System.out.println(b);
System.out.println(a);
}
}
new Inner3().test(b);
}
}
public class Test4 {
public static void main(String[] args) {
LocalInner inner = new LocalInner();
inner.doSomething(4);
}
}
网友评论