String型やint型など普通の型はよくわかると思いますがたまにクラス名を型として使っているのを見ることがあると思います。今回はそちらを紹介します。
クラスをデータ型として使うことについて
Javaでは、基本的なデータ型(プリミティブ型)として、int
(整数)、double
(小数)、boolean
(真偽値)、String
(文字列)などがあります。これらは、既にJavaに用意されている型です。
一方で、クラスもデータ型として使うことができます。Javaでは、クラスは自分で定義する「オリジナルの型」です。
このことをオブジェクト型
と言います。
オブジェクト型の特徴
オブジェクト型は、ユーザー定義のデータ型で、クラスとして定義されるものです。以下のような特徴があります:
- 複雑なデータ構造を持てる:
- クラスの中に複数の属性(フィールド)やメソッドを持つことができ、より複雑なデータを表現できます。
- メソッドを持つ:
- オブジェクト型は、メソッドを持ち、その中でさまざまな操作や処理を行うことができます。
- サイズが可変:
- オブジェクト型は、持つ属性や構造によってサイズが異なるため、メモリ使用量が変動します。
- 参照型:
- オブジェクト型は、実際のデータが存在する場所を指し示す「参照」として扱われます。
オブジェクト型の例文
Animal
というクラスを作った場合、Animal
という型が作られます。このAnimal
型は、int
やString
のように扱うことができ、Animal
型の変数を作ることができます。
Animal
クラスの定義
Animal
型の変数を使う例
Animal
型の役割(親クラスとして)
Animal
が親クラス(スーパークラス)で、Dog
やCat
といった子クラスが継承しています。ポリモーフィズムの例で、Animal
型としてDog
やCat
のインスタンスを扱うことができました。
これらを見ると、インスタンス化の際にクラスの名前を~と言っていたのはオブジェクト型というデータ型なのですね。Stringやintなどで指定すると、使いやすい代わりに制限(整数だけ、文字列だけ)があるのでメソッドごと持ってきたり、クラスごと変数に入れたい場合はオブジェクト型を使っているということですね。
オブジェクト型とデータ型の違い
構造
- 基本データ型:シンプルで、値そのものを表す。
- オブジェクト型:クラスを通じて定義される複雑なデータ構造。
機能
- 基本データ型:操作がシンプルで、メソッドを持たない。
- オブジェクト型:メソッドを持ち、さまざまな処理を定義できる。
メモリの扱い
- 基本データ型:サイズが固定、直接的に値を持つ。
- オブジェクト型:サイズが可変、参照を持つ。
データの表現
- 基本データ型:単一の値(整数、文字、真偽値など)。
- オブジェクト型:属性やメソッドを持ち、より複雑なデータを表現。
まとめ
Animal
型は、Animal
クラスを使ったオリジナルのデータ型です。- Javaでは、クラスをデータ型のように使ってオブジェクトを作成し、そのオブジェクトを使ってメソッドを呼び出したり、データを扱います。
Animal
型を使うことで、共通の性質を持つ複数のクラス(Dog
,Cat
など)を同じ型で扱うことができるのがポイントです。
コメント