我首先要指出的是,我对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。