こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

クラスを呼び出した時のオブジェクト名の出力について

ご覧いただいてありがとうございます。
java勉強中の者です。現在クラスについての勉強をしています。
質問内容ですが、クラスを呼び出した時に対象のオブジェクトの名前を表示させたいというものです。
以下、サンプルのコードを記載してその後詳しい説明をします。


class Car{//車の情報を保持
int number; //車のナンバーを保持
double gas;//ガソリンの量を保持

void show(){//車の情報を出力 NAMEの部分は後程説明します
System.out.println("車のナンバーは"+ number +"です。");
System.out.println("車のガソリン量は"+ gas +"です。");
}

public class Sample1{
public static void main(String[] args){
Car car1 = new Car();//car1のオブジェクト
car1.number = 1111;
car1.gas = 10;

Car car2 = new Car();
car2.number = 2222;
car2.gas = 20;

car1.show();
}

以上がサンプルのプログラムです。
上記のclass Car内のvoid show()の中にあるSystem.out.printlnの2つの文あたりです。
「車のナンバーは~」の直前に、呼び出したオブジェクトの名前を出力したいのです。今回であれば、メインメソッド内の一番下の「car1.show();」のオブジェクト名を表示させたいです。
具体的には「car1の車のナンバーは1111です。」と表示させたいです。


関数か何かがあるのかと思い、少し調べてみましたが見当たらなかったため投稿させていただきました。関数が存在しないのであれば、具体的な簡単なサンプル等書いていただけるととてもありがたいです。
よろしくお願いします。

※OKWAVEより補足:「Webシステム開発」についての質問です。

投稿日時 - 2019-04-18 13:53:04

QNo.9608023

暇なときに回答ください

質問者が選んだベストアンサー

この場合、car1というのは変数名であってオブジェクト名ではありません。区別しましょう。変数名をshow()メソッド内で取得することはJavaでは普通できません。

オブジェクトに名前をつけるなら、Carクラス内に
String name;
のようにフィールドを足して、show()メソッドでそのnameを参照するようにしましょう。
System.out.println(name + "のナンバーは"+ number +"です。");
当然、numberやgasと同じようにnameにも値を設定する必要があります。

投稿日時 - 2019-04-18 19:55:44

お礼

回答ありがとうございます。

結果的に「できない」ということがすぐにわかったので助かりました。
具体的な方法の記載もとてもありがたく思います。

いくつか似たようなコードを見つけたので、そちらも参考にしながら勉強を進めていこうと思います。

ありがとうございました。

投稿日時 - 2019-04-23 17:22:04

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

https://www.javadrive.jp/start/about/index2.html

こちらを確認して言葉の意味を確認されると良いと思います。

投稿日時 - 2019-04-18 16:29:18

お礼

返事が遅れてしまいましてすみません。
追加の回答ありがとうございます。
回答の意図が正確にわからなかったので、たどり着いた情報から推察させていただきます。

まず「オブジェクト名」と私が呼んでいたのはそもそも間違っていましたね。ありがとうございます。「オブジェクトを指す変数名」が正解でしょうか。
前回の私の返信後、調べてみましたができないような記述がありましたので結果としては「できない」で間違いなさそうですね。

投稿日時 - 2019-04-23 17:19:27

ANo.1

もっと調べた方が良いと思います。

『java クラス名 取得』では検索しましたか?

投稿日時 - 2019-04-18 14:08:17

お礼

回答ありがとうございます。
(サイト自体を使うのが初めてなので、返信等をするのがここでよいのかどうかもわかりませんが...)

同じような内容で検索をしましたが自分の知りたい情報が出ていませんでした。
回答の語句で検索し、上から20件ほどサイトを開いて内容を確認しましたが見つかりませんでした。(クラスの内容を勉強し始めたばかりなので、見つけても気づいていないだけの可能性もありますが)

クラスの名前(今回であれば「Car」かと思います)を取得することについては、事前の検索で見つけていました。ですが「car1.show()」と実行した際の「car1」の部分を表示させるための方法については見当たりませんでした。(重ねて言いますが、気づいていないだけの可能性もあります)

記載してあるサイト等ありましたら、お手数ですが検索ワードとサイトの名前等教えていただけないでしょうか。

よろしくお願いします。

投稿日時 - 2019-04-18 14:55:23