未分類

クラス型の変数

投稿日:

              

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

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 Studioインストール&日本語化

      まずAndroid StudioとGoogle検索して、1番上の項目を選択してください。 下記の画面になるので、最新バージョンをダウンロードしましょう。 DOWNLOAD ANDROID …

サンプルイメージ

List、Mapインターフェイス

     ArrayListとは、配列とよく似ています。値の集合を扱うときに利用します。 リストは要素が追加された順番を保持します。又重複した要素もそのまま保持することができます。 下記のコードでは、 …

Android 図形、画像の描画

     ソースコードの解説 GraphicsExはプログラムの本体となるクラスです。 GraphicsView.javaを解説します。 ①ラインの描画(25行目) 描画前に「ライン幅」と「描画スタイ …

サンプルイメージ

練習問題(クラスの利用)(前半)

      練習10-1 MarkPrinterMain1~4クラスを実行すると下図の様な実行結果となるようにMarkPrinterクラスを作成してください。 練習10-2 MarkPrinterクラ …

サンプルイメージ

演算子の優先順位

a + 2 * 5  2*5が先に評価されます。 この式では、+演算子と*演算子の2つが使われています。通常の四則演算では、たし算よりかけ算を先に計算します。これは、かけ算の方が 優先順位が高い から …