当前位置: 技术问答>java相关
内部类问题??????
来源: 互联网 发布时间:2015-03-13
本文导语: which statements about static inner classes are true? a. A static inner class requires a static initializer. b. A static inner class requires an instance of the enclosing class. c. A static inner class has no reference to an instan...
which statements about static inner classes are true?
a. A static inner class requires a static
initializer.
b. A static inner class requires an instance of the enclosing class.
c. A static inner class has no reference to
an instance of the enclosing class.
d. A static inner class has access to the non-static members of the outer class.
e. static menbers of a static inner class can be referenced using the class name of
the static inner class.
我
不知道选那个?
那位能给我详细讲解一下静态内部类????
我看mynote只讲了 Non-static inner classes Local classes(这个不是静态内部类吧) Anonymous classes ,万分感谢!!!!
a. A static inner class requires a static
initializer.
b. A static inner class requires an instance of the enclosing class.
c. A static inner class has no reference to
an instance of the enclosing class.
d. A static inner class has access to the non-static members of the outer class.
e. static menbers of a static inner class can be referenced using the class name of
the static inner class.
我
不知道选那个?
那位能给我详细讲解一下静态内部类????
我看mynote只讲了 Non-static inner classes Local classes(这个不是静态内部类吧) Anonymous classes ,万分感谢!!!!
|
1. static inner class 等同于顶级类。可以不需要创建Outer class就直接使用。
所以 b 显然是错的。
2. c 是对的,既然是static嘛,当然没有对enclosing class的引用
3. d错了。静态类只能存取静态成员
4. 正确。
所以 b 显然是错的。
2. c 是对的,既然是static嘛,当然没有对enclosing class的引用
3. d错了。静态类只能存取静态成员
4. 正确。
|
2. static的含义
理解了this关键字后,我们可更完整地理解static(静态)方法的含义。它意味着一个特定的方法没有this。我们不可从一个static方法内部发出对非static方法的调用(注释②),尽管反过来说是可以的。而且在没有任何对象的前提下,我们可针对类本身发出对一个static方法的调用。事实上,那正是static方法最基本的意义。它就好象我们创建一个全局函数的等价物(在C语言中)。除了全局函数不允许在Java中使用以外,若将一个static方法置入一个类的内部,它就可以访问其他static方法以及static字段。
②:有可能发出这类调用的一种情况是我们将一个对象句柄传到static方法内部。随后,通过句柄(此时实际是this),我们可调用非static方法,并访问非static字段。但一般地,如果真的想要这样做,只要制作一个普通的、非static方法即可。
有些人抱怨static方法并不是“面向对象”的,因为它们具有全局函数的某些特点;利用static方法,我们不必向对象发送一条消息,因为不存在this。这可能是一个清楚的自变量,若您发现自己使用了大量静态方法,就应重新思考自己的策略。然而,static的概念是非常实用的,许多时候都需要用到它。所以至于它们是否真的“面向对象”,应该留给理论家去讨论。事实上,即使Smalltalk在自己的“类方法”里也有类似于static的东西。
理解了this关键字后,我们可更完整地理解static(静态)方法的含义。它意味着一个特定的方法没有this。我们不可从一个static方法内部发出对非static方法的调用(注释②),尽管反过来说是可以的。而且在没有任何对象的前提下,我们可针对类本身发出对一个static方法的调用。事实上,那正是static方法最基本的意义。它就好象我们创建一个全局函数的等价物(在C语言中)。除了全局函数不允许在Java中使用以外,若将一个static方法置入一个类的内部,它就可以访问其他static方法以及static字段。
②:有可能发出这类调用的一种情况是我们将一个对象句柄传到static方法内部。随后,通过句柄(此时实际是this),我们可调用非static方法,并访问非static字段。但一般地,如果真的想要这样做,只要制作一个普通的、非static方法即可。
有些人抱怨static方法并不是“面向对象”的,因为它们具有全局函数的某些特点;利用static方法,我们不必向对象发送一条消息,因为不存在this。这可能是一个清楚的自变量,若您发现自己使用了大量静态方法,就应重新思考自己的策略。然而,static的概念是非常实用的,许多时候都需要用到它。所以至于它们是否真的“面向对象”,应该留给理论家去讨论。事实上,即使Smalltalk在自己的“类方法”里也有类似于static的东西。
|
c,e
|
java编程思想里面有这方面的教程
很详细的
很详细的
|
c
e
e
|
ce!
静态类只是依附于encloing class,和它毫无关系,当然所有encloing class或outer class的
非成员变量都不能用,否则创建若干其它类的实例时,静态类取哪一个呢?(c)
既然静态,无须encloing的实例就可创建。(e);
静态类只是依附于encloing class,和它毫无关系,当然所有encloing class或outer class的
非成员变量都不能用,否则创建若干其它类的实例时,静态类取哪一个呢?(c)
既然静态,无须encloing的实例就可创建。(e);
|
ce!
静态类只是依附于encloing class,和它毫无关系,当然所有encloing class或outer class的
非(静态)成员变量都不能用,否则创建若干其它类的实例时,静态类取哪一个呢?(c)
既然静态,无须encloing的实例就可创建。(e);
上面漏了一个静态两字,见笑!
静态类只是依附于encloing class,和它毫无关系,当然所有encloing class或outer class的
非(静态)成员变量都不能用,否则创建若干其它类的实例时,静态类取哪一个呢?(c)
既然静态,无须encloing的实例就可创建。(e);
上面漏了一个静态两字,见笑!
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。