public class Tryprivate
{
    private int i=2;
    public static void main(String[] args)
    {
        Tryprivate tp=new Tryprivate();
        
        tp.i=5;
        
        System.out.println(tp.i);
    }
}虽然是同一个类中,但总感觉不好理解,为什么能用私有变量呢?

解决方案 »

  1.   

    private修饰符本来就是给本类自己用的阿.!  在一个类中为啥不能用列.?
      

  2.   

    从面向对象的角度说, 谁拥有变量, 谁就应该对外提供对该变量操作和访问的方法,  但是内部使用肯定可以直接修改啊, 例如说: 人家要拿你身上的五块钱, 肯定只能由你提供方法出去, 而你自己用你自己的五块钱就直接拿着用, 想怎么用怎么用!  static和非static只是类变量和对象变量的不同而已至少我是这么理解的
      

  3.   

    因为你在这个类内部访问private当然能访问了,在别的类访问试试。
      

  4.   

    yes,  其实LZ在2L的回答已经说明LZ的思路已经偏了! 一个类中引用成员变量也是用对象的, 只不过用的是this,代表当前对象(只是这个this某些时候可以省略而已)
      

  5.   

    public class Tryprivate
    {
      private int i=2;
      public void test(Tryprivate tp2)
      {
      tp2.i=9;
      System.out.println(tp2.i);
      }
    }
    这样也可以
      

  6.   

    Tryprivate类的方法当然能访问Tryprivate的私有属性,main方法也是方法啊
      

  7.   

    一个类的成员变量,本来就应该其自身才可以访问的呀。定义成私有的不对吗。要给别的类访问要get set的