一个班级的成员是私下的聋人。以下代码不起作用。
#include<iostream.h>
class Test
{
int x;
};
void main()
{ Test test = new Test();
test.x=10;
}
但是相同的代码在Java中有效吗?
class Test {
int x=5;
}
public class MyClass{
public static void main(String args[]) {
Test test = new Test();
System.out.println(test.x);
}
}
据我说它不应该工作..因为int x是私有的deafult,它不应该对MyClass可用。
答案 0 :(得分:0)
没有可见性修饰符不表示该成员是private
。如果成员默认为private
,为什么成员会允许使用private
关键字?这相当多余。
相反,成员上没有可见性修饰符意味着该字段是 package-private - 也就是说,只有与该成员相同的包中的其他类可见。
此外,struct
在Java中不存在。您可能会对另一种语言感到困惑...默认情况下,成员公开的唯一地方是接口(可能是枚举?),前提是包含的接口/枚举也是公共的。
答案 1 :(得分:0)
我认为默认修饰符是包私有。因此,您可以在与Test类相同的包中使用test.x。