Java 我如何让kicker会员可以在下面三个加油站之间转移?
给定Kickback类和三个子类,它们是Store的子类,Store是Kickback的子类。理解到该类中的Kicker成员持有回扣点,这些回扣点被封装为返回到Person类中的dummy。如何使回扣子类中的回扣成员在三个加油站之间可转移。换言之,我如何设置回扣中的回扣者和个人的封装成员点数,在神圣访问的变化后保持85分,在76次访问获得125分后保持210分?下面的代码是回扣类、Person对象和上述加油站。任何真诚的帮助都将不胜感激。如果它仍然可能是一个大代码转储,我道歉;我正在尽可能地直截了当 回扣Java 我如何让kicker会员可以在下面三个加油站之间转移?,java,inheritance,methods,polymorphism,instance,Java,Inheritance,Methods,Polymorphism,Instance,给定Kickback类和三个子类,它们是Store的子类,Store是Kickback的子类。理解到该类中的Kicker成员持有回扣点,这些回扣点被封装为返回到Person类中的dummy。如何使回扣子类中的回扣成员在三个加油站之间可转移。换言之,我如何设置回扣中的回扣者和个人的封装成员点数,在神圣访问的变化后保持85分,在76次访问获得125分后保持210分?下面的代码是回扣类、Person对象和上述加油站。任何真诚的帮助都将不胜感激。如果它仍然可能是一个大代码转储,我道歉;我正在尽可能地直截
import java.util.*;
public class Kickback{
public static final int START = 0;
public static final int REWARD = 50;
protected Person visitor;
protected int purchase, kicker;
protected String name;
public Kickback(){
visitor = new Person(purchase,kicker);
name = "Darin Douglas";
}
public double get_points(){
return kicker += purchase/REWARD;
}
public boolean redeem_points(){
if(kicker < purchase){
purchase -= kicker;
zeroKB();
return true;
}
kicker -= purchase;
return false;
}
public double zeroKB(){
return kicker = START;
}
}
七十年代:
import java.util.*;
public class SeventySix extends Store{
public SeventySix(){
super();
}
public void nav(){
super.init();
System.out.print(super.toString());
}
}
Jmart:
import java.util.*;
import java.io.*;
public class Jmart extends Store{
public static final int PERCENT = 100;
public Jmart(){
super();
}
public void init(){
System.out.print("Enter in an amount: ");
purchase = scan.nextInt();
get_points();
super.spend_money();
System.out.println(super.toString());
}
public double get_points(){
return kicker += purchase/PERCENT;
}
}
假人:
import java.util.*;
public class Person{
private int cash, debit, amount, points;
public static final int CASH = 1000;
public static final int CREDIT = 3000;
public Person(int purchase, int kicker){
cash = CASH;
debit = CREDIT;
amount = purchase;
points = kicker;
}
public boolean use_cash(){
if(cash < amount){
amount -= cash;
System.out.println("We got " + cash + "cash.\nYour remaining balance is " + amount + "\nPlease try another method of payment.");
reset_cash();
return true;
}
cash -= amount;
return false;
}
public boolean use_card(){
if(debit < amount){
System.out.println("Card Declined.\nPlease try another method of payment.");
return true;
}
debit -= amount;
return false;
}
public double reset_cash(){
return cash = Kickback.START;
}
}
import java.util.*;
公共阶层人士{
私人int现金、借记、金额、积分;
公共静态最终整数现金=1000;
公共静态最终积分=3000;
公众人士(国际采购、国际踢球者){
现金=现金;
借方=贷方;
金额=购买;
分数=踢球者;
}
公共布尔使用_cash(){
如果(现金<金额){
金额-=现金;
System.out.println(“我们得到了“+现金+”现金。\n您的剩余余额是“+金额+”\n请尝试其他付款方式。”);
重置现金();
返回true;
}
现金-=金额;
返回false;
}
公共布尔使用卡(){
如果(借方<金额){
System.out.println(“卡被拒绝。\n请尝试其他付款方式”);
返回true;
}
借方-=金额;
返回false;
}
公共双重设_现金(){
返回现金=回扣。开始;
}
}
既然你已经发布了你的全部代码,而且代码很长,只需要一个人就可以破译和调试,那么我会让你开始。首先,我知道你创建的回扣类的目的是为回扣卡建模以存储奖励积分。因此,通过创建一个类,您已经创建了一个用户定义的类型。在方法“获取_点”中,将“双重回扣”作为参数传递。参数和变量由与值对应的类型和标识符表示。参数可能是“Kickback myCard”或类似的类型,但在这种情况下,由于您试图修改回扣卡的值,并且您在Kickback类中,因此不需要类型为Kickback的参数。您只需要直接修改名为cardValue的类的私有成员,该成员可能具有double类型。Java不支持运算符重载。你不能只做回扣++。因此,在声明私有成员时,请声明一个名为myCardValue的属性:
double myCardValue;
因此,与其这样做
Kickback += purchase*REWARD;
您需要修改myCardValue成员:
myCardValue += purchase*REWARD.
注意:扫描器不应该是回扣的成员,这些常量也不应该是回扣的成员。这些常量应该在程序的类之外声明和初始化。它们是公共的,因此所有班级都可以访问它们
假设您希望在其他类中使用此成员,则必须提供与回扣类的myCardValue成员交互的getter和setter方法(也称为accessor和mutator方法)。前
public static double getKickBackCardVal(){
return myCardValue;
}
请记住,回扣是一种类型/对象。在Person类中,Person应该具有一个属性,该属性是回扣类实例的声明:
Kickback myCard;
因为我假设在你的世界里,你想要一张回扣卡。希望这有帮助。对于如此冗长复杂的解释,我深表歉意,但您已经发布了整个代码以进行调试,从代码中可以看出,您需要更好地理解类和对象,以及它们是如何创建和交互的。阅读命名约定。它使我们所有人的痛苦都大大减轻了,而且也减轻了格式的痛苦。代码转储很困难。我确实缩短了很多。怎么还是太长了?非常感谢你昨天的首发。我设法创建了一个Kickback对象,它将指向Kickback类的所有成员。我有一种感觉,回扣课现在正在做它的工作。现在,这是一个修改它的问题,这样我就不必将现金、借方和贷方成员传递到存储中。尽管如此,设置它使存储方法在所有加油站都有效,并在适当的情况下覆盖。在你的帮助下,我修改了昨天的代码。
Kickback myCard;