java需要对公共和私人的理解
我已经粘贴了代码,现在我的问题是,在第一个名为“accesssp”的类中,我添加了对象,然后编写了SOP,那么为什么我不能输出为B的值呢??b的访问权限是私有的,但我在同一个类中获取值
我做了粗体部分,我不明白
class accesssp {
public int a=56;
private int b=5566;
public int c=58766;
System.out.println(b);
}
class accesssp1 extends accesssp{
public void accessd() {
System.out.println(a);
System.out.println(c);
}
}
public class Access_Spf {
public static void main(String[] args) {
accesssp1 sp1 = new accesssp1();
sp1.accessd();
}
}
# 1 楼答案
java中有访问说明符
以上每一项都有各自的特点,并根据其范围和可见性进行了解释
例如:
公众有自己的视野;可见性驻留在项目的任何位置(当它只能在外部调用时,只能使用其对象调用)。这些值是通过它们的对象访问的
例如:
受保护的范围;可见性位于类内部,也可以访问公共继承类
所以
System.out.println(b);
语句必须在第一类的构造函数中# 2 楼答案
System.out.println(b);
既不在main()
方法中,也不在任何函数中。这不能像您所做的那样直接执行。另一方面,变量b
将无法在accesssp1
类中访问# 3 楼答案
它的cuz系统。出来println语句应该在方法/构造函数体中,就像您在第二和第三种情况下所做的那样。这是一个编译器错误