Java: 初学者帮助获取变量

Java: beginner help getting variable

这是一个学校项目。我构建了一个简单的 class,其中包含 3 个字符串变量和一个构造函数来填充这些字段。

public class Names {
String firstName;
String middleName;
String lastName;

public Names(String name){
    System.out.println("Passed name is: " + name);
}

public void setFirstName(String name){
    firstName = name;
}
public void setMiddleName(String name){
    middleName = name;
}
public void setLastName(String name){
    lastName = name;
}

public static void main(String []args){
    Names drew = new Names("Drew");

    drew.setFirstName("Drew");
    drew.setMiddleName("Leland");
    drew.setLastName("Sommer");

    System.out.println(drew.firstName + " " + drew.middleName + " " + drew.lastName);
}

public getFirstName(String name){

}
public getMiddleName(String name){

}
public getLastName(String name){

}}

在底部的 getFirstName、getMiddleName、getLastName 我希望能够传递类似 getFirstName(drew) 的东西并拥有它 return drew.firstName?

我对 java 很陌生,仅供参考。

public String getFirstName() {
    return this.firstName;
}

这将 return 您调用它的对象的名字。

你可以这样称呼它:

System.out.println(drew.getFirstName() + " " + drew.middleName + " " + drew.lastName);

然后您可以对 getMiddleName 和 getLastName 执行相同的操作。

这些是 "getter" methods 到 return 实例字段的值。 drew 是您当前的 Names 实例,因此如果您在此实例上调用这些方法,您将收到您使用 "setter" 方法设置的值。由于您是在特定实例上调用它们,因此不需要将其作为方法参数传递。这就是为什么这些 getter 方法通常是无参数的。

它们应该是这样的:

public String getFirstName() {
    return firstName;
}

public String getMiddleName() {
    return middleName;
}

public String getLastName() {
    return lastName;
}

请注意我添加了对应的return类型(String),因为每个实例字段的数据类型是String.

您在 main 方法中的 println 调用将如下所示:

System.out.println(drew.getFirstName() + " " + drew.getMiddleName() + " " + drew.getLastName());

您的 get 方法将由您的 Names class 的实例调用。当您创建 class 的实例并为其分配一个变量名时,只需使用该变量名来调用该方法,它将 return 该实例的名称。

//Instantiate the Names class
Names drew = new Names("Drew");

//Call methods to set the names
drew.setFirstName("Drew");
drew.setMiddleName("John");
drew.setLastName("Smith");

//Call methods to get the names
drew.getFirstName();   //Returns "Drew"
drew.getMiddleName();  //Returns "John"
drew.getLastName();    //Returns "Smith"

而且,像其他人建议的那样,您的获取/设置方法应该是这样的:

public void setFirstName(String n){
    firstName = n;
}
public String getFirstName(){
    return firstName;
}

如你所说,"I want to be able to pass something like getFirstName(drew) and have it return drew.firstName" 所以实现很简单,

public String getFirstName(Names other) {
    return other.firstName;
}