未分類

クラス型の変数

投稿日:

              

クラスの基本で下記のようにオブジェクトを作成していました。

chara1のようにオブジェクトをさす変数を、Character型の変数と呼びました。さらに、newを使ってオブジェクトを作成し、クラス型の変数に「代入」をしています。

オブジェクトを作成するときでなくとも「代入」することができます。

上記のコードでは、オブジェクトを1つ作成して、Character型の変数chara1に代入しています。次にもうひとつCharacter型のchara2を宣言しました。

「chara2 = chara1;」という代入をしています。つまり、クラス型の変数には

同じクラス型の変数を代入することができます。

chara1とchara2から同じ出力が行われているので「キャラ」オブジェクトが2つ存在しているように見えます。しかし、実際はオブジェクトが2つ存在するわけではありません。

「キャラ」オブジェクトの属性と体力量を変更しました。

chara1とchara2を使い属性と体力量を出力してみると、どちらも同じように変更されているのがわかります。つまり、

変数chara1と変数chara2は異なる2つのオブジェクトではなく、同じ1つのオブジェクトをさしている

のです。このしくみには十分注意しておきましょう。

nullのしくみを知る

変数にnullという値を代入すると、その変数はオブジェクトをさし示さなくなります。

そのオブジェクトがどの変数からも扱われなくなった場合、メモリがオブジェクトを作成する前の状態に戻ります。このことを、ガーベッジコレクションといいます。

ただし、2つの変数が同じオブジェクトをさしていたときは、一方にnullを代入しただけでは、オブジェクトは破棄されないことに注意してください。

メソッドの引数として使う

下記のコードでは、String型の変数をメソッドの引数としています。このため、メソッドにキャラの名前をあらわす文字列を渡すことができるのです。

オブジェクトを配列で扱う

オブジェクトを配列で扱うには、配列を準備することが必要です。

int型の配列を準備する場合と同じですが、

実際のオブジェクトを作成し、配列要素がそのオブジェクトをさすように代入

という作業が必要です。オブジェクトを1つずつ作成して、配列要素に代入します。newが使われるので、忘れないようにしましょう。

クラスの応用方法について学びました。

クラスライブラリを使うと、高度な機能を簡単に実現可能です。クラス型の変数のしくみやオブジェクトを扱う配列は、欠かせない知識です。しっかり理解しておきましょう。

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

プログラム

プログラムのしくみ

ワープロ、表計算ソフトのような「プログラム」を使うことは、文字を表示し、書式を整え、印刷するといった特定の「仕事」をコンピューターに指示し、処理させないといけません。 プログラミング言語 Java コ …

サンプルイメージ

練習問題(メソッド)

練習8-1 下記の2つのクラスがある。[WelcomeMain1.java]を実行すると下のような結果になるように[Welcome1.java]の空欄を埋めてください。        練習8-2 下記 …

サンプルイメージ

式と演算子

式のしくみを知る Javaの「式」の多くは、 演算子(演算するもの)とオペランド(演算の対象) を組み合わせてつくられています。たとえば、「1 + 2」の場合は、「+」が演算子、「1」と「2 …

サンプルイメージ

継承

    継承のしくみを知る これまでは、「キャラクタ」の機能をまとめたクラスを使って、プログラムを作成してきました。この章では、さらに、新しいプログラムを作成していくことにしましょう。 5種類の格闘ゲ …

サンプルイメージ

練習問題(インターフェイス)

     練習11-1 下記のコードの実行結果がどう出力されるかを答えてください。 練習11-2 Shape.java 図形を表すインターフェイスShapeを作成してください。このインターフェイスでは …