Java 类中类 是怎么实现的?
谁能告诉我Java类中类是怎么实现的,给个小代码就好,另外我想知道Java类中类是怎么调用的,在什么时候会被执行,有static和没static有什么区别,请高手指点迷津...
谁能告诉我 Java 类中类是怎么实现的,给个小代码就好,另外我想知道 Java 类中类是怎么调用的,在什么时候会被执行,有 static 和 没static 有什么区别,请高手指点迷津!
展开
2个回答
展开全部
是叫Inner Class啦。
和变量差不多。随便在类中什么地方写。也和变量一样有作用域。在函数内部写的类,在函数外就不可调用了。
public class A {
private class B {}
public static void main(String[] args) {
new A().new B();
}
}
这样的内部类中不能含有任何static成员。你也看到了,要生成B的实例必须建立在A实例的基础上。因为每个内部类都必须拥有一个指向外部类的指针。这样才能访问外部类的变量,private的也行。
把内部类声明为static,那么就不会有一个指向外部类的指针。自然也访问不了外部类的变量,除非外部变量是static的。也自然不需要先生成外部类的实例才能生成内部类的实例。这样的内部类叫做Nested Class
Thinking in Java里讲的很清楚了。自己去看看吧。
和变量差不多。随便在类中什么地方写。也和变量一样有作用域。在函数内部写的类,在函数外就不可调用了。
public class A {
private class B {}
public static void main(String[] args) {
new A().new B();
}
}
这样的内部类中不能含有任何static成员。你也看到了,要生成B的实例必须建立在A实例的基础上。因为每个内部类都必须拥有一个指向外部类的指针。这样才能访问外部类的变量,private的也行。
把内部类声明为static,那么就不会有一个指向外部类的指针。自然也访问不了外部类的变量,除非外部变量是static的。也自然不需要先生成外部类的实例才能生成内部类的实例。这样的内部类叫做Nested Class
Thinking in Java里讲的很清楚了。自己去看看吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询