Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要了解公共和私人_Java_Private_Public - Fatal编程技术网

Java 需要了解公共和私人

Java 需要了解公共和私人,java,private,public,Java,Private,Public,我已经粘贴了代码,现在我的问题是,在第一个名为“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 vo

我已经粘贴了代码,现在我的问题是,在第一个名为“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();
}

}

好的,它的cuz system.out.println语句应该在方法/构造函数体中,正如您在第2和第3种情况中所做的那样。这是一个编译器错误

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

}

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

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

}

}

java中有访问说明符

private, public and protected.
以上每一项都有各自的特点,并根据其范围和可见性进行了说明

private has scope & visibility resides only on inside a function or there the class.
例如:

public的作用域和可见性位于项目的任何位置(当它只能在外部调用时,只能使用其对象进行调用)。这些值是通过其对象访问的

例如:

受保护的范围和可见性位于类内部,并且还访问了公共继承类


So
System.out.println(b)语句必须位于第一类构造函数内。

代码不可编译。您应该阅读编译器错误消息。如果你不明白,你应该粘贴准确完整的编译器错误信息,而不是让我们猜测问题可能是什么。你需要把print语句放在类的一个方法中。我理解了你想说的话bt不正确,请告诉我,在代码中,我应该把它放在哪里?print语句不能在类主体中。它必须在一个块或方法体中。@PratikAmbani我很高兴它有帮助:)那么什么是方法来显示b的价值,对不起,我是一个初学者,所以请不要嘲笑我…:使用任何方法。请尝试:
public accesssp(){System.out.println(b);}
这里它是在构造函数内部调用的。非常感谢您,先生,希望您能提供进一步的帮助。再次感谢……:)不客气。你可以接受这个。你可以用谷歌搜索这个。很多人会投票反对这个问题。我不在乎这个投票系统。因为我是java的初学者。顺便说一下,我需要一个愚蠢问题的答案,构造函数需要什么?构造函数不是必需的。你可以用任何方法。但可执行语句必须位于任何方法的内部。否则它会显示错误。你应该关心投票。如果你问一些简单的问题,他们会投票否决你,你将被永久禁止在这里提问。如果方法中没有访问说明符,我会给出+1,它们会给出编译错误。
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
    }
}