• 締切済み

初心者ですが・・・。

J_Hの回答

  • J_H
  • ベストアンサー率57% (11/19)
回答No.2

emp[0]=new Shain(); のようになっているから、 Shain、Kacho, Bucho, Syacho クラスは、Employee クラスを継承する必要があります。 また、 emp[i].grade+":"+emp[i].salary となっているから、 employee クラスにgrade、salary というフィールドが (恐らく) public で宣言されている必要があります。 派生クラスのコンストラクタ内で、基底クラスのフィールドを初期化するために基底クラスのパラメータを持ったコンストラクタを呼び出します。 例えば以下のような感じ。 class Employee{ public String grade; public int salary; public Employee(String sVal, int iVal){ grade = sVal; salary = iVal; } } class Shain extends Employee{ public Shain (){ super("社員", 200000); } } 残りの Kacho, Bucho, Shacho クラスも Shain クラス同様に作成します。 後は自力で・・・・・。

関連するQ&A

  • Eclipseのパッケージについて

    デフォルトパッケージ傘下で配列をコピーするという簡単なプログラムを作りました。ちゃんと実行できます。 ですが、デフォルトパッケージではなく新たに自分で作ったパッケージ傘下でそのプログラムを実行すると この行に複数マーカーがあります - ブレークポイント:sample50 - public 型 sample50 はそれ独自のファイル内に定義されなけ ればなりません というエラーが出てしまい、実行できません。 文頭に package ○○○; と書く以外になに変更しないといけないのでしょうか?回答よろしくお願いします。以下コードです。 package atto;           ←attoは自分で作ったパッケージ名です。 public class sample50 {      ←ここのsample50に赤い波線があります。 /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] bd=new int[]{1,2,3,4}; for(int v:bd){ if(v!=0)System.out.println(v); } System.out.println("-------"); //copy int[] bd2=new int[bd.length]; for(int i=0;i<bd.length;i++){ bd2[i]=bd[i]; } //copy for(int v:bd2){ if(v!=0){ System.out.println(v); } } } }

    • ベストアンサー
    • Java
  • 下記の様に、Employeeの(クラス)型でキャストした場合の、Emp

    下記の様に、Employeeの(クラス)型でキャストした場合の、EmployeeのVectorを使った書き方がよく分かりません。Employeeは複数の従業員の名前をVector形式で表現したものになります。Employeeクラスの中で、Vector型のEmployeeや関数print()をどうやって書いたらいいのか分かりかねています。御教示願えたらと思っています。 //ここから public class Main { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Traversable employees; employees = new TraversableVector(); // ... java.util.Enumeration e = employees.createEnumeration(); while(e.hasMoreElements()) { Employee emp = (Employee)e.nextElement(); emp.print(); } } } //ここまで よろしくお願い致します。

    • ベストアンサー
    • Java
  • Eclipseで実行>Javaアプリケーションが表示されない

    Eclipseでソースを書いたところ、 右クリック>実行>でJavaアプリケーションが表示されませんでした。 他のソースはJavaアプリケーションが表示されて実行が出来ます。 どうしたら実行できるようになるのでしょうか? 前に行った操作で、原因として考えられるのは、 インポートからファイルシステムでソースをインポートしたぐらいです。 どなたか回答宜しくお願いします。 ~~~~以下がそのソースです。~~~~~~~ package selfJava; public class P78_2_9_2 { /** * @param args * @param */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ double i, j; if(args.length != 2){ System.out.println("引数を二つにしてください"); } for(int k = 0, k < args.length; k++){ if(Character.isDigit(args[0])){ }else{ System.out.println("数値を入力してください"); } } i = Integer.parseInt(args[0]); j = Integer.parseInt(args[1]); System.out.println("args[0] × args[1] =" + i * j); } }

  • 入出力(FileOutputStreamについて)

    以下のコードは独習Javaのコードです。これを実行すればテキストに0~11までの数字が書き込まれるはずなのですが・・・なぜかA~Hが横に並んで書き込まれてます。 どうなってるのかどなたか教えてください。 import java.io.*; class BufferedOutputStreamDemo {  public static void main(String args[])  {   try   {    FileOutputStream fos = new FileOutputStream(args[0]);    BufferedOutputStream bos = new BufferedOutputStream(fos);    for(int i = 0; i <12; i++)    { bos.write(i);    } bos.close();   }   catch(Exception e)   {     System.out.println("Exception : " +e);   }  } }

    • ベストアンサー
    • Java
  • 【初心者です】最大値の箇所

    import java.io.*; public class ex41b { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int[] a = new int[100]; int count = 0; while(count < a.length) { System.out.print(count + "> "); int v = (new Integer(in.readLine())).intValue(); if(v == 0) break; a[count] = v; ++count; } int max = a[0]; for(int i = 1; i<a.length; i++) { if(a[i]>max) max = a[i]; } System.out.println("max: " + max); System.out.println("pos: " + ****); } } このソースで、最大値と最大値が何番目かを出力したいのですが、 最後の****に何を当てはめればいいのかが分かりません。 いくつかやってみたのですが、よく分かりませんでした。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Javaについて教えてください。

    Javaのソースコードで以下のコードを実行すると表示されないのですがなぜでしょうか? public class Sample{ public static void main(String[] args){ for (int i = 0 ; i >= 5; i++){ System.out.println(i); } } }

  • 文字列を整数に型変換してソート

    コマンドライン入力で文字列を入力してそれを整数型に変換。そして、それをソートするプログラムを作ってるんですが、なぜかうまくいかず、出力される数字がすべて0になります。 どなたかヘルプおねがいします>< class sort32 { public static void main(String[] args) { System.out.println("------------------------"); int i=0; int j=i+1; int vals[]; vals = new int[args.length]; for(i=0;i>args.length ;i++) { vals[i] = Integer.parseInt(args[i]); } java.util.Arrays.sort(vals); for(int k=0; k<vals.length; k++) System.out.println("<"+vals[k]+">"); } }

  • Java初心者です

    次のようなプログラムを作りました interface Vehicle{ void drive(); } abstract class Animal{ abstract void show(); } class Lion extends Animal{ public void show(){ System.out.println("ライオンです"); } } class Horse extends Animal implements Vehicle{ public void show(){ System.out.println("馬です"); } public void drive(){ System.out.println("乗り物として使えます"); } } class Elephant extends Animal implements Vehicle{ public void show(){ System.out.println("象です"); } public void drive(){ System.out.println("乗り物として使えます"); } } class Bear extends Animal{ public void show(){ System.out.println("熊です"); } } class twentyeight{ public static void main(String args[]){ Animal an[]; an = new Animal[4]; an[0] = new Lion(); an[1] = new Horse(); an[2] = new Elephant(); an[3] = new Bear(); for(int i = 0;i < an.length;i++){ if(an[i] instanceof Vehicle){ an[i].drive();//ここにエラーが出る } else{ an[i].show(); } } } } インターフェイスを実装しているオブジェクトを判別し、そのdriveメソッドの呼び出しをしたいのですができません、どなたか教えてください。

    • ベストアンサー
    • Java
  • javaのfor文の使い方

    コマンドライン引数で入力した文字が3文字以下ならその文字列を20個文字連結して表示し、4文字以上ならたくさんと表示したいのですが表示できません。 import java.io.*; public class ABC { public static void main(String args[])throws IOException{ BufferedReader myReader = new BufferedReader( new InputStreamReader(System.in), 1 ); String str = myReader,readLine(); if(str.length() >= 4){ System.out.println("たくさん"); } StringBuffer buf = new StringBuffer(str.length()*20); for(int i = 0;i < 20; i++){ buf.append(str); System.out.println(buf); } } } としたら、たくさんと表示されません。どこを修正すればいいでしょうか?ちなみにfor文とStringBufferクラスを用いてというのが条件です。

  • 実行の順番を教えてください。

    現在JAVAの学習をおこなっていて、参考書で勉強しています。 しかし、以下の3つのソースコードはどの順番で実行されているか理解できておりません。 すみませんが、実行の順番を教えて頂けないでしょうか。 実行の順に数字を振ったりしていただけますと特に嬉しいです。 お願いします。 ※サンプル1 class testA{ testB b; testA(){ b=new testB(this); } } class testB{ testA a; testB(testA a){ this.a=a; } } class testAll{ public static void main(String args[]){ new testAll().banana(); //ソースコード } void banana(){ testA test = new testA(); } } ※サンプル2 public class A{ public static void apple(Integer i){ int ta =i.intValue(); ta+=3 ; i=new Integer(ta); } public static void main(String args[]){ Integer i = new Integer (0); apple(i); System.out.println(i.intValue()); } } ※サンプル3 public class Test{ public static void main (String args[]){ class orange{ public int i =9; } Object o=(Object)new orange(); orange orange = (orange)o; System.out.println("i="+orange.i); } }

    • ベストアンサー
    • Java