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

Java测试内部类和嵌套类位置的合法性

2012-11-03 12:49 561 查看
/**
*
*/
package innerClass;
/**
* 结论:
* 静态环境中不能引用非静态域。
* 静态方法/嵌套类只能声明在静态的或者顶层结构中
* 非静态方法/内部类可以放置在任何位置,任何一层
* */
public class InnerClassAccess {
private float f = 1.0f;	//非静态字段

class InnerClassA{
//static void method(){}//静态方法只能声明在静态的或者顶层的结构里面
//static class TestA{} 	//嵌套类只能声明在静态的或者顶层的结构里面
class Test{				//内部类可以嵌套放在任意一层
class TestB{
class TestC{}
}
}
}

void function2(){		//内部类可以放置在非静态方法中
class TestF{};
new TestF();
}

static void function(){	//内部类也可以放置在静态方法中
class TestD{}
new TestD();
}

static class InnerClassB{
public void method(){
//f = 20; 		//在嵌套类中不能引用非静态域
}
static void f(){	//在静态方法中不能引用非静态域
//f = 20;
}
class TestE{}		//内部类可以放置在嵌套类中
}

//内部类可以是抽象类
abstract class InnerClassC{
public abstract void method();
abstract class InnerClassT{} //内部抽象类也可以嵌套
}

//内部类可以是接口
interface InnerClassD{
public void method();
interface InnerClassI{}		//内部接口也可以嵌套
}

//私有内部类中可以放置public方法
private class InnerClassX{
public void g(){}
}

public static void main(String[] args) {
new InnerClassAccess();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: