031-オブジェクト指向の基本-参照の考え方【新人エンジニアが最初に覚えたい100のJava文法】

ユーチューブ動画

オブジェクト指向の基本-参照の考え方について解説します。

ソースコード

public class ExampleRefer {
	public static void main(String[] args) {
		String str1 = new String("ABC");
		String str2 = new String("ABC");
		System.out.println(str1 == str2);
		System.out.println(str1.equals(str2));
	}
}

解説

参照の考え方について解説します。

参照とは、メモリ上の住所に相当します。

メモリ上で保存されている場所です。

この考え方を覚えておかないと、思わぬ挙動になることもあるので注意しましょう。

サンプルコードを確認してください。Stringクラスのインスタンスが2つ作成されています。

ABCという文字列が入っているので、両方とも同じように思えますね。

しかし、インスタンスを作るということは新しい作業領域を確保するということですから、

両者の作業場所は異なるところになります。

Javaのデータ型は、主に基本データ型と参照型に分けられます。

Stringというデータ型はどちらですか?

そう、参照型です。

メモリ上の住所が入るデータ型ということになります。

変数str1、str2はそれぞれ異なる住所が入っているとイメージしてください。

3行目では、変数str1とstr2をイコールで比較しています。

参照型の変数の場合、イコールで比較すると、同じ参照かどうかを判断することになります。

2つのインスタンスは異なる場所に作成されますから、結果はfalseになります。

この特徴を覚えておきましょう。

よって、文字列の比較の動画でも解説したように、文字列の内容を比較するときには、equalsメソッドを使います。

すると、内容を比較します。

4行目の結果はtrueになります。

いかがでしたか?

新しいインスタンスを作成すると、異なる参照になるということを覚えておきましょう。

以上、参照の考え方について解説しました。

このサンプルコードをJavaタッチタイプゲームとして遊ぶことができます。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。