ユーザーが書いた 10 語を収集し、指定された順序で出力する小さな Java プログラムがあります。このままでは、プログラムは機能しますが、まとまりがありません。
私の問題は、Java/OO 言語を初めて使用するだけでなく、これを修正するための結合の概念について十分に理解していないことに起因しています。
クラス Entry はあまりにも雑然としていて、別のクラスがこのクラスの機能の一部を引き継ぐべきだと思います。
不可解なものであろうとなかろうと、ヒントや手がかりをいただければ幸いです。
元のコードは独自のコードを使用しているため、Dialogue.java に入力リーダーがないのは意図的なものです。
これらは、entry、dialog、printer の 3 つのクラスです。
Entry.java
public class Entry {
public static void main(String[] args){
String[] wordArray = new String[10];
Dialogue d = new Dialogue();
wordArray = d.read(wordArray);
Printer p = new Printer();
p.printForwards(wordArray);
p.printBackwards(wordArray);
p.printEveryOther(wordArray);
}
}
Dialogue.java
public class Dialogue {
public String[] read(String[] s){
String[] temp;
temp = new String[s.length];
for(int i=0;i<s.length;i++){
String str = anything that reads input("Enter word number" + " " + (i+1));
temp[i] = str;
}
return temp;
}
}
プリンター.java
public class Printer {
public void printForwards(String[] s){
System.out.println("Forwards:");
for(int i=0;i<s.length;i++){
System.out.print(s[i] + " ");
if(i==s.length-1){
System.out.println("");
}
}
}
public void printBackwards(String[] s){
System.out.println("Backwards:");
for(int i=s.length-1;i>=0;i--){
System.out.print(s[i]+ " ");
if(i==0){
System.out.println("");
}
}
}
public void printEveryOther(String[] s){
System.out.println("Every other:");
for(int i = 0; i < s.length; i++){
if(i % 2 == 0){
System.out.print(s[i] + " ");
}
}
}
}// /class