ホームページ  >  記事  >  Java  >  Java オブジェクトとは何ですか? Java オブジェクトの概要 (コード例)

Java オブジェクトとは何ですか? Java オブジェクトの概要 (コード例)

不言
不言転載
2018-10-11 15:33:222926ブラウズ

この記事では、Java オブジェクトとは何なのかについて説明します。 Java オブジェクトの紹介には一定の参考価値がありますので、困っている方は参考にしていただければ幸いです。

例:

public class Book {

    /**
     * 书名
     */
    private String name;
    /**
     * 作者
     */
    private String author;

    /**
     * 获取书名
     * @return
     */
    public String getName() {
        return name;
    }

    /**
     * 设置书名
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取作者
     * @return
     */
    public String getAuthor() {
        return author;
    }

    /**
     * 设置作者
     * @param author
     */
    public void setAuthor(String author) {
        this.author = author;
    }

}

オブジェクトとは

「JAVA プログラミング思考」におけるオブジェクトの定義は次のとおりです。問題空間、そしてプログラム空間におけるそれらの表現は「オブジェクト」と呼ばれます。
1. 問題空間: 解決される実際の問題モデル;
2. 解決空間: コンピューター (マシン モデル)。
実際の問題をコンピュータ内で表現したもの (マシンモデル) をオブジェクトと呼びます。上の例では、コンピューターは一意のエンティティ (new Book()) を使用して本を表します。このエンティティはオブジェクトと呼ばれ、オブジェクトはクラスのインスタンスです。

クラスとは

同じプロパティと動作を持つオブジェクトの抽象化がクラスです。つまり、クラスはオブジェクトの設計図であり、この 2 つの関係は、クラスのインスタンスがオブジェクトであり、オブジェクトの抽象化がクラスであるということです。上の例では: Book がクラスです。

オブジェクトの特性

1. 動作: クラスのメソッド、例のメソッド: getName()、setName(String name)、getAuthor()、setAuthor( String著者)。
2. ステータス: クラスの属性、例の属性: 名前、作成者、
3. ID: メモリ内のクラスのアドレス、メモリ内の new Book() のアドレスが ID です。

オブジェクト指向の機能

1. カプセル化: オブジェクトのプロパティを非表示にしますが、ユーザーがこれらのプロパティを操作するためのメソッドを提供します。メソッドのみ使用可能 オブジェクトのプロパティにアクセスするには、カプセル化にはプライベート プロパティ: name、プロパティ アクセス メソッド: getName()、およびプロパティ変更メソッド: setName(String name) が必要です。

2. 継承: 既存のクラスを継承することにより、このクラスの属性とメソッドを再利用できます。継承されたクラスはサブクラスと呼ばれます。特定の関数のコード、親クラスは通常、共通のメソッドと属性を保存します。継承は extends キーワードによって実現されます。

継承例:

// 备注:class可以定义多个类,但只有一个public类,而且public修饰的类名称要和文件名称一致。
public class BookTest{
    public static void main(String[] args) {
        System.out.println(new HistoryBook().getName());
    }
}
class HistoryBook extends Book{
    /**
     * 发生日期
     */
    private LocalDate happenDate;
    protected LocalDate getHappenDate() {
        return happenDate;
    }
    public void setHappenDate(LocalDate happenDate) {
        this.happenDate = happenDate;
    }
}

上記の HistoryBook は Book のサブクラスであり、main メソッドでは、HistoryBook オブジェクトを通じて書籍のタイトルを直接取得できます。これは含まれていない属性です。 HistoryBook クラス内にありますが、継承により、親クラスのすべての public メソッド、protected メソッド、およびデフォルトで変更されたメソッドを呼び出すことができます。

3. ポリモーフィズム: 変数参照が複数の実際の型を指すことができる現象は、ポリモーフィズムと呼ばれます。ポリモーフィズムの形成は、継承 (拡張) / 実装 (実装) に基づいています。重要な点は、親クラスの参照はサブクラス変数を指しますが、親クラスの参照をサブクラス変数に割り当てることはできません。

多態性の例:

        // 父类引用指向子类,形成多态
        Book book = new HistoryBook();
        // 报错,原因:不能把父类引用赋值给子类,因为不能确定父类的具体类型,父类可能是A extends Book,也可能是B extends Book,不能把A或B强制转成HistoryBook,因为它们两之间是没有任何联系的。
        HistoryBook historyBook = (HistoryBook) new Book();
        // 这里是正常运行的,因为book其实指向的是一个HistoryBook的对象,这里是可以强制转换的。
        HistoryBook hb = (HistoryBook) book;

以上がJava オブジェクトとは何ですか? Java オブジェクトの概要 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。