0

投稿しようとしているこの宿題のプロンプトに由来するリンクリストの質問があります。それは答えに役立つかもしれません:

詳細

Java Stringクラスは不変です(内容を変更することはできません)。これは、文字列で何をしたいのか(つまり、既存の文字列に変更を加える)の妨げになることがあります。したがって、この割り当てでは、MutableStringというクラスを作成します。注/免責事項:Java APIには可変のクラスStringBufferがありますが、この割り当ての目的と目的のために、私たちはそれについて知らないふりをします;-)

An object of the MutableString class contains the following operations/behaviors -- which means the class itself must contain the following methods:

Character charAt(int index): returns the Character at the specified index in the string -- if the index lies outside the string, throw a MutableStringIndexOutOfBoundsException (you must write this class)

void set(int index, Character ch): replaces the existing Character at the specified location -- if the index lies outside the string throw a MutableStringIndexOutOfBoundsException

void add(int index, Character ch): creates a new spot in the list for the Character at the index specified -- if the index lies outside the string throw a MutableStringIndexOutOfBoundsException

Character remove(int index): removes the Character at specified index -- if the index lies outside the string, throw a MutableStringIndexOutOfBoundsException

boolean remove(Character ch): removes the first occurrence (starting from the beginning of the MutableString) of the Character -- if the Character is not found, return false

boolean removeAll(Character ch): removes all occurrences of the specified Character -- if Character is not found, return false

void toUpper(): converts the current string to all upper case

void toLower(): converts the current string to all lower case

MutableString substring(int start, int finish): returns a string starting at the Character specified by start and concluding with the Character specified by finish -- if start or finish is outside the the string, throw a MutableStringIndexOutOfBoundsException

char [] toCharArray(): returns a char array containing all the characters in the string -- be sure and handle all cases

int length(): reports/returns the length of the string

String toString(): returns a String containing all the Characters

String toReverseString(): returns a String containing all the Characters in reverse order -- you must utilize recursion to accomplish this task

int compareTo(MutableString that): allows comparison of two MutableString objects -- this implies you will implement the Comparable interface for your MutableString class

void sort(): alphabetizes the letters in case-insensitive fashion in ascending order -- you must write the code for this sort (no API calls are allowed)

文字列の文字を表すには、リンクリストを使用する必要があります(LinkeListクラスを作成する必要があります)。LinkedListクラスには、リストを更新および変更するための基本的な操作が含まれている必要があります。これを念頭に置いて、JavaAPIにListインターフェースを実装します。LinkedListの機能に不要と思われるメソッドの場合は、それらのメソッドをスタブし、呼び出されたメソッドと実装されていないメソッドに関する情報を含む例外をスローします。注:LinkedListクラスがMutableString固有の処理を行わないことを確認してください。割り当てには、次のスタブアウトされたLinkedListクラスを自由に使用してください。必要なすべてのメソッドが含まれているとは限りませんが、JavaAPIのListインターフェイスのメソッドは含まれています。

MutableStringは、可能な限りLinkedListの動作(メソッド)を利用する必要があります(LinkedListクラスと同じことを行うMutableStringでコードを記述しないでください)。したがって、MutableStringには、LinkedListオブジェクトへの参照であるフィールドが含まれます。ところで、この概念は委任として知られています。これは、ソフトウェアエンジニアリングと設計において非常に重要なアイデアです。LinkedListから継承するようにMutableStringを設計しないでください。

MutableStringの各ノードにはCharacterが含まれている必要があります。これは、ノードクラスのデータへの参照がCharacterタイプである必要があることを意味するものではないことに注意してください。これにより、LinkedListクラスがMutableStringに固有になります。この場合はそれ。

**私が理解していない部分は、リンクリストクラスからの継承について説明している上記の段落2です。私はいつもパブリッククラスMutableStringextendsLinkedListのようなものを書くことに慣れていましたが、それはできず、クラスから継承せずにこのmutablestringクラスを書き始める方法を本当に知りません。それを行う方法を説明するのに役立ち、違いは素晴らしいでしょう。ありがとう。

私はリンクリストがあまり得意ではないので、この質問はむき出しです:) **

4

1 に答える 1

0

継承の代わりに委任を使用する必要があると書かれています。

委任と継承の違いについては、これを確認してください。例を挙げて説明します。

于 2012-04-22T08:31:08.670 に答える