質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

814閲覧

Javaで変数の定義の仕方

nyankobc

総合スコア2

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

1クリップ

投稿2021/05/09 08:35

前提・実現したいこと

Javaで簡単なゲームを作ろうとしています。
【5/7 問題10】RPG
新しくパッケージ「pkg_c_0507」を作って、以下を書きましょう
●Magic.java
・名前を保存するフィールド変数nameを用意
・HP(体力)を保存するフィールド変数hpを用意
●Main3.java
・Magicクラスをもとにオブジェクトmを生成
・名前(主人公C)とHPの値を代入
・コンソールにそれぞれ出力

【5/7 問題11】RPG
ダメージを与えましょう。
1.まずはランダムな値0~9を作りましょう→変数dに代入
2.オブジェクトm1のHPを、変数dの分だけ減らしましょう
3.減らしたら、コンソールで減っていることを確認しましょう

【5/7 問題12】RPG
1.ランダムな0~9のダメージを5回与えましょう
※ダメージを与える部分をMain.java→Magic.javaに移動させて、メソッドにしましょう

問題12に取り組んでいます。

発生している問題・エラーメッセージ

①メソッドdamagae()はMain3で未定義 ②hpを変数に解決できません

該当のソースコード

Java

1Magic.java 2package pkg_c_0507; 3 4public class Magic { 5 String name; 6 int hp; 7 8 9 public static int damage(int d) { 10 int hp = (int)(d *(Math.random()*10*5)); 11 return hp; 12 } 13} 14 15Main3.java 16package pkg_c_0507; 17 18public class Main3 { 19 20 public static void main(String[] args) { 21 //Magic m = new Magic(); 22 //m.name="めぶめぶ"; 23 //m.hp = 30; 24 //System.out.println(m.name); 25 //System.out.println(m.hp); 26 27 //int d =(int)(Math.random()*10); 28 //Magic m1 =new Magic(); 29 //m1.hp=3000-d; 30 //System.out.println(m1.hp); 31 32 33 34 35 int damage_hp = damage(); 36 System.out.println(hp); 37 } 38 39} 40 41

試したこと

Magic.javaから参照できていないかと思い
何回か試してみましたがわかりませんでした。

補足情報(FW/ツールのバージョンなど)

Ecipseを使用

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/05/09 09:09

何かの課題でしょうか。 いずれにしてもコメントアウトされたものが現状なら出てるエラー以前のエラーが出るのでは。
dodox86

2021/05/09 10:25

分からないまま色々試す前に、Javaの基本、クラスとインスタンス、メソッドを学びましょう。課題の前の方で出てきませんでしたか? あるいはそれを学ぶ為の今回の課題なのでは?
guest

回答1

0

コメント部分を削除して・・・

java

1package pkg_c_0507; 2 3public class Main3 { 4 public static void main(String[] args) { 5 int damage_hp = damage(); 6 System.out.println(hp); 7 } 8}

メソッドdamagae()はMain3で未定義

Main3というクラスにdamage()というメソッドがないというエラーです。
定義/作る必要があります。
※damagae() は、damage()の誤字だと思われます。

hpを変数に解決できません

Main3というクラスのフィールドおよび、mainメソッドのローカル変数として
hp という変数が存在しません。
定義する必要があります。

Magic.javaから参照できていないかと思い

できるだけ、正確に伝わるように表現すると勘違いや思い違いなどを指摘しやすいです。

Majic.javaから、Main3が参照できるかどうかは、
Main3での未定義に関係ありません。
そもそもMajic.javaの中にMain3っていう文字は存在していませんが・・・

Main3からMajicが参照できるかどうかでいうと、そもそもそのようなコードは書いていないようです。
前述の通り

  • mainメソッド(以下理由でコンパイルエラーになる)
  • 存在しなdamage()メソッドの呼び出し
  • 存在しない変数hpを、System.out.printlnで表示

しか書いてありません。
どのような参照の仕方を期待していて参照できていないと考えているのでしょうか?


変数定義のしかたを知らないなら、基礎なので教本読むなりネットで調べてください。
すでに変数定義をしているコードを自身で提示しているので
さすがに変数定義がわからないとは思いませんが・・・

java

1public class Magic { 2 String name; 3 int hp; 4 public static int damage(int d) { 5 int hp = (int)(d *(Math.random()*10*5)); 6 return hp; 7 } 8}

String name;int hpは、Magicのフィールドとして定義されているインスタンス変数です。
int hp = (int)(d *(Math.random()*10*5));の部分は、damage(int)メソッドの内部で定義される
ローカル変数というものです。
public static int damage(int d)dもメソッドの仮引数という変数です。

投稿2021/05/09 14:59

編集2021/05/09 15:07
momon-ga

総合スコア4826

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問