Java 对象构造函数返回 "null"
Java object constructor returning "null"
Java 的新手!
我创建了一个 class,其中包含用于各个领域的构造函数。但是,当我尝试打印字段时,我收到 "null" 作为输出。请帮我理解为什么。这是 class:`
public class User {
//All relevant information to identify each user.
private String FirstName;
private String LastName;
private String Email;
private long PhoneNum;
private long CardNum;
//Build Constructors for User info.
public User(String Fname, String Lname, String Mail, long num, long card)
{
Fname=FirstName;
Lname=LastName;
Mail=Email;
num=PhoneNum;
card=CardNum;
}
//Method to set FirstName.
public void setFirstName (String Fname)
{
FirstName=Fname;
}
//Method to get FirstName.
public String getFirstName()
{
return FirstName;
}
//Method to set LastName.
public void setLastName (String Lname)
{
LastName=Lname;
}
//Method to get Lastname.
public String getLastname()
{
return LastName;
}
//Method to set email.
public void setEmail (String Mail)
{
Email=Mail;
}
//Method to get email.
public String getEmail()
{
return Email;
}
//Method to set phonenumber.
public void setPhoneNum(long num)
{
PhoneNum=num;
}
//Method to get phonenumber.
public long getPhoneNum()
{
return PhoneNum;
}
//Method to set credit card number.
public void setCardNum(long card)
`enter code here`{
CardNum=card;
}
// Method to get credit card number.
public long getCardNum()
{
return CardNum;
}
现在当我 运行 这个代码时,我收到 "null":
public class UserDemo {
public static void main(String[] args)
{
String first="Matt";
String last="Burns";
String email="mburns267@yahoo.com";
long phone=333;
long card=222;
User Matt=new User(first,last,email,phone,card);
System.out.print(Matt.getLastname());
}
我做错了什么?提前致谢!
`
是反过来,而不是:
public User(String Fname, String Lname, String Mail, long num, long card){
Fname=FirstName;
Lname=LastName;
Mail=Email;
num=PhoneNum;
card=CardNum;
}
应该是:
public User(String Fname, String Lname, String Mail, long num, long card){
FirstName = Fname;
LastName = Lname;
Email = Mail;
PhoneNum = num;
CardNum = card;
}
要避免这种情况,您可以使用 this
关键字。这是一个例子:
String firstName;
public Constructor(String firstName){
this.firstName = firstName;
}
您的构造函数赋值方式有误:
public User(String Fname, String Lname, String Mail, long num, long card)
{
// this refers to the current object being constructed
this.FirstName = Fname;
this.LastName = Lname;
this.Email = Mail;
this.PhoneNum = num;
this.CardNum = card;
}
Java 构造函数对象应该像这样创建:
public User(String Fname, String Lname)
{
this.firstName = Fname;
//keyword 'this' refers to the new object, so the new object's Fname would equal the firstName place below
this.lastName = Lname; //same as above
}
要创建新用户,请使用此代码:
User Matt = new("Matt", "Burns"); //Creates a new User Matt, with firstName "Matt" and lastName "Burns"
System.out.println(Matt.getfirstName()); //prints User Matt's firstName to the console.
Java 的新手! 我创建了一个 class,其中包含用于各个领域的构造函数。但是,当我尝试打印字段时,我收到 "null" 作为输出。请帮我理解为什么。这是 class:`
public class User {
//All relevant information to identify each user.
private String FirstName;
private String LastName;
private String Email;
private long PhoneNum;
private long CardNum;
//Build Constructors for User info.
public User(String Fname, String Lname, String Mail, long num, long card)
{
Fname=FirstName;
Lname=LastName;
Mail=Email;
num=PhoneNum;
card=CardNum;
}
//Method to set FirstName.
public void setFirstName (String Fname)
{
FirstName=Fname;
}
//Method to get FirstName.
public String getFirstName()
{
return FirstName;
}
//Method to set LastName.
public void setLastName (String Lname)
{
LastName=Lname;
}
//Method to get Lastname.
public String getLastname()
{
return LastName;
}
//Method to set email.
public void setEmail (String Mail)
{
Email=Mail;
}
//Method to get email.
public String getEmail()
{
return Email;
}
//Method to set phonenumber.
public void setPhoneNum(long num)
{
PhoneNum=num;
}
//Method to get phonenumber.
public long getPhoneNum()
{
return PhoneNum;
}
//Method to set credit card number.
public void setCardNum(long card)
`enter code here`{
CardNum=card;
}
// Method to get credit card number.
public long getCardNum()
{
return CardNum;
}
现在当我 运行 这个代码时,我收到 "null":
public class UserDemo {
public static void main(String[] args)
{
String first="Matt";
String last="Burns";
String email="mburns267@yahoo.com";
long phone=333;
long card=222;
User Matt=new User(first,last,email,phone,card);
System.out.print(Matt.getLastname());
}
我做错了什么?提前致谢!
`
是反过来,而不是:
public User(String Fname, String Lname, String Mail, long num, long card){
Fname=FirstName;
Lname=LastName;
Mail=Email;
num=PhoneNum;
card=CardNum;
}
应该是:
public User(String Fname, String Lname, String Mail, long num, long card){
FirstName = Fname;
LastName = Lname;
Email = Mail;
PhoneNum = num;
CardNum = card;
}
要避免这种情况,您可以使用 this
关键字。这是一个例子:
String firstName;
public Constructor(String firstName){
this.firstName = firstName;
}
您的构造函数赋值方式有误:
public User(String Fname, String Lname, String Mail, long num, long card)
{
// this refers to the current object being constructed
this.FirstName = Fname;
this.LastName = Lname;
this.Email = Mail;
this.PhoneNum = num;
this.CardNum = card;
}
Java 构造函数对象应该像这样创建:
public User(String Fname, String Lname)
{
this.firstName = Fname;
//keyword 'this' refers to the new object, so the new object's Fname would equal the firstName place below
this.lastName = Lname; //same as above
}
要创建新用户,请使用此代码:
User Matt = new("Matt", "Burns"); //Creates a new User Matt, with firstName "Matt" and lastName "Burns"
System.out.println(Matt.getfirstName()); //prints User Matt's firstName to the console.