-2

コードを貼り付けましたが、「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();
}

}
4

4 に答える 4

1

2番目と3番目のケースで行ったように、そのcuzsystem.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

}
于 2013-03-25T10:08:26.083 に答える
0

System.out.println(b);main()メソッドにも関数にもありません。これを直接実行することはできません。ちなみに、変数はクラスbでアクセスできません。accesssp1

于 2013-03-25T10:12:30.020 に答える
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();

}

}
于 2013-03-25T10:16:10.187 に答える
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にはスコープがあり、可視性はプロジェクトのどこにでも存在します(外部からの呼び出しが可能な場合は、オブジェクトを使用した呼び出しのみです)。この値には、オブジェクトを使用してアクセスします。

例えば。:

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);、ステートメントはファーストクラスのコンストラクター内にある必要があります。

于 2013-03-25T12:07:58.333 に答える