Javaの戻り値のコードについて

このQ&Aのポイント
  • Java初心者です。returnの例文で分からない所があります。
  • (1)考え方としてsetNumGasの時点でvoid setNumGas(1234, 20.5)になり、次にgetNum()を引っ張ってきている。
  • (2)returnのイメージがまだ出来ていません。int number = car1.getNum()とした時点でgetNum()にジャンプし、returnを見つける。
回答を見る
  • ベストアンサー

Javaの戻り値のコード

Java初心者です。returnの例文で分からない所があります。 (1)考え方として car1.setNumGas(1234, 20.5); の時点で void setNumGas(int n, double g) はvoid setNumGas(1234, 20.5)になり 次にgetNum( ) そのものを引っ張ってきているので、 ナンバーを調べました という文字まで一緒に引っ張らないのでしょうか? なぜ 次の行のretun文だけを拾うのですか? (2)returnのイメージがまだ出来ていません。 int number = car1.getNum(); とした時点で int getNum()  にジャンプし、 その中の returnを見つけ、 そしてreturnが numを使っている所をコードを下に降りて順に探しに行く というイメージで合ってますか? -------------------------------------------------------------------- return num; →よーし探しに行こう! まずdouble getGas()の中 → うーんない 次にvoid setNumGas(int n, double g) の中 { num = n;    →   お、あった! nは今1234だな、だから表示結果は1234 --------------------------------------------------------------------------- こんな認識で合ってますでしょうか? class Car { int num; double gas; int getNum() { System.out.println("ナンバーを調べました。"); return num; } double getGas() { System.out.println("ガソリン量を調べました。"); return gas; } void setNumGas(int n, double g) { num = n; gas = g; System.out.println("車のナンバーを" + num + "にガソリン量を" + gas + "にしました。"); } void show() { System.out.println("車のナンバーは" + num + "です。"); System.out.println("ガソリン量は" + gas + "です。"); } } class Sample6 { public static void main(String[] args) { Car car1 = new Car(); car1.setNumGas(1234, 20.5); int number = car1.getNum(); double gasoline = car1.getGas(); System.out.println("サンプルから車を調べたところ"); System.out.println("ナンバーは"+ number + "ガソリン量は" + gasoline + "でした。"); } }

  • Java
  • 回答数7
  • ありがとう数5

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

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.7

>コマンドプロンプトでコンパイルし直してみると >ナンバーは-567ガソリン量は20.5でした。 >と出ました。 その前に出たはずの「ナンバーを調べました:1234」の部分に注目してもらいたかったのですがね。それを疑問に思わないのであれば"return num;"でnumの値を参照するところも問題ないはずです。 >普通のメソッドだけならは Javaのメソッドには値を返すものと返さないもの(返り値型がvoid)がありますが、どちらが「普通」ということはありません。 メソッドが返した値を変数に代入するコードだって、質問者さんはこれまでに何度も見ているはずです。ANo.2の補足にあった"String str = br.readLine();"とか。 >こんな使い方も出来るんですね。今度から使ってみます。 お勧めはしません。適宜分けて書いたほうが読みやすいことが多いですし、例にあったBufferedReaderは繰り返して読み込みすることが多いので変数に入れたほうが便利です。

KAIJI-000
質問者

補足

何度もすいません。 >その前に出たはずの「ナンバーを調べました:1234」の部分に注目してもらいたかったのですがね。 すいません、大変申し訳ないです。ちゃんと見ていなかったです。散漫でした。 提示して頂いたのはいわゆる  setNumGas(1234~  で引数を呼び出し元に渡すパターンですね。 それと普通というのは int number = のように代入をしていないという意味でした。 >お勧めはしません。適宜分けて書いたほうが ~ 参考程度に記憶にとどめておきます。

その他の回答 (6)

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.6

getNum()をこう書き換えたら何がどうなるか理解できますか? main()の中でcar1.setNumGas(1234, 20.5);を呼んでいる前提で。 int getNum() { System.out.println("ナンバーを調べました:"+num); return -567; } > ただのbr も >         ↓ > 最終的にはprintlnと連携することで画面表示まで出来るようになる > > という感じで、最初の状態に比べて複雑化していっていると言えませんか? ANo.1の補足にあったのは「変数というのは・・・どんどん複雑化するものではないのでしょうか?」という質問でした。 brという変数はオブジェクトの代入によって初期化された後、何も変化していません。つまり、複雑になっていないということです。 println()で出力ができるのは、「変数の状態がどんどん複雑化するから」ではありません。 ちなみに、よけいに混乱させてしまうかもしれませんが、ANo.2の補足にあったコードはbrやstrみたいな変数を使わずに書くこともできるんです。 System.out.println("英字を入力してください。"); System.out.println("あなたが入力したのは"+ new BufferedReader(new InputStreamReader(System.in)).readLine() +"です。");

KAIJI-000
質問者

お礼

たびたび回答すいません。

KAIJI-000
質問者

補足

>return -567; コマンドプロンプトでコンパイルし直してみると ナンバーは-567ガソリン量は20.5でした。 と出ました。 ただ、大変申し訳ないのはただ単にint number = を変に思っていただけかもしれません。 テキストをちゃんと読んでみると、 普通のメソッドだけならはその前の行にもあるように car1.setNumGas(1234, 20.5)ですが、 僕が疑問に思っていた箇所は car1.getNum( ) とし、getNum ( )を呼び出し、 ↓ System.outを処理、 ↓ その次にreturnがある。式はnum(現在の数値は1234これを呼び出し元に返す)  ↓ それを単にnumberに代入 ↓ println で number→1234 などを表示 これでやっと合ってますか。 > ANo.2の補足にあったコードはbrやstrみたいな変数を使わずに書く~ 混乱はしてないです。こんな使い方も出来るんですね。今度から使ってみます。

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.5

ANo.4の最後の部分の訂正です。 × 変数の値を参照するのはreturn文でも他の式の中でもありません。 ○ 変数の値を参照するのはreturn文でも他の式の中でも違いはありません。

KAIJI-000
質問者

お礼

訂正有難うございます。

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.4

>BufferedReaderはクラスライブラリのひとつで、オブジェクトの作成というやつです オブジェクトの作成をするにはnewが必要で、ANo.2の補足にある例はいきなりそこから間違っているわけですが、それはおいておきましょう。 >(1)brにBufferedReaderのメソッドが入る。(間違い) → BufferedReaderクラスのオブジェクトを新しく生成して、変数brに入れる。 >(2)変数brをreadLineメソッドとセットで用い、それをstrという新たな箱に入れる。(間違いとは言い切れないが、正しいイメージを持っているかどうかが怪しい) → 変数brに入っているオブジェクトに対して、readLine()メソッドを呼ぶ。その結果はString型のオブジェクトであり、それを変数strに入れる。 >(3)最後にstrの箱の中身をprintlnで表示させる。 これはその通り。 >次から次へ変数に色んなものを入れて、どんどん複雑化していってると言えませんか? 言えません。値を入れられているのはbrもstrもそれぞれ1回だけですし、「色んなもの」は入っていません。指定した型の何らかの値が入っているだけです。 何と比べて何が複雑になっていると思うのでしょう? 元の"numの値の参照"については、ローカル変数・インスタンス変数・クラス変数の区別と、変数のスコープ、変数の生存期間について勉強し直してください。 ふと思ったのですが、もしかして質問者さんは"return文だから"何か特別なことがあると思っていますか? 変数の値を参照するのはreturn文でも他の式の中でもありません。

KAIJI-000
質問者

補足

>>(2)変数brをreadLineメソッドとセットで用い、それをstrという新たな箱に入れる。(間>違いとは言い切れないが、正しいイメージを持っているかどうかが怪しい) 結構駆け足で、やさしいJava の2冊を勉強したので、 復習が十分でない状態なので、1つ1つの項目がかなり怪しいかもしれません。 (特にclass の章以降の説明がイマイチピンと来ていません) >何と比べて何が複雑になっていると思うのでしょう? 最初の状態と比べて複雑化していると思っています。         ただのbr も         ↓ 最終的にはprintlnと連携することで画面表示まで出来るようになる という感じで、最初の状態に比べて複雑化していっていると言えませんか? >return文だから"何か特別なことがあると思っていますか? 特別ってほどのイメージは持ってないですが、この例文のせいか イマイチピンと来ていません。 僕なりに例文を書き換えてみました ―――――――――――――― 省略 int getNum() { System. out . print ln (“ナンバーを調べました。”) return 1; } 省略 System . out . print ln (“ナンバーは” + number + “でした。”); Car car 1 = new Car(); int number = car1.getNum(); -------------------------------------------------表示結果 ナンバーを調べました。 サンプルから車を調べたところ ナンバーは1でした。 これならわかるので、ちょっと number num とか変数がいくつか並ぶことに慣れていないだけかもしれません。

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.3

> (1)brにBufferedReaderのメソッドが入る。 間違い。変数brにメソッドは入らないし、BufferedReaderはメソッドじゃない。 以下論外。

KAIJI-000
質問者

補足

大変失礼いたしました。 BufferedReaderはクラスライブラリのひとつで、オブジェクトの作成というやつですね。

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

Java初心者とおっしゃいますが、質問履歴を拝見する限り半年かそれ以上はJavaの勉強をしていて、Java以外の言語もお使いのようです。それで質問文にあるような認識なのだとすると、矯正が大変そうです。 > なぜ上に行くのですか? 処理って下(setNumGas)に行かないのですか? 確かに、メソッドの中の処理は基本的に上から下へ進みます(ループ構造によって下から上へ戻る場合もある)。 しかし、それはあくまでもメソッドの中での話で、メソッドの終わりまで行ったらそのメソッドの処理はそこで終わり。下のメソッド(この場合setNumGas())に行くことはありません。 そして、変数numの値の参照は、上から下へ進む「処理」ではないんです。メソッドの中で変数を参照する場合、 ・そのメソッドの中でその名前の変数が宣言されていればそれを使う ・そのメソッドの中になければ、そのメソッドを定義しているクラスの中から探す という順番になります。 getNum()メソッドの中の "return num;" で変数numの値を参照しようとすると、 ・getNum()の中ではnumという変数は宣言されていない ・getNum()を定義しているクラスCarには "int num;" で宣言されているインスタンス変数がある → インスタンス変数のnumの値を使う となって、getNum()以外のメソッドのことは気にしません。 > 変数というのは一時的な箱で値とかメソッドそのものを入れてどんどん複雑化するものではないのでしょうか? どういう意味で言っているのか分かりませんが、「どんどん複雑化」することはありませんし、Java言語では変数にメソッドを入れることもできません。

KAIJI-000
質問者

補足

>矯正が大変そうです。 変な勉強の仕方・教えれ方をしたかもしれませんが、地道に理解を変えていくしかないです。 変数numの値の参照の考え方はまだ慣れてないせいか、すんなり理解できてませんが、頭にたたき込んでおきます。 >、「どんどん複雑化」することはありませんし、Java言語では>変数にメソッドを入れることもできません。 例えば、 ------------------------------------------------- System.out.println("英字を入力してください。"); BufferedReader br = BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); System.out.println("あなたが入力したのは"+str+"です。"); -------------------------------------------- この例で言うと、 (1)brにBufferedReaderのメソッドが入る。 (2)変数brをreadLineメソッドとセットで用い、それをstrという新たな箱に入れる。 (3)最後にstrの箱の中身をprintlnで表示させる。 次から次へ変数に色んなものを入れて、どんどん複雑化していってると言えませんか?

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

……あー、なんというか、すごい発想ですね。 まず(1)から。 > car1.setNumGas(1234, 20.5); の時点で > void setNumGas(int n, double g) はvoid setNumGas(1234, 20.5)に なりません。 void setNumGas(int n, double g) はあくまで void setNumGas(int n, double g) のままです。 変化するのは n と g の「中身」です。 また、setNumGas(int n, double g) で行う処理は > num = n; > gas = g; > System.out.println("車のナンバーを" + num + "にガソリン量を" + gas + "にしました。"); の 3 つだけです。たしかに num は getNum() で使われてはいますが、setNumGas(int n, double g) ではそんなことは知りませんし関係ありません。 次に(2)。 コンピュータはあなたが考えているようなややこしいことなんてしていません。 まず > int number = car1.getNum(); とした時点で > int getNum()  にジャンプし、 は(細かいことは置いといて)あっています。次にそのジャンプした先での処理を順に行います。 この場合の処理の内容は > System.out.println("ナンバーを調べました。"); > return num; です。したがって --------------------------------------------------------------------  System.out.println("ナンバーを調べました。"); → じゃあ標準出力に "ナンバーを調べました。" するね  return num; → えーっと、return になったからここで関数終了か。っと、なになに、num の値を関数の戻り値にしろってか。 -------------------------------------------------------------------- という処理を行います。 上記に続けてその num の値を持ってくる必要があるのですが、 > -------------------------------------------------------------------- > return num; →よーし探しに行こう! の部分は正しいです。また、numと言う変数が出てきたらそれがどこにあるかをさがすので、 > まずdouble getGas()の中 → うーんない も正しいです。 (正確には、「まず return 文がある位置で有効なローカル変数の中 → うーんない」なのですが) しかし、そのあとの > 次にvoid setNumGas(int n, double g) の中 > { > num = n;    →   お、あった! > nは今1234だな、だから表示結果は1234 > --------------------------------------------------------------------------- が間違いです。次には num をそのクラスのインスタンスの中から探します。この場合は > class Car > { > int num; で num が int 型の変数として定義されているのでその値を使用します。 次にその変数に格納されている値を利用することになりますが、コンピュータは値を引き出す変数に前に何があったかを覚えてなんかいません。 この場合、以前に num に 1234 が代入されたから 1234 を返しているのではなく、 return の処理を行っている時点での num の値が 1234 だから 1234 を返しています。

KAIJI-000
質問者

お礼

長い文章を打ち込んでもらっての解説有難うございます!

KAIJI-000
質問者

補足

>次には num をそのクラスのインスタンスの中から探します。 ちょっとわからないです。なぜ上に行くのですか? 処理って下(setNumGas)に行かないのですか? >コンピュータは値を引き出す変数に前に何があったかを覚えてなんかいません。 についてですが、変数というのは一時的な箱で値とかメソッドそのものを入れてどんどん複雑化するものではないのでしょうか? 例えば int age = 35; System.out.print("age:"); System.out.print(age); ↓ 35 というものだってコンピュータがage = 35というものをずっと覚えているから表示できるのではないですか? >return の処理を行っている時点での num の値が 1234 だから これもわからないです。色々すいません。

関連するQ&A

  • "add"とは?f

    class Car { int num; double gas; void setNum(int n) { num = n; System.out.println("ナンバーを" + num + "にしました。"); } void setGas(double g) { gas = g; System.out.println("ガソリン量を" + gas + "にしました。"); System.out.println("この車は満タンで40リットル入ります。"); } void show() { System.out.println("車のナンバーは"+num+"です。"); System.out.println("ガソリン量は"+gas+"です。"); } } class Prog11_1 { public static void main(String args[]) { Car car1 = new Car(); Car car2 = new Car(); car1.setNum(1234); car1.setGas(20.5); car2.setNum(5678); car2.setGas(30.8); car1.addGas(10.0); car2.addGas(10.0); car1.show(); car2.show(); } } 上記のプログラムの足りないところを補い、完成させるというものなんですが、"add"というのは一体どのような役割を持っているものなんでしょうか? 分かる方いらっしゃいましたら、よろしくお願いします。

    • ベストアンサー
    • Java
  • getter、setterメソッドを活用したいです

    Javaのgetter、setterメソッドをうまく使って、下記のコードを実行しようとしたのですが。 ---------------- package javatest; public class Jidosha { private int num; private double gas; public void setNum(int num) { this.num = num; } public void setGas(double gas) { this.gas = gas; } public int getNum() { return num; } public double getGas() { return gas; } public static void main(String args[]) { System.out.println("この車のナンバーは" + num + "です。"); System.out.println("この車のガソリンが入る最大量は " + gas + "です。"); } } ---------------- Eclipse上では「System.out.println・・・」のところで「非 static フィールド gas を static 参照できません」といったエラーが出てきまして。 getter、setterメソッドをうまく活用して「この車のナンバーは××××です」「この車のガソリンが入る最大量は〇〇〇〇です。」という文を出力するには、どう書けばよいでしょうか。 よろしくお願い致します。 ※OKWAVEより補足:「Webシステム開発」についての質問です。

    • ベストアンサー
    • Java
  • 「インターフェイス」って何の為に必要なんですか?

    “値を変更できるフィールドがもてない”・“抽象クラスしかもてない”のに何の為に記述するんだろう?と思って、インターフェイスを入力せずに実行してみたのですが、入力してもしなくても同じ結果が出ました。 同じ結果が出るならなぜ必要なんですか? ************* コード **************************************** //のりものインターフェイス interface iVehicle{ void vShow(); } //材料インターフェイス interface iMaterial{ void mShow(); } //車クラス class Car implements iVehicle,iMaterial{ private int num; private double gas; public Car(int n, double g){ num = n; gas = g; System.out.println("ナンバー"+ num + "ガソリン量" +gas + "の車を作成しました。"); } public void vShow(){ System.out.println("車のナンバーは" + num +"です。"); System.out.println("ガソリン量は" + gas + "です。"); } public void mShow(){ System.out.println("車の材質は鉄です。"); } } class Sample1{ public static void main(String[] args){ Car car1 = new Car(1234, 20.5); car1.vShow(); car1.mShow(); } } ************************************************************** <実行結果> 「ナンバー1234ガソリン量20.5の車を作成しました。  車のナンバーは1234です。  ガソリン量は20.5です。  車の材質は鉄です。              」 インターフェイスを記述してもしなくても、同じく上記の結果が 出ました。 ※ちなみに抽象クラスもいったい何なのかよく分りません。

    • ベストアンサー
    • Java
  • 別ファイルのclassの読み込みについて

    Javaを勉強し始めたばかりのものです。 購入した参考書を見ながら勉強していますが、表題の件の項目で参考書ではうまくいくように表記されておりますが、実際にやってみると下記エラーが表示されます。 --------------------------------------------- C:\XXXXXXXXXX>javac ../../sample/Sample1.java ..\..\sample\Sample1.java:3: シンボルを見つけられません。 シンボル: クラス Car 場所 : Sample1 の クラス Car car1 = new Car(); ^ ..\..\sample\Sample1.java:3: シンボルを見つけられません。 シンボル: クラス Car 場所 : Sample1 の クラス Car car1 = new Car(); ^ エラー 2 個 ------------------------------------------------------ ちなみに下記はソースとなります。 -------------------------------------------- 【Car.java】 //Carクラス class Car { private int num; private double gas; public Car(){ num = 0; gas = 0.0; System.out.println("車を作成しました。"); } public void setCar(int n, double g){ num = n; gas = g; System.out.println("ナンバーを" + num + "ガソリン量を" + gas + "にしました。"); } public void show(){ System.out.println("車のナンバーは" + num + "です。"); System.out.println("ガソリン量は" + gas + "です。"); } } 【Sample1.java】 class Sample1 { public static void main (String args[]){ Car car1 = new Car(); car1.show(); } } --------------------------------------------------- なんとなくエラーが出るだろうとはわかりますが、上記の記載方法だとやはりうまくいかないのでしょうか? お忙しいところ申し訳ありませんが、どなたかご教示の程お願いいたします。

    • ベストアンサー
    • Java
  • 抽象クラス、インターフェイスについて

    少し長いですが、以下にコードを書きました。これでコンパイルすると、13個ほどエラーが出て、何がなんだかわかりません。何が間違っているのでしょうか?よろしくお願いします。ちなみに本を見ながらの独学です。 //のりものインターフェイス interface iVehicle { abstract void show(); } //車くらす class Car implements iVehicle { private int num; private double gas; public Car(int n, double g)) { num = n; gas = g; System.out.println("ナンバー" + num +"ガソリン量" + gas +"の車を作成しました"); } public void show() { System.out.println("車のナンバーは" + num +"です"); System.out.println("ガソリン量は" + gas +"です"); } } //飛行機クラス class Plane extends Vehicle { private int flight; public Plane(int f) { flight = f; System.out.println("便" + flight +"の飛行機を作成しました"); } public void show() { System.out.println("飛行機の便は" + flight +"です"); } } class sample8 { public static void main(String args[]) { iVehicle ivc[]; ivc = new iVehicle[2]; ivc[0] = new Car(1234, 20.5); ivc[1] = new Plane(232); for(int i=0; i<ivc.length; i++){ if(vc[i] instanceof Car) ivc[i].show(); } } }

    • ベストアンサー
    • Java
  • インターフェイスを2つ以上実装

    こんにちは。 高橋麻奈さん著の「やさしいJava」を使ってJavaを学んでいるのですが、インターフェイスのところでつまずいています。 インターフェイスは2つ以上クラスに実装できるということですが、本に書いてあるサンプル文では2つ実装されているものが載っています。 それにさらにもう一つインターフェイスを自分で書き加えて実装させてみたのですが、エラーが出てコンパイルできませんでした。書き加える前の状態では普通にコンパイル&実行できました。 ということは書き加えた部分が間違ってるはずなのですが自分には何処が間違っているのかわかりません。 以下にそのコード全文を載せておきますね。(色インターフェイス関連が書き加えた部分) どなたかわかるかたがいらっしゃいましたらご回答お願いします。 //のりものインターフェイス interface iVehicle { void vShow(); } //材料インターフェイス interface iMaterial { void mShow(); } //色インターフェイス interface iColor(); { void cShow(); } //車クラス class Car implements iVehicle, iMaterial, iColor { private int num; private double gas; public Car(int n, double g) { num = n; gas = g; System.out.println("ナンバー" + num + "ガソリン量" + gas + "の車を作成しました"); } public void vShow() { System.out.println("車のナンバーは" + num + "です"); System.out.println("ガソリン量は" + gas + "です"); } public void mShow() { System.out.println("車の材質は鉄です"); } public void cShow() { System.out.println("車の色は黄色です"); } } class Sample4 { public static void main(String args[]) { Car car1 = new Car(1234, 20.5); car1.vShow(); car1.mShow(); car1.cShow(); } }

    • ベストアンサー
    • Java
  • プログラミングお願いします(JAVA)

    フィールドとして、「ナンバー」「ガソリン残量」「走行距離」「エンジンの排気量」の4つ、それらの値を表示するメソッド4つから構成されるCar2ラスを作成し、メインメソッドで2つのオブジェクトkcar と bcar を作成し、それぞれに、次の値を代入し、Car2ラスのメソッドを呼び出してそれぞれの値を表示するプログラムを作成しなさい オブジェクト名  ナンバー   ガソリン残量        走行距離   排気量 kcar        552        25.1            22000      2000 bcar        441        33.5           9940        2000 //↓一応自分が書いたコードなので会ってるか分かりませんが、違ってたら教えてください Car2 { int num; double gas; int m; int h; int num1; double gas1; int m1; int h1; void show() { System.out.println("kcar"+num+ +gas+m+h); System.out.println("bcar"+num1+ +gas1+m1+h1); } } class Sample1 { public static void main(String[] args) { Car2 car1; car1 =new Car2(); car1.num=552; car1.gas=25.1; car1.m=22000; car1.h=2000; car1.num1=441; car1.gas1=33.5; car1.m1=9940; car1.h1=2000; car1.show(); } }

  • パッケージのエラーについて

    パッケージのエラーについてなのですが、コンパイルできずにいます。 C:\java\13\r内に Car.java rensyu1.javaをおいています。 コマンドプロンプトには C:\java\13> と表示させています。classpathの設定はしていません。 システム内の環境設定はしました。 ------------------------Car.java package r; class Car { private int num; private double gas; public Car() { num = 0; gram = 0.0; System.out.println("車を作成しました。"); } public void setCar(int n, double g) { num = n; gram = g; System.out.println("ナンバー:" + number + "ガソリン:" + gas + "です。"); } public void show() { System.out.println("車のナンバーは" + number + "です。"); System.out.println("ガソリン量は" + gram + "です"); } } -------------------------------------rensyu1.java package r; class rensyu1 { public static void main(String args[]) { Car car1 = new Car(); car1.show(); } } やさしいjavaという本を参考にしていまして 教科書どうりですと javac r\rensyu1.java java r.rensyu1でコンパイルできるはずでしたが 「シンボルを見つけられません」というエラーが出ます。 気になるのが、ファイルr内にCar.classがありません。 他にもjavac -classpath . rensyu1.java を入力してみましたが、こちらは 「無効なフラグです」というエラーがでます。 教えていただけると助かります。宜しくお願いします。

    • ベストアンサー
    • Java
  • 初心者なので教えてほしいです。

    下記のコードなんですが、どこか間違っていますか? テキスト通りに入力したはずなんですが、 『メソッド本体がないか、abstractとして宣言されています』 というエラーが出てしまいます。 どういう意味なのか分らなくて・・・ **************************************************** //車クラス class Car{ int num; double gas; } //車クラスのオブジェクトを作成する class Sample1{ public static void main(String[] args); { Car car1; car1 = new Car(); car1.num = 1234; car1.gas =20.5; System.out.println("車のナンバーは" +car1.num+ "です。"); System.out.println("ガソリンの量は" +car1.gas+ "です。"); } } *************************************************************

    • ベストアンサー
    • Java
  • プログラミングお願いします(java)

    問題 フィールドとして、「ナンバー」「ガソリン残量」「走行距離」「エンジンの排気量」の4つ、それらの値を表示するメソッド4つから構成されるCar2ラスを作成し、メインメソッドで2つのオブジェクトkcar と bcar を作成し、それぞれに、次の値を代入し、Car2ラスのメソッドを呼び出してそれぞれの値を表示するプログラムを作成しなさい オブジェクト名  ナンバー   ガソリン残量        走行距離   排気量 kcar        552        25.1            22000      2000 bcar        441        33.5           9940        2000 ↓一応自分のコードを作成しました・しかしこの問題にあってるか分かりません。違ってたら指摘してください///出来たらコード作成してくださると助かります class Car2 { int num; double gas; int m; int h; int num1; double gas1; int m1; int h1; void show() { System.out.println("kcar"+num+ +gas+m+h); System.out.println("bcar"+num1+ +gas1+m1+h1); } } class Sample1 { public static void main(String[] args) { Car2 car1; car1 =new Car2(); car1.num=552; car1.gas=25.1; car1.m=22000; car1.h=2000; car1.num1=441; car1.gas1=33.5; car1.m1=9940; car1.h1=2000; car1.show(); } }

専門家に質問してみよう