作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Possible Duplicate:
Why does Java prohibit static fields in inner classes?
让我们看一下下面的 Java 代码片段。它只是将 Inner
中的两个数字相加。 Outer
内声明的类类并且按预期工作得很好。
package staticfields;
final class Outer
{
final public static class Inner
{
private static int x;
private static int y;
public Inner(int x, int y)
{
Inner.x=x;
Inner.y=y;
}
public void sum()
{
System.out.println(x+y);
}
}
}
final public class Main
{
public static void main(String[] args)
{
new Outer.Inner(5, 10).sum();
}
}
<小时/>
当我尝试从 Inner
中删除 static 关键字时类,它会发出一个编译时错误,表明内部类不能有静态声明意味着内部类中声明的静态字段(x和y)不起作用,如果它是这样的话非静态。
为什么Java中只有静态内部类有静态成员,而非静态内部类没有?
最佳答案
An inner class is a nested class that is not explicitly or implicitly declared static. Inner classes may not declare static initializers (§8.7) or member interfaces. Inner classes may not declare static members, unless they are compile-time constant fields"
内部类属于外部类的实例,因此这是有道理的。
关于java - 为什么Java中只有静态内部类才有静态成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569203/
我是一名优秀的程序员,十分优秀!