0

私は本のクラスを持っています:

public abstract class Book
{
private String author, title;
private int pages;
private double price;
Book next;

public Book( String f, String t, int sider, double p )
{
    author = a;
    title = t;
    pages = pa;
    price = p;
    next = null;
}

そして、小説や教科書などのサブクラス。これらを DataOutputStream でファイルに書き込むメソッドが必要です。以下のコードを作成しましたが、正しい道を進んでいるかどうかはわかりません。これをサブクラスでどのように使用しますか?

public void writeObjectToFile()
{
    try
    {
        FileOutputStream fos = new FileOutputStream("book.something");
        DataOutputStream dos = new DataOutputStream(fos);

        dos.writeUTF(author);
        dos.writeUTF(title);
        dos.writeInt(pages);
        dos.writeDouble(price);         


    }catch (IOException e){
        e.printStackTrace();
    }
}

教科書クラスが次のようなものだとしましょう:

class Textbook extends Book
{
private String subject;

public Textbook( String a, String t,int pa, double p, String sub )
    {
    super( a, t, pa, p );
    subject = sub;
}

何か案は?の使用は許可されていませんObjectOutputStream

4

1 に答える 1

1

メソッドは、それ自体を作成するのではなく、引数として OutputStream を取る必要があります。

このように、サブクラスは、スーパー メソッドを呼び出してスーパークラス フィールドを書き込むことから開始できます。呼び出し元は、book クラスによって特定の場所にあるファイルを使用するように強制されるのではなく、データを書き込む場所を選択できます。

メソッドは、IOException を無視するのではなく、スローする必要もあります。このようにして、発信者は自分が処理したいことを行うことができます。

于 2012-03-02T08:07:54.097 に答える