プログラムの合体ってありますか?

このQ&Aのポイント
  • プログラムの合体について解説します
  • 複数のプログラムが合体することはありますか?
  • プログラムの統合に関する情報をまとめています
回答を見る
  • ベストアンサー

プログラムの合体。

jump7799_4836さん 2018/7/2103:34:44 public class Test2 { public static int メソッド () { System.out.println("メソッド()が呼ばれました"); return 0; } public static int メソッド (int i) { System.out.println("メソッド(int i)が呼ばれました"); return i; } public static int メソッド (int i, int j) { System.out.println("メソッド(int i, int j)が呼ばれました"); return i; } public static int メソッド (short s) { System.out.println("メソッド(short s)が呼ばれました"); return s; } public static int メソッド (double d) { System.out.println("メソッド(double d)が呼ばれました"); return (int) d; } } public メソッド class Test2 { public メソッド static void main(String[] args) { Test2.メソッド (); Test2.メソッド (1); Test2.メソッド (1,2); Test2.メソッド (1.1); Test2.メソッド ((short) 1); Test2.メソッド ((double)1); } } kouzou@GD348ZZD9:/WORK$ javac Test2.java Test2.java:29: エラー: class、interfaceまたはenumがありません public メソッド class Test2 { ^ Test2.java:30: エラー: <identifier>がありません public メソッド static void main(String[] args) { ^ エラー2個 2つのプログラムが合体することってあるのですか? いつもすみません。 解説のほど、宜しくお願い申し上げます。

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

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

  • ベストアンサー
回答No.4

>public メソッド class Test2 { ↑これは「public class Test2 {」の間違いでしょうか? そうだとすると、答えは同名のクラスは複数 定義できません。 そもそも、(同名のクラスを2つ定義して)何をしたいのでしょうか?

jump7799
質問者

お礼

クラス名を合わせると読んだものだから・・・。 ご回答誠にありがとうございます。

その他の回答 (4)

回答No.5

>2つのプログラムが合体することってあるのですか? >回答No.4 amanojaku1 もしかして、クラスの継承(extends)の事を言ってますか?

jump7799
質問者

お礼

いいえ。継承はまだ勉強してません。 ご回答誠にありがとうございます。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>Winsowsの文字が好みじゃなかったので >Ubuntuに変えました。 その情報は質問に提示のソースと全く関係がありません。 回答No.1で前半の「public class Test { ----中略----}」には「main()」がありませんので不完全なコードと思われます。 後半の「public メソッド class Test2 {----中略----}」はclassの定義に誤りがあるようです。 前半と後半を繋げるには次の3行を削除して ----------ここから---------- } public メソッド class Test2 { ----------ここまで---------- 次の行を修正します。 public メソッド static void main(String[] args) {     ↓ public static void main(String[] args) { javaのソースファイル(例えばTest4.java)にはclassの定義が1つとmain()が1つ必要です。 main()が無かったり、複数のclassを定義することはプログラムの整合性が無くなりますので基本的な形を覚えてください。 あなたの質問やお礼、補足のコメントは状況説明が不完全なため憶測で回答をしなければならない状態です。 従って、以前にもアドバイスしましたが出張指導の先生にあなたのパソコンを見ながら指導して貰わないと覚えられないと思います。

jump7799
質問者

お礼

独習でやります。 OKWAVEのお世話になりますが・・・。 ご回答誠にありがとうございます。

  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.2

>2つのプログラムが合体することってあるのですか? 何をいってるのかわかりません。 分かるのは、一つのファイルに Test2クラスの定義(public class Test2 {...} の部分)があるのと 何をよくわからないpublic メソッド class Test2 {...} が書かれているということ。

jump7799
質問者

お礼

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

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

>2つのプログラムが合体することってあるのですか? 状況説明が不足していて回答が困難です。 ソースコードの掲載元は何処ですか?(あなたが起こしたコードとは思えません) public class Test2にはmain()が見当たりません。 public メソッド class Test2の「メソッド」がエラーになっていると思います。また、「class Test2」は既に同一ディレクトリに存在することになりますので使えないでしょう。 エラーメッセージの内容からの憶測ですがLinuxで実行されているようですね。 Wndows 10での学習はマスターできたのですか?

jump7799
質問者

お礼

Winsowsの文字が好みじゃなかったので Ubuntuに変えました。

関連するQ&A

  • java iを1づつ増やすプログラムと2づつ増やすプログラム

    次のようにすればiを1づつ増やして表示されます。 class Calc{   int i=1;   int add(){     return i++;   } } class Count{   public static void main(String[] args){     Calc calc = new Calc();     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());   } } 実行結果 i = 1 i = 2 i = 3 しかし次のように2づつ増やそうとすると、 class Calc{   int i=1;   int add(){     return i+2;   } } class Count{   public static void main(String[] args){     Calc calc = new Calc();     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());   } } 実行結果 i = 3 i = 3 i = 3 このようになってしまいます。どこがおかしいのでしょうか?

    • ベストアンサー
    • Java
  • プログラムの平均値の出し方。

    プログラムの平均値の出し方。 public class pazu{ public static void main(String[] args){ int sum =0,saidai; System.out.println("コマンドラインパラメータは"+args.length+"個です"); for(int i=0;i<args.length;i++){ int x=Integer.parseInt(args[i]); if(pazu.is_even(x)) System.out.println(args[i]+"は偶数です"); else System.out.println(args[i]+"は奇数です"); sum+=x; } saidai=pazu.max(args); System.out.println("合計:"+sum); System.out.println("最大:"+saidai); } static boolean is_even(int number){ return number%2==0; } static int max(String[] number){ int max =0; for(int i=0;i<number.length;i++){ if(max<Integer.parseInt(number[i])){ max=Integer.parseInt(number[i]); } } return max; } } このプログラムで数値の奇遇、合計値、最大値までは出せたのですが平均値の出し方がわかりません。 どこに何を入れればいいかを教えてください。お願いします。

  • 「これならわかるJAVA入門の入門 坂下夕里 P186,187」につい

    「これならわかるJAVA入門の入門 坂下夕里 P186,187」についての質問です。 http://up.mugitya.com/img/Lv.1_up121711.jpg http://up1m.ko.gs/src/koups217.jpg http://josup.xrea.jp/josup/src/up1248.jpg http://219.94.194.39/up/src/f3236.jpg 【オーバーロードを使ったプログラム】 class Test { int sum(int i, int j){ return i + j; } int sum(int i,double d){ return (int)(i + d); } } public class sample35 { public static void main(String[] args) { Test test = new Test(); System.out.println(test.sum(1,2)); System.out.println(test.sum(2,2.5)); } } たとえば、2番目のメソッドの戻り値をdouble型にしたメソッドを オーバーロードしようとするとどうなるでしょう? double sum(int i, double d){ return i + d; コンパイル時にエラーになります。まったく同じ引数定義の場合は、 処理内容や戻り値が違っても複数定義することはできません。 【質問】 「まったく同じ引数定義の場合」とはどういう事でしょうか? どことどこが同じなのでしょうか。

    • ベストアンサー
    • Java
  • 継承について

    以下のような問題(SJC-P試験)があり、 解説では考え方として ●メンバがフィールドなら「変数の型」 ●インスタンスメソッドなら「実際のオブジェクトの型」 ●クラスメソッドなら「変数の型」 とありました。 できればなぜこのような考え方(法則)になるか理解したいと思っています。 #当方、Javaプログラミング経験ゼロで、実際に下記のようなコーディングをするかどうかもわかりませんが、 #丸暗記だと実際のコーディングで使えそうにないので、できれば理解したいと思ってます。 下記問題は解説の考え方さえ丸暗記すれば解けるのかもしれませんが (なぜ解説のような考え方になるのか含め)教えていただけませんでしょうか。 ----- 【問題1】 class Super{  int d = 10;  void meth()System.out.println(d); } class Sub extends Super{  double d = 20.0;  void meth()System.out.println(d); } class Sample1{  public static void main(String[] args){  Super s = new Sub();  System.out.println(s.d);  s.meth(); } 【答え】 10 20.0 ----- 【問題2】 class Super{  static int d = 10;  static void meth()System.out.println(d); } class Sub extends Super{  static double d = 20.0;  static void meth()System.out.println(d); } class Sample2{  public static void main(String[] args){  Super s = new Sub();  System.out.println(s.d);  s.meth(); } 【答え】 10 10 ----- よろしくお願い致します。

    • ベストアンサー
    • Java
  • javaプログラムについて

    */コマンドライン引数で2つの数字と1つの記号を受け取ります。 * //受け取った記号が『+』ならplusメソッドを呼び出し、 * //受け取った記号が『-』ならminusメソッドを呼び出し、 * //受け取った記号が『×』ならmultiplyメソッドを呼び出し、 * //受け取った記号が『÷』ならdivideメソッドを呼び出し、 * //それ以外が入力された場合は『計算できません。』と表示する * //プログラムを作成してください。 * */ public class MethodAdd9 { public static void main(String[] args) { int input1 = Integer.parseInt(args[0]); int input2 = Integer.parseInt(args[1]); String sign = args[2]; //ここにプログラムを追加してください if(sign.equals("+")){ plus(input1,input2);//プラスメソッドへ } if(sign.equals("-")){ minus(input1,input2);//マイナスメソッドへ } if(sign.equals("*")){ multiply(input1,input2);//掛算メソッドへ } if(sign.equals("/")){ divide(input1,input2);//割算メソッドへ } } // 四則演算を行うメソッドを追加 //プラスメソッド表示 public static void plus(int a,int b){ int c=a+b; System.out.println(a+b); } //マイナスメソッド表示 public static void minus(int d,int e){ int f=d-e; System.out.println(d-e); } //掛算メソッド表示 public static void multiply(int g, int h){ int i=g*h; System.out.println(g*h); } //割算メソッド表示 public static void divide(int j,int k){ int l=j/k; System.out.println(j/k); } } ここまで出来て、記号を認識してくれるようにはなったのですが、何故か"*"掛算の記号だけ読み込んでくれません。また、ここから「計算出来ません」と表示させるにはどうすれば良いでしょうか。知恵をお貸しください。

  • javaのプログラムに関する質問

    * 入力された数値の数だけ、"*"を表示するメソッド * displayAsterメソッドを作成して下さい。 */ public class MethodAdd3 { public static void main(String[] args){ // 入力された数字をint型の数値に変換 int iInput = Integer.parseInt(args[0]); // displayAsterメソッドの呼び出し displayAster(iInput); } // ここにdisplayAsterメソッドを作成 public static void displayAster(int iInput1){ for(i=0; i<iInput1; i++){ System.out.print("*"); } System.out.println(""); } ここまで出来たのですが、コンパイルエラーになってしまいます。 考え方かヒントなど、知恵をお貸しください。

  • newの基本的な使い方が理解できていません

    以下のソースコードで【Super s = new Sub();】となっているのですが、これはSuperを見ているのでしょうか?またはSubでしょうか? この考え方がいまいち理解できません。 次の【System.out.println(s.d);】では、class Superの10を返しているようですが、その次の行でのs.meth(); ではclass Subの20を返しているようです。 また、クラスsuperのint dおよび、boid meth()をstaticにすると、そちらをみているようなのですが、混乱して理解できません。 すみませんが、どのようになっているか教えて頂けませんでしょうか? class Super{ int d = 10; void meth(){ System.out.println(d); } } class Sub extends Super{ double d =20.0; void math (){ System.out.println(d); } } class Test{ public static void main(String args[]){ Super s = new Sub(); System.out.println(s.d); s.meth(); } }

    • ベストアンサー
    • Java
  • javaのプログラムについて

    java始めたばかりの者です。 class sample1 { public static void main(String[] args) { for(int i=1; i<=5; i++){ for(int j=0; j<i; j++){ System.out.println("*"); } System.out.println("\n"); } } } これを実行すると * * * * * * * * * * * * * * * こうなってしまい * ** *** **** ***** このようにするにはどうしたらいいのでしょうか??

    • ベストアンサー
    • Java
  • 成績表示プログラム

    class Test { String subject; int point; void SetPoint(String s, int p) { subject = s; point = p; } String getPoint() { return subject + ":" + point; } } class Student { int id; String name; int subnum; Test[] test; Student(int i, String n, int s) { id = i; name = n; subnum = s; test = new Test[s]; for(int j = 0; j < s; j++) test[j] = new Test(); } String getName() { return id + " " + name; } int getGrade() { int sum = 0; for(int i = 0; i < subnum; i++) sum += test[i].point; return sum; } // メソッドのオーバーロード int getGrade(int a) { int base = 100 * subnum / a; int rank = getGrade() / base + 1; return rank; } void printScore() { System.out.println(getName()); for(int i = 0; i < subnum; i++) System.out.print(test[i].getPoint() + " "); System.out.println(); System.out.println("合計点:" + getGrade()); int rank = 5; System.out.println("評 価:" + getGrade(rank)); System.out.println(); } } class ClassRoom { public static void main(String[] args) { Student taro = new Student(12, "taro", 3); taro.test[0].SetPoint("国 語", 95); taro.test[1].SetPoint("数 学", 83); taro.test[2].SetPoint("英 語", 76); taro.printScore(); Student jiro = new Student(7, "jiro", 3); jiro.test[0].SetPoint("国 語", 66); jiro.test[1].SetPoint("数 学", 97); jiro.test[2].SetPoint("英 語", 72); jiro.printScore(); } } このJavaのプログラムを画面上に表示させて、下記のようなプログラムを追加したいです。 国語「  」点 数学「  」点 英語「  」点 と言う画面で点を入力して「計算」を押すと 合計点「  」点 評価「  」 が表示されるようにしたいです。

  • return文について質問

    BMIの指数と判定結果を出力したいのですが、「return文が指定されていません」と出てきます。 一番最後の「肥満(4度)」の下の行にreturn d;と挿入すると、ArrayIndexIutIfBoundsExceptionと出てきてしまいました。 何が間違っているのか教えていただければ幸いです。 public class Ex41{ public static void main(String[] args){ double[][] data={ {50,176},{60,170},{70,160},{90,170},{120,175},{120,170} } ; for(int i=0;i<=data.length;i++){ double k=data[i][0]; double c=data[i][1]; } } static double bmi(double k,double c){ double d=k/(c/100)/(c/100); return d; } static double bmicheck (double d){ if(d<18.5) System.out.println("低体重"+d); else if(d>=18.5 && d<25) System.out.println("普通体重"+d); else if(d>=25 && d<30) System.out.println("肥満(1度)"+d); else if (d>=30 && d<35) System.out.println("肥満(2度)"+d); else if (d>=35 && d<40) System.out.println("肥満(3度)"+d); else System.out.println("肥満(4度)"+d); } }

専門家に質問してみよう