我正在学习CS类中的继承和多态性,并认为找到一些我可以应用的东西是个好主意。我有很多想法,有时候有些事情我想做,有些事情我不想做。为什么不让Java来做决定呢?
我正在寻找反馈,以使我的代码更好:无论是我可以做的可读性或继承,甚至数据结构明智。或者说,如果有bug,也很高兴知道:)
有多个类扩展了MakeChoice,我只是没有把它们放在这里。
import java.util.*;
public class MakeChoice {
// main
public static void main(String[] args) {
makeChoice makerShareChoice = new makeChoiceMakerShare();
System.out.println(makerShareChoice);
}
public static int getChoiceForArrayList(int size) {
int choice = generateRandomIntRange(0, size - 1);
return choice;
}
public static int generateRandomIntRange(int min, int max) {
int range = (max - min) + 1;
int random = (int) (Math.random() * range + min);
return random;
}
}
import java.util.*;
public class MakeChoiceMakerShare extends makeChoice {
private static ArrayList<String> choices = new ArrayList<String>();
public makeChoiceMakerShare() {
super();
choices.add("acrylic LED");
choices.add("MESA EduPi");
choices.add("Collage of whiteboard wall");
choices.add("sponge mitts");
choices.add("hooks in closet");
choices.add("10 x 10 LED Matrix");
choices.add("What should I make? CoMotion addition to matrix");
choices.add("What should I do this week? Screen");
choices.add("Lasercraft belt + UW belt buckle + Wallet");
}
public String toString() {
return "Your choice for this week in " + this.getClass() + " is: " + choices.get(getChoiceForArrayList(choices.size()));
}
}发布于 2017-10-09 18:07:30
首先,我不知道为什么首先需要继承,而不是将选择数组传递到init函数中。我想只是为了继承遗产?
-如果这是您计划在大多数子类中使用的功能,我会将您的toString函数移到基类中。我还会重命名这个函数,以避免常见的关键字,并且更具描述性--类似printResult这样的东西可能更有意义,除非您的意图是重载内置的toString函数。
https://codereview.stackexchange.com/questions/177542
复制相似问题