public class classBetween{
public static void main(String argv[]){

bt bt1=new bt();
System.out.println(bt1.bt1);
}
}class bt{
boolean bt1=false;

    public void bt()
    {this.bt1=true;}
    
}结果:false

解决方案 »

  1.   

    我将你的代码原封不动地在jdk1.4.2上测试,返回结果为true啊
      

  2.   

    调用构造函数的时候,已经将this.bt1赋值了
      

  3.   

    这个就关系到一个变量的作用域问题了!
    无论你的 bt()将bt1怎么付值,都会返回bt1的默认值 false你运行一下这个代码 结果也是一样的!public class classBetween{
            public static void main(String argv[]){        bt bt1=new bt();
            System.out.println(bt1.bt1);
            }
    }class bt{
            boolean bt1;    public void bt()
        {}        }结果同样是 false
      

  4.   

    对呀;
    你的
    public void bt()
        {this.bt1=true;}
    不是构造函数,所以bt1的值没变;
    构造函数没有返回值的,应该为:
    public bt() {this.bt1=true;}
      

  5.   

    public class classBetween{
            public static void main(String argv[]){        bt bt1=new bt();
            System.out.println(bt1.bt());
            }
    }class bt{
            boolean bt1;    public boolean bt()
        {
          this.bt1 = true;
          return bt1;
        }就会返回  true;
      

  6.   

    我想应该是因为你的bt()不是构造函数。把bt()前面的void去掉就是true了。现在在执行:bt bt1=new bt();这句时,bt1就等于了false。然后就输出了,所以根本没有执行this.bt1 = true;这句。
      

  7.   

    public void bt()
        {this.bt1=true;}
        
    }不是构造函数,只是一个普通的方法,所以在new的时候是不会被调用的
      

  8.   

    呵呵,我也看错了,原来是public void bt() {}函数不是构造函数,所以你实例化该对象的时候并没有调用public void bt()函数,当然就没有给this.bt赋值啦。不过提醒一点,如果你生命的全局变量没有显式指明是private,则默认为public