我总有一个很模糊的概念,在一个类中如
class class1{
public int f1;
protected int f2;
       int f3;
private int f4;
}有四种不同的属性,我总觉得如果这个类的对象,如ob1, 可以直接引用f1, 如ob1.f1, 而不能引用f4, 如ob1.f4是不行的。
1)首先我不确定这个概念是否正确?
2)如果上边我说的是对的,那么 ob1.f2 和 ob1.f3是否是合法的?
3)有这么一张表,我感觉和我上边的两个问题有点关系,但又不确定,如果谁能给我归纳一下,那就太感谢了
  -----------------------------------------------  
                package内      package外 
  public         允许            允许  
  protected      允许            不允许  
  default        允许            不允许  
  private        不允许          不允许
我老听说类和类之间的联系,我感觉是说一个类,先创建另一个类的对象,通过对象来调用那个类的属性和方法,不知和我前两个问题有没有什么关系  

解决方案 »

  1.   

    1.概念错误:如果这个类对象与该类在同一个类中,则变量的四种属性均是可以访问的.
    2.上面说的不对,在同一个类中都是合法的.
    3.你的表不是很好.归纳的不够清楚.看下这个吧!希望你对会有帮助.
    http://www.360doc.com/content/090413/10/38874_3113456.html
      

  2.   

    访问属性问题...
    先回答你提问
    1.如果一个成员是private,那么只有在这个类中的代码可以访问私有的,出了类之外想直接访问私有的成员是非法的,比如像你说的,创建
    一个这个类的对象o,然后用O调动私有成员。即私有的成员只能被类定义的代码访问。我刚才说不能直接访问,但可以在类外通过间接访问到
    类内的私有成员,比如可以通过对象调用这个类非私有的方法,然后在这个方法内访问这个类的私有成员。总之一句话,私有的代码只能是由
    类中的成员访问。
    2.只要类成员不是私有的,那么都可以用类的对象来调用(静态的也可以,当然静态的东西最好用类来调用)3.给你归纳下访问属性的问题,四个访问属性范围逐渐增大的
    private:类内,即成员只能被类里的代码访问,其他的都是非法的
    default:同一个包,
    protected:保护属性可以表述为default+不同包有继承关系的子类:即同一包内可访问,如果涉及不同包,那么不同包的类有继承关系的可以访问
    public:按照java术语的表示是:全世界...