这是一个程序,要求用户输入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);
}
}
的className
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;
}
}
答案 0 :(得分:5)
是的,因为Name
的访问修饰符是私有的,您不能以这种方式访问它,因此不要直接调用HoldName.Name
使用getter方法HoldName.getName()
答案 1 :(得分:1)
问题是ReturnName
尝试读取私有变量Name
的值。请记住,私有变量只是:私有,即它只能从声明该变量的对象中读取和写入。如果其他对象想要访问该变量,则必须通过getter方法。
编辑:未打印名称,因为永远不会调用方法setName
。 method
中的for循环也是错误的。
执行:
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);