我不明白,结果为什么是10 10  能具体讲下吗程序:
     public class Methodmember {
         public static void main(string[] args) {
            MethodDemo methodDemo = new MethodDemo();
            
            methodDemo.scopDemo(); 
            System.out.Println(MethodDemo.getdata());
             
            methodDemo.setdata(100);
            System.out.Println(MethodDemo.getdata());
          }
        }
      
       class  MethodDemo {
           private int data = 10;
           
           public void scopeDemo() {
                   int data = 100;
               }
           
           public int getData() {
                   return data;
               }
      
           public void setdata(int data) {
                   data = data;
                   this.data = data;
               }
         }             

解决方案 »

  1.   

    public void scopeDemo() { 
         int data = 100; 
    }
    用是的局部变量。和实例变量(在类中定义的非静态变量)是有区别的!!
    public void setdata(int data) { 
                      data = data; 
                      this.data = data; 
                  } 
            } 
    中data=data相当于
    int temp=this.data;
    data=data; //都是局部变量
    this.data=temp;
    所以就是10 10
      

  2.   

    public class Methodmember { 
            public static void main(string[] args) { 
                MethodDemo methodDemo = new MethodDemo(); 
                
                methodDemo.scopDemo(); 
                System.out.Println(methodDemo.getdata()); 
                //上面的MethodDemo.getdata() 改成methodDemo.getdata()
                
                methodDemo.setdata(100); 
                System.out.Println(methodDemo.getdata());  
                //上面的MethodDemo.getdata() 改成methodDemo.getdata()
     
              } 
            } 
          
          class  MethodDemo { 
              private int data = 10; 
              
              public void scopeDemo() { 
                      int data = 100; 
                  } 
              
              public int getData() { 
                      return data; 
                  } 
          
              public void setdata(int data) { 
                      data = data; 
                      this.data = data; 
                  } 
            } 
      

  3.   

    代码太乱,错误太多!
    帮你整理了下
    package db;public class Methodmember {
    public static void main(String[] args) {
    MethodDemo methodDemo = new MethodDemo(); methodDemo.scopeDemo();
    System.out.println(methodDemo.getData());//打印出MethodDemo类的属性data初始值 methodDemo.setdata(100);
    System.out.print(methodDemo.getData());//打印出MethodDemo类的属性data设置的值
    }
    }class MethodDemo {
    private int data = 10; public void scopeDemo() {
    int data = 100;//data局部变量
    } public int getData() {
    return data;//MethodDemo类的属性data
    } public void setdata(int data) {
    data = data;//MethodDemo类的属性data
    this.data = data;//MethodDemo类的属性data
    }
    }
      

  4.   

    引用楼上:data = data;//MethodDemo类的属性data   
    这个是错的,这个data不是MethodDemo类的属性data而是形参:
    code:public class Methodmember {
      public static void main(String[] args) {
        MethodDemo methodDemo = new MethodDemo();
        methodDemo.scopeDemo();
        System.out.println(methodDemo.getData());
        methodDemo.setdata(100);
        System.out.println(methodDemo.getData());
      }
     }
    class  MethodDemo {
      private int data = 10;
      public void scopeDemo() {
        int data = 100;
      }
      public int getData() {
        return data;
      }
      public void setdata(int data) {
        data = data;
        System.out.println(this.data);//10
        this.data = data;
      }
    }
      

  5.   

    上面说的有些迷惑哈!
    data = data;//MethodDemo类的属性data(是指第一个data哈)
      

  6.   

    貌似应该是10,100吧,最后不都setData时已经做了this.data = data了