c++中,如果我们对类的成员(包括成员变量和成员函数)没有定义属性,则默认是private。
java中,如果没有定义属性,则默认是default,该权限表示在同一个包中均可直接访问, 不同包不可。
C++:
private 私有类型,只能被类成员函数及友元访问,不能被其他任何访问。
public 公有类型,可以被所有人使用。
protected 只能被类成员函数、子类函数及友元访问,不能被其他任何访问,本身的类对象实例也不行(如A a;a.成员变量,如果这个成员变量是protected 或者private,则不行)。
java:
public: 所修饰的类、变量、方法,在内外包均具有访问权限。
protected: 这种权限是为继承而设计的,protected所修饰的成员,对所有子类是可访问的,但只对同包的类是可访问的,对外包的非子类是不可以访问;本身的类对象实例可以直接范围(如A a;a.成员变量,如果这个成员变量是protected ,则可以)
默认访问权限(default): 只对同包的类具有访问的权限,外包的所有类都不能访问;
private: 私有的权限,只对本类的方法可以使用;