嵌套类不会更改封闭的类字段

时间:2017-01-07 11:52:25

标签: java inner-classes static-classes

我尝试编写简单的程序,它适用于嵌套类。我注意到,嵌套类不能改变(或者我错了)封闭类字段:

public class MyClass {

    private boolean bool = false;
    private NestedClass nestedClass = new NestedClass();

    private class NestedClass {

        private void print(){
               System.out.println(bool);
        }

        NestedClass(){
            bool = !bool;
        }
}

    MyClass(){
        nestedClass = new NestedClass();
    }

    public void getInfo(){
        nestedClass.print();
    }
}

创建MyClass的新实例后,bool的值无法更改:

public static void main(String[] args) {
    MyClass myClass = new MyClass();
    myClass.getInfo();
}

输出为false。但我期待true。 我做错了什么?

1 个答案:

答案 0 :(得分:2)

我猜它确实如此,你之所以仍然认为bool的值为false是因为它被设置了两次(否定两次)。

来到这里

MyClass(){
    nestedClass = new NestedClass();
}

第二次

false

两次调用NestedClass的构造函数两次,否定它两次​​导致true - > false - > jQuery(document).ready(function($) { var windowWidth = jQuery(window).width(); jQuery(window).resize(function(){ if (jQuery(window).width() != windowWidth) { windowWidth = jQuery(window).width(); location.reload(); } }); });