Java 如何修复:非静态变量无法从静态上下文引用此变量

Java 如何修复:非静态变量无法从静态上下文引用此变量,java,Java,为什么我甚至不能实例化这个对象?我很困惑,我是否以错误的方式创建了对象 class Main { public class Age { public int years = 1; public Age(int y) { years = y; } public void print() { System.out.println(years); } }

为什么我甚至不能实例化这个对象?我很困惑,我是否以错误的方式创建了对象

class Main {

    public class Age {
        public int years = 1;

        public Age(int y) {
            years = y;
        }

        public void print() {
            System.out.println(years);
        }
    }

    public static void main(String[] args) {
        Age four = new Age(4); age = four;
        age.years++;
        four.print();
    }
}

嵌套的类年龄是非静态的,这意味着您需要一个主类的实例来引用年龄。将年龄定义为静态,或创建新的主对象

    public static void main(String[] args) {
        Age four = (new Main()). new Age(4); 
        Age age = four;
        age.years++;
        four.print();
    }

编辑:


或者在Main之外声明它,而不是嵌套类。

或者在Main之外声明Age。