Javaプログラマー資格試験(OCJ-P) WEB講座 -7ページ目

Javaプログラマー資格試験(OCJ-P) WEB講座

Javaプログラマー資格(OCJ-P)を学習するブログです。

OCJ-P・Javaプログラマー資格をとりたい。
Javaプログラミングの入門者・初心者。

そんなあなたに、Javaプログラマー資格の取得に役立つ本質的な知識を、
分かりやすく解説していきます。

 同値性と同一性という言葉は、
Javaの勉強をしていると出てきます。

そこで、googleで「Java 同値性 同一性」
と検索してみたりするのですが、
どのサイトも同じです。

「== は同値性、equalsは同一性」や、
「equalsをオーバーライドして使う」
などの説明が出てきます。

私も最初はそういうサイトを読んで、
○○の場合は同値性、
○○の場合は同一性。
そんな理解の仕方をしていました。

しかし、最近になって『ちょっと違うな』と感じています。
○○の場合は○○というのは、本質的な理解からはずれています。

 肝心なことは、
『比較』の意味が、オペランドによって変わる。
ということです。
(オペランドというのは、あなたが比較しようとしているものです。)

オペランドの型によって比較の意味が変わります。
1.オペランドの型がプリミティブ型なら、比較の意味は同値性。
2.オペランドの型が参照型なら、比較の意味は同一性。
になります。
 Javaの学習がすすまない大きな理由として、
「イマイチぴんとこない」というのがあります。

ちゃんと教科書を読んでコツコツ進めていても、
「何回繰り返しても身につかない」
「どうしても覚えることができない」
そんな風に私は何回も感じたことがあります。

そして、その理由は、
『なぜ必要なのか分かっていない』
ことです。

言い換えると、
『この機能が何に役に立つのか』
が分かっていないのです。

そういう人は頭では「ふむふむなるほど」と思っていても、
心の底では、「これ、何に使うんやろ?」と感じています。

人はなかなか必要性に迫られないと本気になりません。
必要性を感じないと、頭のスイッチが入らないようにできてるんです。

ですから、特に必要性を感じないものを勉強しても、
脳のもっている記憶力の10%しか使ってないようなもの。

それでは能率的な勉強はできませんし、
楽しい楽しいJavaの勉強も、退屈で色褪せたものに感じてしまいます。

損です!


 Javaは現在のIT業界で、最も選ばれているプログラミング言語です。
ですので、なぜJavaが選ばれるのか?Javaの何がいいのか?
それをあたなが勉強中のJavaの機能や言語と紐つけて勉強しましょう。

必要性・何に役に立つのか?
がしっかり理解できたら、あなたの頭は勝手に動き出します。
全く苦労せずに、猛烈な努力せずにOCJ-Pを取得することができます。

ぜひ、Javaの勉強を進める際は、
これから勉強することが、何の役に立つのか?
理解してから、新しいことを勉強してみてください!

Javaがもっと楽しくなりますよ^^
 Javaはプリミティブ型と参照型という、
2つの大きな型に分けられます。

それゆえに、同値性と同一性という、
紛らわしい概念が出てきます。

いろいろクラスを作って、
==やequalsを実験してみたけど、
falseばっかり返って来て、たまにtrueが返ってくる。
いまいち法則性が分からない。
あなたもそう思っていませんか?

この界隈はOCJ-Pで非常に狙われやすいですし、
オブジェクト指向の型というシステム上、
とても重要なところなので、しっかりと整理しておきましょう。

 肝心なことはたった1つです!!!
オペランド(比較する対象)が、
プリミティブ型か参照型かを確認する。
ということ。

下の図にまとめました。
Javaプログラマー資格試験(OCJ-P) WEB講座


 







同値性という言葉は、プリミティブ型の比較のとき。
同一性という言場は、参照型を比較するときに使います。

プリミティブ型を比較するときは、==しか使えません。
同一性を比較するときは、==もequalsも使えますが、
ともに同一性の比較になります。

オペランドの型に着目しましょう。
OCJ-Pでは、それで解決できます^^