未分類

クラス型の変数

投稿日:

              

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

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

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

関連記事

Androidで神経衰弱ゲームつくりました。

       プログラムの解説 14行目のT[ ]はカードをシャッフルする領域です。 Tebanは、プログラムを制御する領域です。  0の時は、1枚目のカードをクリックします。 1の時は、2枚目のカー …

サンプルイメージ

式と演算子

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

サンプルイメージ

画面への出力

前回画面に文字列を出力するコードを学習しました。「System.out.println・・・」という言葉に注目してください。この「System.out」とは、 標準出力(standard output …

サンプルイメージ

練習問題

練習問題  HelloWorld.java 以下のプログラムの空欄を埋めて実行結果のように表示させてください。 練習問題  ChangeXY.java 下のプログラムの空欄を埋めてアイテムAとアイテム …

サンプルイメージ

スレッドの基本

        これまでのプログラムは、main()メソッドから始まって、順番に文を実行、条件判断文をたどっていました。 Javaでは、この「処理の流れ」を複数もつことができます。 コード上から複数の …