0

これは、ストア名に 1 を入力するようユーザーに要求するプログラムです。次に、プログラムはユーザーに自分の名前を入力するように求めます。その後、プログラムはデータを配列に格納します。次に、ストレージを実行する方法を使用する必要があります。ただし、ゲッター メソッドとセッター メソッドはありますが、「エラー: 名前にはクラス名にプライベート アクセスがあります」というエラーが表示されます。

「className」コンストラクターから名前を返したいと思います。

よろしくお願いします。ありがとう。

メインクラス「ReturnName」

import javax.swing.JOptionPane;

   public class ReturnName
    {
  public static void main (String[] args)
    {

className x = new className();



int menu = Integer.parseInt(JOptionPane.showInputDialog("Choose an option:" + "\n" + 
                                                        "Enter 1 to store name"));

if(menu == 1){
String[] input1 = new String[1];

for(int i = 0; i < input1.length; i ++){

String str1 = JOptionPane.showInputDialog("Enter your name");

input1[i] = str1;


} 
method(input1);

}


}public static void method(String [] input1){ 


String Name = "";



for(int i = 0; i < input1.length; i++){



    Name = input1[i];


}   
className HoldName = new className();
System.out.println(HoldName.Name);

   }


   }

クラス名

class className{

private int Menu;
private String Name;


public className(){  

   Menu = 0;
   Name = "";

}

public className(String n, int m){

   Menu = m;
   Name = n;


}
public String getName(){

    return Name;
}

public int getMenu(){

    return Menu;
}



public void setName(String n){

    Name = n;
}

public void setMenu(int m){

    Menu = m;
}


     } 
4

2 に答える 2

5

はい。のアクセス修飾子Nameはプライベートであり、この方法ではアクセスできないため、直接HoldName.Nameusegetterメソッドを呼び出す代わりにHoldName.getName()

于 2013-02-28T17:58:00.540 に答える
1

問題はReturnName、プライベート変数の値を読み取ろうとすることですName。プライベート変数は、privateあることに注意してください。つまり、その変数が宣言されているオブジェクトからのみ読み取りと書き込みを行うことができます。他のオブジェクトがその変数にアクセスしたい場合は、getterメソッドを経由する必要があります。

編集:メソッドsetNameが呼び出されないため、名前は出力されません。forループインmethodも間違っています。

行う:

 public static void method(String name){ 
  className holdName = new className();
  className.set(name);
  System.out.println(holdName.getName());
 }

そしてそれを次のように呼びます:

 String str1 = JOptionPane.showInputDialog("Enter your name");
 method(str1);
于 2013-02-28T17:59:42.807 に答える