无法在属性中存储值

时间:2016-07-25 06:31:19

标签: java

我创建了一个名为Person的类。我在类中构造函数的属性中存储数据时遇到了麻烦。我做了一个测试人员并用第一个构造函数尝试了它,但它说它无法找到变量。我真正想要做的是创建一个Person类的数组 - “Person”的数量将取决于用户的输入(选择)并显示它。

[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"UITableViewCell"];

这是测试人员代码:

public class Person
    {
        private String fname;
        private String lname;
        private byte age;

     public Person(String fn, String ln, byte edad)
        {
            fname=fn;
            lname=ln;
            age=edad;      
        }    
     public Person(String fn, String ln)
        {
            fname=fn;
            lname=ln;
            age=20;
        }
     public int getAge()
        {
            return age;
        }
     public String getFname()
        {
            return fname;
        }
     public String getLname()
        {
            return lname;
        }   
    }

2 个答案:

答案 0 :(得分:1)

您应该在拥有值后创建Person对象 将代码修改为此

Person p1 ;
String fname,lname;
int age;
Person[] Arr = new Person[choice];
for(ctr=0; ctr<choice; ctr++){
    System.out.print("First name:");
    fname=scan.next();
    System.out.print("Last name:");
    lname=scan.next();
    System.out.print("Age:");
    age=scan.nextInt();
    p1 =new Person(fname, lname, age);
    Arr[ctr]=p1;
}

这将填充数组

答案 1 :(得分:0)

您需要先声明变量(fname,lname,age),然后才能为其分配值或使用它们。

以下语句声明了一个String变量fname,并在控制台输入中为其指定下一个字符串标记。

String fname = scan.next();

然后使用此变量作为person的构造函数参数,如:

Person p1 = new Person(fname, lname, age);

把它们放在一起,它应该是:

Person[] Arr = new Person[choice];
    for(ctr=0; ctr<choice; ctr++){
        System.out.print("First name:");
        String fname = scan.next();
        System.out.print("Last name:");
        String lname = scan.next();
        System.out.print("Age:");
        byte age = scan.nextByte();

        Person p1 = new Person(fname, lname, age);
        Arr[ctr] = p1;
    }