3
0

More than 1 year has passed since last update.

スッキリわかるJava入門 第3版を読んでみて- part14 - Javaを支えるクラスたち

Last updated at Posted at 2023-08-23

はじめに

こんにちは(・ω・)ノ
今回はObjectクラスや静的メンバについて学びました!

第14章 Javaを支えるクラスたち

1.Javaが備えるAPI群

これまでJavaの基本文法とオブジェクト指向の概念について学びました。
規模の大きなプログラムでも現実世界を模して混乱せずに開発することが可能になりました。
しかし、大規模なプログラムを1人で開発するのは時間とお金の無駄になる...
そこでJavaに標準添付されているJacaAPIを使います。

API活用に欠かせない基礎知識について学んでいきます。

2.すべてのクラスの祖先

すべてのクラスがtoString()を持っている
⇨メソッドもフィールドもいっさい定義していないクラスのtoString()を呼び出せるはなぜ?

:sparkles: 暗黙の継承
あるクラスを定義するときextendsで親クラスを指定しなければ、
java.lang.Objectを親クラスとして継承したとみなされる

extendsを指定しなくても必ずObjectを継承する
⇨Javaでは親なしのクラスを定義できないということ
様々なクラスも親クラスを辿っていくと、最終的にはjava.lang.Objectクラスに到達する

APIリファレンスを調べると全クラスの祖先のObjectクラスには次のメソッドが定義されている
・equals() あるインスタンスと自分自身とが同じかを調べる
・toString() 自分自身の内容の文字列表現を返す

toStringを呼び出せるのは暗黙の親クラスであるObjectクラスから継承しているため

:question:なぜObjectクラスがあるのか
1.多態性を利用できるようになるから
2.すべてのクラスが最低限備えるべきメソッドを定義できるから

:sparkles: 等値と等価
等値 同一の存在であること
 「==」を使った判定
等価 同じ内容であること
 「equals」を使った判定

:sparkles: toString()とequals()のオーバーライド
新しくクラスを開発したら、toString()とequals()をオーバーライドする必要性がないかを検討する

3.静的メンバ

静的メンバ...staticキーワードが付けられたフィールドやメソッドのこと

静的フィールド

staticキーワードを指定したフィールドのことで3つの特殊な効果をもたらす

1.フィールド変数の実体がクラスに準備される
:pencil2: 静的フィールドへのアクセス方法
クラス名.静的フィールド名

2.全インスタンスに箱の分身が準備される
:pencil2: 静的フィールドへのアクセス方法
インスタンス変数名.静的フィールド名

3.インスタンスを1つも生み出さなくても共有の箱が利用可能になる
:sparkles: public static fainal コンビネーション
多くの場合、staticはfinalやpublicと一緒に指定され、
「変化しない定数を各インスタンスで共有するため」に利用される

静的メソッド

staticキーワードがついているメソッドのことクラスメソッドとも呼ばれる
以下の3つの効果が現れる

1.メソッド自体がクラスに属するようになる

2.インスタンスにメソッドの分身が準備される
:pencil2: 静的メソッドの呼び出し

3.インスタンスを1つも生み出すことなく呼び出せる

静的メソッドの制約

静的メソッドの中に記述するコードでは、
同一クラス内のstaticがついていないフィールドやメソッドは利用できない

まとめ

javaにおいてすべてのクラスはObjectクラスの子孫である。
そのためすべてのクラスはObjectからtoString()やequals()を継承している。
フィールドやクラスにstaticをつけて宣言すると静的メンバとして扱われる。
静的メソッドを使うことで、クラス名とインスタンス名のどちらからでも同じ実体にアクセスすることができたり、インスタンスを生成していなくても利用することができる

今回もありがとうございました!
ではまた〜 *˙︶˙*)ノ"

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0