0

这是一个要求用户输入 1 来存储名称的程序。然后程序会提示用户输入他/她的名字。之后,程序将数据存储在一个数组中。然后我必须使用一种方法来进行存储。但是,我有一个 getter 和 setter 方法,但我收到一个错误“错误:名称在 className 中具有私有访问权限”。

我想从我的“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.Nameuse getter方法HoldName.getName()

于 2013-02-28T17:58:00.540 回答
1

问题是ReturnName试图读取私有变量的值Name。请记住,私有变量就是:私有,即只能从声明该变量的对象中读取和写入。如果其他对象想要访问该变量,它们必须通过 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 回答