public class test{
   private String DBhost="";
   public Object a(){
     test t=new test();
     t.b();
     return (Object)this.DBhost;//这里会接收到函数b,DBhost的值吗?
   }
   private viod b(){
     this.DBhost="abc";
   }
}
//这样写对吗?求解谢谢

解决方案 »

  1.   

    弄懂了。用static .结帖谁来
      

  2.   

    你去弄明白  成员变量 与 局部变量的区别 就明白了你一直在对成员变量 DBhost进行操作(DBhost命名不规范,最好写成dbHost或者开头有特殊意义的话就DBHost),而DBhost在类中任何方法都是可见的,一旦生成一个对象,那么对这个对象的所有成员方法来说成员变量都只有一个如果你在执行程序的时候先调用b()再调用a()那么DBhost的值就是abc了
      

  3.   

    明白了刚才误解你的意思了test t=new test();
    t.b();
    return (Object)this.DBhost;//这里会接收到函数b,DBhost的值吗?你是想说,t.b()调用以后this.DBhost的值是否是abc
    不是
    因为DBhost变量 并不是static的,那么他会为每一个对象都分配一个DBhost
    每new一个test DBhost都不是一样的
    当你以后调用a()方法时,
    return (Object)this.DBhost;   
    这个this就是你调用a()的那个对象而
     private viod b(){
         this.DBhost="abc";
       }
    这个this,在方法a()中被t调用b(),这个this就是tt与你调用a()方法并不是一个对象
    所以他们的DBhost是相互独立的