我的任务是创建一个模拟预付费手机使用的程序。它只能有四个属性,即 double creditsLeft、int totalMinutesCalled、double ratePerCall 和 int textMessagesSent。
该类应实现这些方法:void load(double pesos)、void call(int minutes)、double getLoadLeft()、int getTotalMinutesCalled()、void printSummary()。
当调用 printSummary 方法时,应随后打印出有关 MobilePhone 实例属性的报告。
package javaPackage;
public class Driver{
public static void main(String args[]){
MobilePhone mp = new MobilePhone();
mp.load(34.50);
mp.call(1);
mp.printSummary();
mp.sendTextMessages();
System.out.println(mp.getNumTextMessages());
}
}
预期输出:
Credits left: P27.00
Total call duration: 1 mins.
Rate per call: P6.50
Number of text messages sent: 1
这是我的代码。
package javaPackage;
public class MobilePhone {
double creditsLeft;
int totalMinutesCalled;
double ratePerCall;
int textMessagesSent;
public MobilePhone(){
creditsLeft=0;
totalMinutesCalled=0;
ratePerCall=6.50;
textMessagesSent=0;
}
public void call(int minutes){
totalMinutesCalled=minutes;
}
public void load( double pesos ){
creditsLeft=pesos;
}
public int getTotalMinutesCalled(){
return totalMinutesCalled;
}
public void changeRate(double newCallRate){
ratePerCall=newCallRate;
}
public void sendTextMessages(){
creditsLeft--;
}
public int getNumTextMessages(){
return textMessagesSent ;
}
public void printSummary(){
System.out.println("Credits left:"+ (creditsLeft -(totalMinutesCalled*ratePerCall)));
System.out.println("Total call duration:" +totalMinutesCalled);
System.out.println("Rate per call:"+ ratePerCall);
System.out.print("Numer of text messages sent:" );
}
}
但是,我遇到了一些问题。调用 sendTextMessages() 不会减少 creditsLeft 的值。
此外,如何显示调用 sendTextMessages() 的次数以显示发送短信的次数?除了上面提到的变量之外,我不允许使用任何其他变量。
这是我的输出。
Credits left:28.0
Total call duration:1
Rate per call:6.5
Number of text messages sent:0
目前,发送的短信数量始终为0,因为我还不知道如何完成这个程序。自从我调用了一次 sendTextMessages() 以来,剩下的积分应该是 27。
我对编程很陌生,只知道很少的东西。任何帮助将不胜感激。提前致谢。
最佳答案
变了!你看不到它,因为你必须打电话
phone.printSummary()
发送短信后第二次。
关于第二个问题: 您已经声明了字段“textMessagesSent”。每次调用 sendTextMessages() 时通过增加它来使用它。 final方法如下所示:
public void sendTextMessages(){
creditsLeft--;
textMessagesSent++;
}
还应考虑在调用 call() 方法时更新“creditsLeft”字段。
关于java - 调用我创建的方法来减少变量的值不会对该值产生影响。我该如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34806343/