内部类详解及举例说明_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 内部类详解及举例说明

内部类详解及举例说明

 2013/8/15 0:43:50  lfl2011  程序员俱乐部  我要评论(0)
  • 摘要:内部类(InnerClass),内部类共分为4种。1.静态内部类(staticinnerclass):只能访问外部类的静态成员变量与静态方法,生成静态内部类对象的方式为:OuterClass.InnerClassinner=newOuterClass.InnerClass();2.成员内部类(memberinnerclass):可以访问外部类的静态与非静态的方法与成员变量。生成成员内部类对象的方式为:OuterClass.InnerClassinner=newOuterClass()
  • 标签:详解

内部类(Inner Class),内部类共分为4种。
1.静态内部类(static inner class):只能访问外部类的静态成员变量与静态方法,生成
静态内部类对象的方式为:
OuterClass.InnerClass inner = new OuterClass.InnerClass();
2.成员内部类(member inner class):可以访问外部类的静态与非静态的方法与成员变
量。生成成员内部类对象的方式为:
OuterClass.InnerClass inner = new OuterClass().new InnerClass();
若想在局部内部类中访问外部类的成员变量,语法为:OuterClass.this.a;
3.局部内部类(Local Inner Class):定义在方法当中,只能访问方法中声明的final类型
的变量。
4.匿名内部类(Anonymous Inner Class):没有类名称的局部内部类;匿名内部类会隐式地继承一个父类或实现一个接口

?

静态内部类和成员内部类比较简单在此就不举例了。

局部内部类代码示例:

package com.lfl.innerclass;

class LocalInner {
	private  int a = 3;
	
	public void doSomething() {
		final int i = 5;
		class Inner3 {
			
			public void test() {
				System.out.println(i);
				System.out.println(a);
				go();
			}
		}
		new Inner3().test();
	}
	
	public static void go() {
		System.out.println("hello");
	}
	
}


public class LocalInnerClassTest {

	public static void main(String[] args) {
		LocalInner inner = new LocalInner();
		inner.doSomething();
	}

}

?

?

匿名内部类代码示例:

package com.lfl.innerclass;

import java.util.Date;

public class AnonymousInnerClassTest {
	
	public String get(Date date) {
		return date.toLocaleString();
	}
	
	public Object getObject() {
		return new Object() {
			public String toString() {
				System.out.println("hello world2");
				return "hello";
			}
		};
	}
	

	public static void main(String[] args) {
		AnonymousInnerClassTest inner = new AnonymousInnerClassTest();
		// non anonymous innerclass
		String date = inner.get(new Date());
		System.out.println(date);
		
		//anonymous innerclass
		String str = inner.get(new Date() {
			public String toLocaleString() {
				return "hello world";
			}
		});
		System.out.println(str);
		
		Object obj = inner.getObject();
		String s = obj.toString();
		System.out.println(s);
	}

}

?

?

?

?

?

?

?

上一篇: 探讨Java类中成员变量的初始化方式 下一篇: 没有下一篇了!
发表评论
用户名: 匿名