关于java和c++中的私有成员
访问权限是应该对class控制还是应该对object控制,在各个语言里不尽相同;如何对"对象"进行权限控制,那么就是说对于不同对象,无论是否属于同一个类,它们之间都是不能互相直接访问私有成员的。相反,如果是对"类"进行权限控制,那也就是说,属于同一个类的不同对象之间,可以直接访问私有成员,而不同类的对象不可以直接访问私有成员。
java和C++选择了对class进行权限控制。
例如下面这个java示例程序:
class ClassA { private int a=0; public void fun(ClassA objX) { System.out.println(objX.a); //对于形参objX来说,a是私有变量。 } public ClassA(int x) { a=x; } }
class JavaTest { public static void main (String args[]) { ClassA m=new ClassA(3); ClassA n=new ClassA(4); m.fun(n); //对象m的方法m.fun()可以访问对象n的私有成员n.a; } }