public class JavapTest{
   private int a,b;
   public static int getMax(int m,int n){
      if(m<n) return n;
      else return m;
   }
   public void printMax(int max){
      System.out.println("Max is:"+max);
   }
   public static void main(String[] args) {
      JavapTest jObj = new JavapTest();
      jObj.a = 10;   //这里到底应该怎么解释...?
      jObj.b = 20;
      jObj.printMax(getMax(jObj.a,jObj.b));
   }
}

解决方案 »

  1.   

    不对,private变量只能在同一个类中才能访问到
    加入在JavapTest外再访问就不行了
      

  2.   


    因为jObj.a = 10;在JavapTest类的内部。
      

  3.   


    因为 jObj.a = 10; 在JavapTest类的内部。
      

  4.   

    jObj.a = 10;   //这里到底应该怎么解释...?
    jObj.b = 20;
    这两行编译时通不过的,原因:
    静态方法中引用非静态变量如果将
    private int a,b;
    改为:
    private static int a,b;
    就可以了。至于:
    jObj.a = 10;   //这里到底应该怎么解释...?3楼已经回答过了。
    private对外是不可见的,但是对内还是可见的,是可以用的,也可以不要jObj,直接写
    a=10;
    b=20;但注意前提:a,b 必须是静态变量。
      

  5.   

    JDK1.6 运行通过 结果20
      

  6.   

    private 可以在它所在的类内被使用
      

  7.   

    这里的jObj就相当于this,也可以用this.a来访问
      

  8.   

    private声明的变量在同一个类里面可以调用,因为jObj.a = 10;在JavapTest类的内部。
      

  9.   

    我认为这个问题楼上有好几个地方需要更正:
    7楼的:关于在静态方法中不允许访问非静态的域和方法(要明白什么时候有这样的约束),这道题已经有了JavapTest jObj = new JavapTest();自然可以访问非静态的方法。9楼的:同样犯了这样的错误12楼的:this不可以这样用在静态方法的内部
    对于楼主问题的答案就是,本类成员可以访问本类的私有变量.