黑马程序员技术交流社区
标题:
晕啊,一个帖子发到第四届了,重发下这个问题
[打印本页]
作者:
系磊
时间:
2012-8-5 10:38
标题:
晕啊,一个帖子发到第四届了,重发下这个问题
我们知道内部类不能定义静态成员,但内部类可以定义在静态的方法中么?如果可以就免费赠送我一个例子吧
作者:
刘润辰
时间:
2012-8-5 11:09
不能,因为静态的要编译期确定 而非静态的是运行期确定的 不同步了 所以不能。
静态态成员是要在类被使用前要正确加载到内存中,如果你的内部类是静态的,那么虚拟机就可以加载其内部的静态字段与方法,反之则不可以,加载都无法完成,我们怎么可以使用类名.字段名或方法名来调用呢?
首先内部的静态类他是不能直接被实例化的。你必须实例化外部类才能实例化它。而外部类不是默认加载的,他只有在手动实例化之后才有内存分配。
作者:
王渠
时间:
2012-8-5 11:14
public class StaticClass {
public static void main(String[] args) {
show();
}
public static void show(){
class In{
In(String name){
this.name = name;
}
private String name;
public String getName(){
return name;
}
}
String name = new In("AA").getName();
System.out.println(name);
}
}
复制代码
将别人的代码修改了一下,就得到了这个代码
作者:
朱烈葵
时间:
2012-8-5 11:45
class StaticClass
{
public static void main(String[] args)
{
Test();
}
public static void Test()
{
class InnerTest
{
private String name;
InnerTest(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
}
String name = new InnerTest("aaa").getName();
System.out.println(name);
}
}
貌似可以
作者:
系磊
时间:
2012-8-5 17:13
到底行不行啊,有说可以的有说不行的,个人认为是可以的就是罕见了点
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2