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;
}
这是一个学校项目。我构建了一个简单的 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;
}