クラスをデータ型として使う(オブジェクト型)

String型やint型など普通の型はよくわかると思いますがたまにクラス名を型として使っているのを見ることがあると思います。今回はそちらを紹介します。

関連記事はこちら → ポリモーフィズムインスタンス

Javaでは、基本的なデータ型(プリミティブ型)として、int(整数)、double(小数)、boolean(真偽値)、String(文字列)などがあります。これらは、既にJavaに用意されている型です。

一方で、クラスもデータ型として使うことができます。Javaでは、クラスは自分で定義する「オリジナルの型」です。

このことをオブジェクト型

と言います。

オブジェクト型は、ユーザー定義のデータ型で、クラスとして定義されるものです。以下のような特徴があります:

  1. 複雑なデータ構造を持てる
    • クラスの中に複数の属性(フィールド)やメソッドを持つことができ、より複雑なデータを表現できます。
  2. メソッドを持つ
    • オブジェクト型は、メソッドを持ち、その中でさまざまな操作や処理を行うことができます。
  3. サイズが可変
    • オブジェクト型は、持つ属性や構造によってサイズが異なるため、メモリ使用量が変動します。
  4. 参照型
    • オブジェクト型は、実際のデータが存在する場所を指し示す「参照」として扱われます。

Animalというクラスを作った場合、Animalという型が作られます。このAnimal型は、intStringのように扱うことができ、Animal型の変数を作ることができます。

Animalクラスの定義

Animal型の変数を使う例

Animal型の役割(親クラスとして)

Animalが親クラス(スーパークラス)で、DogCatといった子クラスが継承しています。ポリモーフィズムの例で、Animal型としてDogCatのインスタンスを扱うことができました。

これらを見ると、インスタンス化の際にクラスの名前を~と言っていたのはオブジェクト型というデータ型なのですね。Stringやintなどで指定すると、使いやすい代わりに制限(整数だけ、文字列だけ)があるのでメソッドごと持ってきたり、クラスごと変数に入れたい場合はオブジェクト型を使っているということですね。

構造

  • 基本データ型:シンプルで、値そのものを表す。
  • オブジェクト型:クラスを通じて定義される複雑なデータ構造。

機能

  • 基本データ型:操作がシンプルで、メソッドを持たない。
  • オブジェクト型:メソッドを持ち、さまざまな処理を定義できる。

メモリの扱い

  • 基本データ型:サイズが固定、直接的に値を持つ。
  • オブジェクト型:サイズが可変、参照を持つ。

データの表現

  • 基本データ型:単一の値(整数、文字、真偽値など)。
  • オブジェクト型:属性やメソッドを持ち、より複雑なデータを表現。
  • Animalは、Animalクラスを使ったオリジナルのデータ型です。
  • Javaでは、クラスをデータ型のように使ってオブジェクトを作成し、そのオブジェクトを使ってメソッドを呼び出したり、データを扱います。
  • Animalを使うことで、共通の性質を持つ複数のクラス(Dog, Catなど)を同じ型で扱うことができるのがポイントです。

コメント

タイトルとURLをコピーしました