2012-02-20 8 views
0

チャットボットクラス:チャットボットクラス(サービスクラス)とチャットボットクライアント(アプリケーション)クラス

チャットボットは、1つまたは複数の人間と知的な会話をシミュレートするように設計されたコンピュータプログラムです。このラボでは、セミスター全体を通して強化されるチャットボットのフレームワークを確立します。

ChatBotクラスは、チャットボットを識別する名前フィールドを定義します(あなたのチャットボットの名前を任意に指定します)。これは不変フィールドです。 nameフィールドにはアクセサメソッドのみが必要です。名前フィールドは、デフォルトのコンストラクタで設定する必要があります。

ChatBotクラスは、チャットボットの名前を含む紹介メッセージを返す2つの追加メソッドを定義します。もう一方はStringを受け取り、String応答を生成します。この時点で、replyメソッドは常に同じメッセージを返します。

これは、UMLダイアグラムは

チャットボット(クラスまたはコンストラクタ)

マイナスのように見えるものである - 名前(プライベート):文字列

プラス(+パブリック)のgetName():文字列

plus(+ public)introbot():String

plus public public reply(userInput:String):String

ChatBotクライアント:

クライアントアプリケーションは、最終使用とチャットボットの間のチャットを管理します。クライアントは、エンドユーザーのコメントを取得し、チャットボットに渡し、チャットボットの応答を取得して表示する役割を担います。ユーザーまたはチャットボックスの名前を入力プロンプトとして使用する必要があります。以下は、クライアントの実行例である:

は、あなたの名前を入力してください:ジェフ

こんにちは!私の名前はmutebot

ジェフ>ハロー

mutebotです>私は、これはこれは

import java.util.Scanner; 
public class ChatbotClient 
{ 
    public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 
     System.out.println("What is your name? "); 
     String name = input.nextLine(); 

     System.out.println("\nHi " + name + " My name is copbot"); 


     System.out.println(name); 
     String reply = input.nextLine(); 

     System.out.println("/ncopbot" + "I'm just learning how to talk "); 



    } 
} 
私のアプリケーションクラスです

/* 
* Java Car service class 
* @author blake 
* 2/13/2012 
*/ 

public class Chatbot 
{ 
    private final String name; 
    private String introbot; 
    private String reply; 

    public Chatbot(String newName, String newIntrobot, String newReply) 
    { 
    name = newName; 
    } 


    public String getName() 
    { 
    return name; 
    } 
} 

私のサービスクラスである

を話すことを学んでいます

これがまさに問題が尋ねられているか要求されているか正確にはわかりません。これがそれを行う方法であれば。

私はサービスクラスは大丈夫かもしれないと思いますが、アプリケーションクラスについてはあまりよく分かりません。それはあなたのアクセサやミューテータなどを行う場所であるため、あなたはフィールドとサービスクラス内のインスタンス

答えて

0

修正するにはいくつかのことがありますが、正しい方向に向かっています。

チャットボットにはインポート行が壊れていますが、コピー/貼り付けの不具合に過ぎません。

説明では、チャットボットの名前が読み取り専用であるが、セッターメソッドがあると指定されているため、そのようなことは望ましくありません。 ;)また、UMLはString変数を返すのではなく、Stringを返すメソッドとして "introbot"と "reply"を記述しています。

これらの変更を加えたら、チャットボットクライアントからこれらの2つのメソッドを呼び出すことができるはずです。現在 "System.out.println"行がある場合、これらはチャットボットの呼び出しでなければなりません。例えば、フラグメント:

"My name is copbot" 

"My name is " + myChatbot.getName() 

応答のようなものになるはずである(ユーザ入力は:String)メソッドは、パラメータのリストを渡されたユーザ入力を有するべきです。その戻り値(Stringも)を使用して、 "私はちょうど話す方法を学んでいます"というprintlnを記入することができます。

幸運を祈る!

+0

あなたはチャットボットに破線のインポートがあったと言っていましたが、それはどういう意味ですか、セッターメソッドを持っていると読んだ部分だけは、サービスクラスからセット名文字列を削除する必要があります。 – blake

+0

あなたのコメントのすぐ下に、「インポート」と書かれた行があります。インポート文には、その直後にパッケージ名が必要です。たとえば、 "import java.util.Scanner;"あなたの2番目のコードスニペットの行。そして、「名前」を読み込み専用にしたい場合は、setName()メソッドを使用しないでください。 – Erica

+0

私は、インポートが偶然(私の間違い)であったので、セット名メソッドを削除したらどうすればいいのでしょうか? nameは最後の変数なので、nameのsetterメソッドを削除し、getnameメソッドを最後の変数として残します。 – blake

関連する問題