有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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();
}

}

共 (3) 个答案

  1. # 1 楼答案

    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);语句必须在第一类的构造函数中

  2. # 2 楼答案

    System.out.println(b);既不在main()方法中,也不在任何函数中。这不能像您所做的那样直接执行。另一方面,变量b将无法在accesssp1类中访问

  3. # 3 楼答案

    它的cuz系统。出来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
    
    }