Java 调用我创建的减少变量值的方法不会对值产生影响。我怎样才能解决这个问题?
我的任务是创建一个模拟预付费手机使用的程序。它只能有四个属性,即double creditsLeft、int totalMinutesCalled、double ratePerCall和int textMessagesSent 该类应该实现以下方法:void load(double peso)、void call(int minutes)、double getLoadLeft()、int getTotalMinutesCalled()、void printSummary() 调用printSummary方法时,应按照以下步骤打印关于MobilePhone实例属性的报告Java 调用我创建的减少变量值的方法不会对值产生影响。我怎样才能解决这个问题?,java,Java,我的任务是创建一个模拟预付费手机使用的程序。它只能有四个属性,即double creditsLeft、int totalMinutesCalled、double ratePerCall和int textMessagesSent 该类应该实现以下方法:void load(double peso)、void call(int minutes)、double getLoadLeft()、int getTotalMinutesCalled()、void printSummary() 调用printSum
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()时递增它来使用它。最后一种方法如下所示:
public void sendTextMessages(){
creditsLeft--;
textMessagesSent++;
}
还考虑在调用Car()方法时更新“CurrestsLead”字段。
< P>如果我是对的,在调用更改之前调用PrtPosiple,因此它在发送之前返回值。在调用发送消息函数后尝试调用它 解决方案:package javaPackage;
public class Driver{
public static void main(String args[]){
MobilePhone mp = new MobilePhone();
mp.load(34.50);
mp.call(1);
mp.sendTextMessages();
mp.printSummary();
System.out.println(mp.getNumTextMessages());
}
}
对于第二个答案,只需创建一个类似“MessagesSent”的变量即可,并在调用Send Message函数时将其递增。该变量必须是全局变量,而不是局部变量;换句话说,将其粘贴在类中,而不是函数中
int messagesSent = 0;
private void sentTextMessages(){
creditsLeft --;
messagesSent ++;
}
creditsLeft在哪里申报?在电话班吗?是的。它在MobilePhone下,您也没有增加textMessagesSent,将其添加到sendTextMessage函数中;“除了上面提到的变量之外,我不允许再使用其他变量。”这可能只适用于最终结果。对于调试,您应该能够添加变量并在以后再次删除它们。我删除了top call,如果您需要它,请将其保留在那里。但要确保底线电话保持不变,否则就不起作用了:)谢谢。成功了。我完全忽略了这一点。您还可以帮我回答另一个关于计算sendTextMessages()被调用的次数的问题吗?请单击我的答案旁边的勾号,将其标记为正确。哦,天哪。我忽略了这一点。谢谢你能回答我的另一个问题吗?关于计算短信发送的次数?这个问题回答了你的问题吗?