1

やあみんな私はクライアントと呼ばれるクラスを持っています。その機能を ClientListner と ClientSender の 2 つのサブクラスに分けたいと考えています。クライアント自体には、次のようなコンストラクタがあります。

クライアントコンストラクター

public Client(Socket socket, PrintWriter pw, Scanner input, MainGui mg){
    this.mg = mg;
    this.socket = socket;
    this.input = input;
    this.pw = pw;
}

他の 2 つのクラスがこのクライアントを拡張するたびに、Eclipse はコンストラクターを実装し、以下を自動生成するように求めます。

ClientSender 自動生成コンストラクター

public ClientSender(Socket socket, PrintWriter pw, Scanner input, MainGui mg) {
    super(socket, pw, input, mg);
    // TODO Auto-generated constructor stub
}

それで、Gui で新しい Clientlistner を作成したい場合、これらすべての情報を渡さなければなりません。これを回避する方法はありませんか? もしそうなら、どのように?

4

3 に答える 3

1

コンストラクターに何も渡したくない場合はno-arg、親クラスにコンストラクターを含めることができます。

編集:Clientクラスでは、no-argコンストラクターである次のコードを記述します。

public Client(){

}
于 2012-10-20T13:44:47.527 に答える
0

ClientSenderを使用してすべての発信コンテンツClientReceiverを処理し、 のすべての受信コンテンツを処理すると仮定すると、クライアントが作成されると、それらはソケットのとClientを取る異なるクラスである必要があります。そのため、Client のサブタイプではなく、Client クラスのメンバーである必要があります。OutputStreamInputStream

于 2012-10-20T13:47:53.910 に答える