Ong*_*gys 4 java string methods return
我是Java编程的初学者,我尽我所能,但我似乎无法解决我的问题.
我面临的问题是getCardID()方法保持返回null值,getTokenBalance()似乎工作正常,或者我需要特殊的代码来返回字符串值getCardID()?
任何帮助都非常感谢.
这是Prepaidcard.java班级:
class PrepaidCard {
private String cardID;
private int tokenBalance;
public PrepaidCard(String id) { // My First Constructor
String cardID = id ;
}
public PrepaidCard(String id, int token) { // My Second Constructor
String cardID = id;
tokenBalance = token;
}
public void addToken(int token) { // Methods
tokenBalance =token+tokenBalance;
}
public void deductToken(int token) { // Methods
tokenBalance=tokenBalance-token;
}
public int getTokenBalance() { // Methods
return tokenBalance;
}
public String getCardID() { // Why does this method keep returning null value?
return cardID;
}
}
Run Code Online (Sandbox Code Playgroud)
这是用于测试的类 prepaidcard.java
import java.util.*;
class testprepaid {
public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Insert card1 id : ");
String newid = sc.nextLine(); // my scanner class that read user input in String
System.out.print("Insert card2 id : ");
String newid2 = sc.nextLine(); // my scanner class that read user input in String
System.out.print("Enter Card2 initial token : ");
int itoken = sc.nextInt();
PrepaidCard card1 = new PrepaidCard(newid); // object created base on 1st & 2nd Constructor
PrepaidCard card2 = new PrepaidCard(newid2,itoken);
System.out.println("Card1 ID: " + card1.getCardID()); // the method return null when called
System.out.println("Card1 token balance : " + card1.getTokenBalance());
System.out.println("Card2 ID: " + card2.getCardID()); // and this
System.out.println("Card2 token balance : " + card2.getTokenBalance());
Run Code Online (Sandbox Code Playgroud)
而其他行没有错误,所以我没有添加它们.
您可以在此处查看我的运行时错误.
在构造函数中,您声明了一个新的局部变量:
public PrepaidCard(String id, int token) {// My Second Constructor
String cardID = id; //This should be cardID = id;
tokenBalance = token;
}
Run Code Online (Sandbox Code Playgroud)
根据您的IDE,您可以启用可以告诉您未初始化的私有成员的警告.