0

それで、何らかのアイデアや方法を見つけたいと思って検索しました。

id、name、loaned、brower のインスタンス変数を持つ movie という名前の基本クラスがあります。この映画クラスは、bluray と dvd の 2 つのクラスから派生します。基本的に短い話ですが、それらはすべて私が構築しているライブラリクラス内に構築されています。映画タイプ内で、映画に適用できるジャンルを保持する、genre という名前の列挙型変数を作成したいと考えています。ただし、この enum 変数を Bluray および DVD クラスに継承する方法がわかりません。

私はそれができると言われましたが、誰かが私がこれをどのように行っているかについて光を当てることができれば、それは素晴らしいことです!

4

3 に答える 3

1

映画タイプ内で、映画に適用できるジャンルを保持する、genre という名前の列挙型変数を作成したいと考えています。ただし、この enum 変数を Bluray および DVD クラスに継承する方法がわかりません。

ではない映画タイプのメンバーにするだけprivateです。(または、movie タイプ以外の同じパッケージ内の単に列挙型。)次に、bluray および dvd クラスがそれにアクセスできるようになります。

例:

Movie.java:

public class Movie {

    public enum Genre {
        Horror,
        SciFi,
        RomCom
    };

    protected Genre genre;

    public Movie(Genre g) {
        this.genre = g;
    }
}

BluRay.java:

public class BluRay extends Movie {

    public BluRay(Genre g) {
        super(g);
    }
}

まったく含まれている必要はありませGenreん。含まれていないMovie場合は、(同じパッケージまたは類似のパッケージに含まれているだけで) の方が良い場合があります。しかし、あなたが望む Genreなら、Movieあなたはそこにそれを持つことができます.


補足: あなたはデザインに関するフィードバックを求めていませんでしたがGenre、一般的な操作のように思われるジャンルを追加するために再コンパイルする必要があるため、FWIW はおそらく列挙型を作成しません。

于 2013-10-29T09:00:33.807 に答える
0

クラスとは別に列挙型を (新しいファイルで) 宣言し、列挙型の型の変数 movie_type を宣言するムービー クラスで使用するだけです。

于 2013-10-29T09:02:17.330 に答える
0

親クラスのメンバーを使用する場合は、そのメンバーへのアクセスを提供する必要があります。

Java は、アクセス修飾子を public、protected、(デフォルト)、private として指定します。

access modyfier を protected に設定すると、そのメンバーに対して読み書きできるようになります。

ところで

性別を列挙型の形式で保存するという考えは、性別の変更として最適な設計ではなく、アプリケーションの開始時にそれぞれを追加する必要があります。

enum の適切な解決策は、デバイスの種類です。これは DVD や CD など、簡単に管理できるものです。

于 2013-10-29T09:02:19.733 に答える