我已经粘贴了代码,现在我的查询是在名为“accesssp”的第一类中我添加了对象然后写了SOP然后为什么我不能输出作为B的值? b的访问是私有的,但我在同一类中获取价值
我做了BOLD部分,我不明白。
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();
}
}
答案 0 :(得分:1)
好吧,它的cuz system.out.println语句应该在方法/构造函数体内,就像你在第二和第三种情况下所做的那样。这是一个编译器错误。
class accesssp {
public int a=56;
private int b=5566;
public int c=58766;
System.out.println(b);//should be inside a method/cons body
}
答案 1 :(得分:0)
System.out.println(b);
既不在main()
方法也不在任何函数中。这不能像你一样直接执行。另外,在b
类中无法访问变量accesssp1
。
答案 2 :(得分:0)
SOP应该在任何方法内。使用构造函数并在构造函数中打印它,然后在 accesssp1
的构造函数中调用super()class accesssp {
public int a=56;
private int b=5566;
public int c=58766;
public accesssp()
{
System.out.println(b);
}
}
class accesssp1 extends accesssp{
public accesssp1()
{
super();
}
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();
}
}
答案 3 :(得分:0)
java中有访问说明符,有
private, public and protected.
上面的每一个都有特色,它们是根据范围和可见性来解释的。
private has scope & visibility resides only on inside a function or there the class.
例如:
public class classFirst
{
private int variableName1;//scope and visibility inside this class
public void function1()
{
private int variableName2;//scope and visibility inside this function not use outside.
}
}
公众有范围&可见性驻留在项目的任何位置(当可以在外面调用只有它们的对象的调用时)。可以使用对象访问此值。
例如:
public class classSecond
{
public int variableName1;//scope and visibility anywhere on the project
public void function1()
{
public int variableName2;//scope and visibility anywhere on the project
}
}
受保护的范围&可见性在类内部,也可以访问公共继承类。
所以System.out.println(b);
语句必须在第一个类的构造函数中。