public class B {
   int n;
   static int sum=0;
   void setN(int n){
   this.n=n;
   }
   int getSum(){
   for(int i=1;i<=n;i++){
   sum=sum+i;
   }
   return sum;
   }
}public class A {
   public static void main(String args[]){
   B b1=new B();
   B b2=new B();
   b1.setN(3);
   b2.setN(5);
   int s1=b1.getSum();  
   int s2=b2.getSum();
   System.out.println(s1+s2);
   }
}
运行后输出为27,我想问为什么不是45呢?
我的想法是这样的:第一次b1.getSum();这里执行后sum的值是6,那么执行b2.getSum();
这里的时候sum=6;然后做循环的话就应当相当于
int sum=6;
for(int i=1;i<=5;i++){
    sum=sum+i;
 }
这样的话结果就应该是45了。