您的位置:首页 > 编程语言 > Java开发

Java内部类的调用

2015-10-27 13:01 513 查看
首先,Java显示的内部类分为两种,静态内部类和非静态内部类。而两者的区别和用static修饰的变量或方法相同,即该内部类是属于类还是属于类的实例对象。

对静态内部类来说,该静态内部类可由其外部类直接调用,之前新建类实例的时候需要
new Class()
,而现在只需要
new OuterClass.InnerClass()
即可。

而非静态内部类,它的调用者为外部类的实例,所以应该使用
new OuterClass().new InnerClass()


测试代码如下:

/**
* 创建时间:2015年10月27日 下午12:47:07
* @author donghl
* 类说明:Java内部类的测试
*/
public class StaticTest {
public static void main(String[] args) {
/*
*  外部类本身的调用
*/
// 静态方法
StaticTest.test1();  // new StaticTest().test2();  正确,不建议使用
// 非静态方法
new StaticTest().test2();

/*
* 静态内部类的调用
*/
// 静态方法
StaticTest.T1.test1(); // new StaticTest.T1().test1();  正确,不建议使用
// 非静态方法
new StaticTest.T1().test2();

/*
* 非静态内部类的调用
*/
// 静态方法 不支持
// 非静态方法
new StaticTest().new T2().test2();
}

public static void test1() {
System.out.println("StaticTest.test1");
}
public void test2() {
System.out.println("StaticTest.test2");
}

/**
* 静态内部类
*/
public static class T1 {
// 静态方法
public static void test1() {
System.out.println("T1.test1");
}

// 非静态方法
public void test2() {
System.out.println("T1.test2");
}
}

/**
* 非静态内部类
*/
public class T2 {
// 不支持静态方法
// public static void test1() {}

// 非静态方法
public void test2() {
System.out.println("T2.test2");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: