我首先要指出的是,我对Java还是很陌生,所以轻松一点。 :)

我有一个随机生成名称的方法。
我只是想知道是否更好的做法是像这样直接使用返回类型调用方法:

String personName = People.nameGen();


还是如我最近所了解的那样,创建“获取”方法以获取“实例”?像这样的变量:

public String getName(){
return this.name;
}


然后:

String personName = Person1.getName();


我已经尝试过这两种方法,并且它们似乎工作完全相同,我似乎无法为为什么要使用另一种方法而束手无策。

甚至直接调用实例变量。

name = People.name; or something like that?


所有这些选项将生成我在该方法中生成的人的名字的输出。

编辑,这就是我所拥有的:

import java.util.Random;
public class People {

int genderCode;
int age;
String gender;
String name;

public People(){
    genderCode = genderCode(); //I use genderCode for the nameGen method
}

public int genderCode(){
    Random randNum = new Random();
    genderCode = randNum.nextInt(2);
    return genderCode;
}

public int age(){
    Random randNum = new Random();
     age = 1+randNum.nextInt(80);
    return age;
}

public String gender(){
    if (genderCode == 0 && age <=18) {
        gender = "girl";
    } else if (genderCode == 0 && age >18){
        gender = "woman";
    } else if (genderCode == 1 && age <=18){
        gender = "boy";
    } else if (genderCode == 1 && age >18){
        gender = "man";
    }
    return gender;
}

public String nameGen() {
    String[] firstNameGirl = { "Lucy", "Marry", "Bonnie", "Clair" }; //More names will be added later
    String[] firstNameBoy = { "Bob", "Jacob", "William", "Nathan" };
    String[] lastName = { "Smith", "Brown", "Johnson" };

    Random randNum = new Random();

    if (genderCode == 0) {
        String girlName = firstNameGirl[randNum.nextInt(firstNameGirl.length)]+ " "+ lastName[randNum.nextInt(lastName.length)];
        name = girlName;
    } else if (genderCode == 1){
        String boyName = firstNameBoy[randNum.nextInt(firstNameBoy.length)]
                + " " + lastName[randNum.nextInt(lastName.length)];
        name = boyName;
    }
    return name;
}
}


然后,主要来说,我只想随意结识一个新人。例如:

System.out.println("You meet a " +age+ " year old " +gender+ " named " + name);


感谢所有快速解答!他们都是独一无二的信息!

最佳答案

您的实例变量通常是私有的,这就是为什么您要创建一个getter / setter来访问它们的原因。您的getName()方法是任何类都可以调用的公共方法。使用哪一种取决于您希望您的班级如何运作。如果该类的目的是生成一个随机名称,则可以使用Jigar的示例。

如果您的getName()函数应该检索人的名字(实例变量),那么您将使用getter。

10-07 19:51
查看更多