重载方法不更改对象中的值
Overload method not changing values in object
所以我在 main
class 中有两个重载方法,我试图用它们来设置对象的值。这些方法是从另一个 class 使用的,但它似乎没有做任何事情。当我使用显示方法时,它打印出 Customer
的原始值,而不是该方法设置的新值。
public class Customer {
int customerID = 0;
String name = "Name required";
String address = "Address required";
String phoneNumber = "Phone Required";
String eMail = "email optional";
public void setCustomerInfo(int ID, String nm, String addr, String phn) {
int customerID = ID;
String name = nm;
String address = addr;
String phoneNumber = phn;
}
public void setCustomerInfo(int ID, String nm, String addr, String phn, String mail) {
int customerID = ID;
String name = nm;
String address = addr;
String phoneNumber = phn;
String eMail = mail;
}
public void display() {
System.out.println("Customer ID: " + customerID);
System.out.println("Customer Name: " + name);
System.out.println("Customer Address: " + address);
System.out.println("Customer Phone Number: " + phoneNumber);
System.out.println("Customer Email Address: " + eMail);
}
}
-
public class CustomerTest {
public static void main(String args[]) {
Customer c1 = new Customer();
Customer c2 = new Customer();
c1.setCustomerInfo(1, "Greg", "123 Real Street", "1234-5678");
c2.setCustomerInfo(2, "Mike", "123 Fake Street", "9876-5432", "RealEmails@Emails.com");
System.out.println(c1.name);
c1.display();
c2.display();
}
}
但是程序打印来自 Customer 实例的初始值:
Name required
Customer ID: 0
Customer Name: Name required
Customer Address: Address required
Customer Phone Number: Phone Required
Customer Email Address: email optional
Customer ID: 0
Customer Name: Name required
Customer Address: Address required
Customer Phone Number: Phone Required
Customer Email Address: email optional
您的方法正在为局部变量而不是 class 成员赋值。将它们更改为:
public void setCustomerInfo(int ID, String nm, String addr, String phn) {
customerID = ID;
name = nm;
address = addr;
phoneNumber = phn;
}
public void setCustomerInfo(int ID, String nm, String addr, String phn, String mail) {
customerID = ID;
name = nm;
address = addr;
phoneNumber = phn;
eMail = mail;
}
所以我在 main
class 中有两个重载方法,我试图用它们来设置对象的值。这些方法是从另一个 class 使用的,但它似乎没有做任何事情。当我使用显示方法时,它打印出 Customer
的原始值,而不是该方法设置的新值。
public class Customer {
int customerID = 0;
String name = "Name required";
String address = "Address required";
String phoneNumber = "Phone Required";
String eMail = "email optional";
public void setCustomerInfo(int ID, String nm, String addr, String phn) {
int customerID = ID;
String name = nm;
String address = addr;
String phoneNumber = phn;
}
public void setCustomerInfo(int ID, String nm, String addr, String phn, String mail) {
int customerID = ID;
String name = nm;
String address = addr;
String phoneNumber = phn;
String eMail = mail;
}
public void display() {
System.out.println("Customer ID: " + customerID);
System.out.println("Customer Name: " + name);
System.out.println("Customer Address: " + address);
System.out.println("Customer Phone Number: " + phoneNumber);
System.out.println("Customer Email Address: " + eMail);
}
}
-
public class CustomerTest {
public static void main(String args[]) {
Customer c1 = new Customer();
Customer c2 = new Customer();
c1.setCustomerInfo(1, "Greg", "123 Real Street", "1234-5678");
c2.setCustomerInfo(2, "Mike", "123 Fake Street", "9876-5432", "RealEmails@Emails.com");
System.out.println(c1.name);
c1.display();
c2.display();
}
}
但是程序打印来自 Customer 实例的初始值:
Name required
Customer ID: 0
Customer Name: Name required
Customer Address: Address required
Customer Phone Number: Phone Required
Customer Email Address: email optional
Customer ID: 0
Customer Name: Name required
Customer Address: Address required
Customer Phone Number: Phone Required
Customer Email Address: email optional
您的方法正在为局部变量而不是 class 成员赋值。将它们更改为:
public void setCustomerInfo(int ID, String nm, String addr, String phn) {
customerID = ID;
name = nm;
address = addr;
phoneNumber = phn;
}
public void setCustomerInfo(int ID, String nm, String addr, String phn, String mail) {
customerID = ID;
name = nm;
address = addr;
phoneNumber = phn;
eMail = mail;
}