gpt4 book ai didi

java - 如何将变量从一种方法传输到另一种方法而不将其存储在 Java 的类中?

转载 作者:行者123 更新时间:2023-12-01 11:46:06 25 4
gpt4 key购买 nike

我有一个类,其中包含三种方法,用于确定信用卡是否有效、信用卡类型是什么,以及用 x 代替除最后四位数字之外的所有数字。这是一个类(class),我的老师不希望我在这个类(class)中存储信用卡的变量。因此,在我的其他类(class)中,我必须在方法中询问信用卡号并将其存储在该方法中。但是,我想要第二种方法来调用用于显示信用卡类型和显示格式化数字的方法,但我不知道如何将变量从第一个方法传输到下一个方法。请帮忙。

这是我的 readCreditCard 方法,它询问信用卡号并确定它是否有效:

public void readCreditCard(CreditCard creditCard)
{
System.out.print("\nPlease enter your Credit Card Number: ");
String creditCardNum = keyboard.next();

while (creditCard.isCardValid(creditCardNum) == false)
{
System.out.println("Invalid credit card number" + creditCardNum);
System.out.println("Please try again.");

System.out.print("\nPlease enter your Credit Card Number: ");
creditCardNum = keyboard.next();
}


}

我想要一个名为 printCreditCard 的方法,它允许我使用 readCreditCard 方法中的变量creditCardNum,以便我可以在 CreditCard 类中使用其他两个方法,但我不知道如何执行此操作。

这是 CreditCard 类的内容:

public boolean isCardValid(String creditCard)
{
boolean valid;
String singleDigitPrefix = creditCard.substring(0, 1);
String doubleDigitPrefix = creditCard.substring(0, 2);

if ((creditCard.length() == 13 || creditCard.length() == 16) && singleDigitPrefix.equals("4"))
{
valid = true;
}
else if (creditCard.length() == 16 && (doubleDigitPrefix.equals("51") ||
doubleDigitPrefix.equals("52") || doubleDigitPrefix.equals("53") ||
doubleDigitPrefix.equals("54") || doubleDigitPrefix.equals("55")))
{
valid = true;
}
else if (creditCard.length() == 15 && doubleDigitPrefix.equals("37"))
{
valid = true;
}
else
{
valid = false;
}

return valid;
}

public String getCardType(String creditCard)
{
String cardType = null;

String singleDigitPrefix = creditCard.substring(0, 1);
String doubleDigitPrefix = creditCard.substring(0, 2);

if ((creditCard.length() == 13 || creditCard.length() == 16) && singleDigitPrefix.equals("4"))
{
cardType = "Visa";
}
else if (creditCard.length() == 16 && (doubleDigitPrefix.equals("51") ||
doubleDigitPrefix.equals("52") || doubleDigitPrefix.equals("53") ||
doubleDigitPrefix.equals("54") || doubleDigitPrefix.equals("55")))
{
cardType = "MasterCard";
}
else if (creditCard.length() == 15 && doubleDigitPrefix.equals("37"))
{
cardType = "American Express";
}
else
{

}

return cardType;
}

public String maskCardNumber(String creditCard)
{
String formattedNum = null;

if (getCardType(creditCard).equals("Visa"))
{
if (creditCard.length() == 13)
{
formattedNum = "XXXXXXXXX" + creditCard.substring(8, 13);
}
else
{
formattedNum = "XXXXXXXXXXXX" + creditCard.substring(11, 16);
}
}
else if (getCardType(creditCard).equals("MasterCard"))
{
formattedNum = "XXXXXXXXXXXX" + creditCard.substring(11, 16);
}
else if (getCardType(creditCard).equals("American Express"))
{
formattedNum = "XXXXXXXXXXX" + creditCard.substring(10, 15);
}
else;

return formattedNum;




}

}

最佳答案

创建一个带有名为creditCardNum等成员变量的bean。该方法将此bean返回给方法需要的地方。

关于java - 如何将变量从一种方法传输到另一种方法而不将其存储在 Java 的类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29113460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com