package com.aaa;
/**
* @filename Test0128.java
* @author l
* @version 创建时间:2019年1月28日 下午4:47:58
* @description
*/
public class Test0128 {
class Apple {
private static long a;
private final long b = a++;
public long geta(){ return b;}
}
public static void main(String[] args) {
}
}
报错,提示:The field a cannot be declared static in a non-static inner type, unless initialized with a constant
java规定:非静态内部类中不可声明静态成员。
原因:
每一个非静态内部类必须维持对一个外部类实例的应用,表明其作用域为实例级别;
static指定的属性、方法等为类级别;
二者作用域不同,自然编译无法通过。可在变量前添加final,使其变为全局变量。