- ベストアンサー
EmployeeのVectorを使った書き方がよく分からない
- Employeeのクラス型でキャストした場合に、EmployeeのVectorを使った書き方が分からない
- Employeeクラスの中で、Vector型のEmployeeや関数print()の書き方が分からない
- 質問者は助言を求めている
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- Eclipseで、クラスを新規作成する時に付いてくるコメント
Eclipseで、クラスを新規作成する時に付いてくるコメント クラスを新規作成すると、自動的に下記のようなコメントが 書かれてきますが、いつもいちいち行削除しています。 一般的には、このままにしておくものなのでしょうか。 それとも、消した方が良いのでしょうか。 宜しく御願い申し上げます。 public class Sample { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ } }
- ベストアンサー
- Java
- eclipseのコンソール
eclipseでコンソールが表示しません。 単純な文字出力です。 ご教授よろしくお願いいたします。 public class AAA { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ System.out.println("コンソールに表示"); } }
- 締切済み
- Java
- 初心者ですが・・・。
初心者なのですが困っています。 以下のコードを実行したとき、実行例が表示されるように必要なクラスを作成せよ。 また、それらをカプセル化し、それを使用するよう以下のコードを修正せよ。カプセル化に関わる部分以外修正しないこと。 public class sanple{ public static void main(String[] args){ Employee[] emp=new Employee[4]; emp[0]=new Shain(); emp[0]=new Kacho(); emp[0]=new Bucho(); emp[0]=new Syacho(); for(int i=0;i<imp[i].length;i++){ System.out.println(emp[i].grade+":"+emp[i].salary); } } } かなり困ってます。どうか回答お願いします。
- 締切済み
- Java
- VectorからデータをとりJSPへ・・
基本的な質問ですいません。 Vector vector = new Vector(); Vector userlog = new Vector(); vector.add(answer); answerの中身は省略します。 Enumeration e = vector.elements(); while(e.hasMoreElements()){ Object obj = e.nextElement(); AA A = (AA)obj; String loglog = A.log; userlog.addElement(loglog); } request.setAttribute("logname", userlog); でAに含まれるlogを取り出し、JSPに表示したいのですが、方法が分かりません。 logic:iterateを用いるのでしょうか?参考になるサイトありましたらお願いします。 ちなみにloglogについてはSystem.out.で確認できています。
- ベストアンサー
- Java
- GOF本のデザインパターンのCompositeパターンのJava版を実
GOF本のデザインパターンのCompositeパターンのJava版を実際に動かしてみようと思って、ちょっと手を加えて下記のようなコードにしているのですが、Mainのcabinet.add(chassis);の所で、 CompositeEquipmentクラスの_equipment.addElement(equipment);を呼び出した所で、 何故かNullPointerException例外が発生してしまいます。Equipmentクラス変数としてchassisのオブジェクトがequipmentに渡っているはずなのですが、理由がよく分かりません。どなたか、お分かりになる方、御教示いただけたらと思います。 //ここから import java.util.Vector; import java.util.Enumeration; //Mainクラス public class Main { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Cabinet cabinet = new Cabinet("PC Cabinet"); Chassis chassis = new Chassis("PC Chassis"); cabinet.add(chassis); //以下省略 } } // Equipmentクラス abstract class Equipment { public Equipment(String name) { _name = name; } String name() { return _name; } //一部省略 public void add(Equipment equipment) { } public void remove(Equipment equipment) { } public Enumeration createEnumeration() { return new NullEnumeration(); } private String _name; } //CompositeEquipmentクラス class CompositeEquipment extends Equipment { public CompositeEquipment(String name) { super(name); // ... } //一部省略 public void add(Equipment equipment) { _equipment.addElement(equipment); //System.out.println(equipment); } public void remove(Equipment equipment) { _equipment.removeElement(equipment); } public Enumeration createEnumeration() { // concrete iterator を作成する return new NullEnumeration(); } private Vector _equipment; } //Cabinetクラス ublic class Cabinet extends CompositeEquipment { public Cabinet(String name) { super(name); // ... } // ... } //Chassisクラス public class Chassis extends CompositeEquipment { public Chassis(String name) { super(name); // ... } // ... } //ここまで
- ベストアンサー
- Java
- DAOクラスの使い方
ある書籍を参考に勉強しております。以下のDAOクラスのデータ追加に関して使い方がわかりません。 サーブレット、もしくはJSPにどのように書けば、DBにデータを追加できるようになるのでしょうか? 宜しく御願い致します。 package chap11_database.sec03; import java.sql.*; import java.util.ArrayList; public class EmployeeDAO { //データベースとの接続に必要な情報を保持するフィールド変数 private final static String DRIVER_URL ="jdbc:mysql://192.168.2.200:3306/satoh" + "?useUnicode=true&characterEncoding=utf8"; private final static String DRIVER_NAME = "com.mysql.jdbc.Driver"; private final static String USER_NAME = "root"; private final static String PASSWORD = "1qaz!QAZ"; //接続メソッド protected Connection createConnection(){ try{ Class.forName(DRIVER_NAME); Connection con = DriverManager.getConnection(DRIVER_URL, USER_NAME, PASSWORD); return con; } catch(Exception e){ e.printStackTrace(); } return null; //例外が発生した場合はnullを返す。 } //切断メソッド protected void closeConnection(Connection con){ try{ con.close(); } catch(Exception ex){ ex.printStackTrace(); } } public ArrayList<Employee> findAll(){ //社員一覧を保持するリスト ArrayList<Employee> list = new ArrayList<Employee>(); Connection con = null; try{ //データベースに接続 con = createConnection(); //データベースにSQL文を送信 String sql = "select * from employee"; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); String address = rs.getString("address"); int tel = rs.getInt("tel"); Date birthday = rs.getDate("birthday"); Employee employee = new Employee(id, name, address, tel, birthday); //TO(Employeeオブジェクト)を、社員一覧を保持するリス手に追加 list.add(employee); } //社員一覧を返す。 return list; }catch(Exception e){ e.printStackTrace(); return null; }finally{ //データベースからの切断 closeConnection(con); } } //社員登録メソッド public void create(Employee emp){ Connection con = null; try{ //データベースに接続 con = createConnection(); //データベースにSQL文を送信 String sql = "insert into employee values(?, ?, ?, ? ,?)"; PreparedStatement stmt = con.prepareStatement(sql); stmt.setInt(1, emp.getId()); stmt.setString(2, emp.getName()); stmt.setString(3, emp.getAddress()); stmt.setInt(4, emp.getTel()); stmt.setDate(5, emp.getBirthday()); stmt.executeUpdate(); }catch(Exception e){ e.printStackTrace(); }finally{ //データベースからの切断 closeConnection(con); } } }
- ベストアンサー
- Java
- 抽象クラスからオーバーライドについて
EclipseでJavaを勉強始めました。 抽象クラスからオーバーライドするところで質問致します。 抽象クラスとして、「面積を計算する」というメソッドをもつDiagramクラスを定義しました。それを継承して、「四角形の面積を計算する」というメソッドをもつSquareクラスと、「三角形の面積を計算する」というメソッドをもつTriangleクラスを定義しました。 Squareクラス、Triangleクラスからインスタンスを生成して、四角形、三角形の面積をコンソールに表示させるという簡単なプログラムです。 このとき、main関数と3つのクラスの関係についてお尋ねします。 (1)iagram.java、Square.java、Triangle.javaそれぞれにクラス定義とmain関数を持たせるパターン public abstract class Diagram { // 面積計算定義(抽象メソッド) public static void main(String[] args) { } } public class Square extends Diagram{ //四角形の面積の計算定義 public static void main(String[] args) { //四角形の面積の計算と表示 } public class Triangle extends Diagram{ //三角形の面積の計算定義 public static void main(String[] args) { //三角形の面積の計算と表示 } (2)sample.javaというファイルにまとめ、その中にこの3つのクラス定義とmain関数を一つ持たせるパターン public class sample { public static void main(String[] args) { //四角形の面積の計算と表示 //三角形の面積の計算と表示 } } abstract class Diagram { // 面積計算(抽象メソッド)定義 } class Square extends Diagram{ //四角形の面積の計算定義 } class Trapezoid extends Diagram{ //三角形の面積の計算定義 } この二通りを考えて、どちらも実行できたのですが、どちらの方がJavaらしいプログラムと思われますでしょうか?
- ベストアンサー
- Java
- クラス名はどうするのですか?
package ex7; public class Sample { public final static int VALUE = 100; } package ex7; import static ex7.Sample.VALUE; public class Main { private final static int VALUE = 0; public static void main(String[] args) { System.out.println(VALUE); } } 上記のプログラムのクラス名は何をつければいいですか・・・? 同じくプログラム名は何と付ければいいですか・・・? ご多忙中恐れいります・・・。 ご回答の程宜しくお願い申し上げます。 回答者 これが、素人さんには分かりにくいんですね。 mkdir ex7 で、ex7 というディレクトリを作製して、 その中に、 Sample.java を public class Sample { public final static int VALUE = 100; } で、 Main.java を package ex7; import static ex7.Sample.VALUE; public class Main { private final static int VALUE = 0; public static void main(String[] args) { System.out.println(VALUE); } } で作製して、 ex7 の中から出て、 javac ex7/Sample.java javac ex7/Main.java でコンパイルします。 質問者 度々すいません・・・。 ファイル名は何にすればいいですか・・・? ご回答がなかなか来ません。
- ベストアンサー
- Java
- java コマンドライン引数を利用したカレンダー
args[0]に例えば200805と入れたら2008年5月のカレンダーが表示される、そんなプログラムを書きたいと思っています。 理想は↓の形です。(_は空欄の意です;) 2008年5月 日 月 火 水 木 金 土 ___________1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 importは使わないよう指示が出ていますので、フルネームでカレンダークラスを記載しています。 public class CalShow { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ java.util.Calendar cal = java.util.Calendar.getInstance(); //コマンドライン引数の前4桁をyear、 int year = Integer.parseInt(args[0].substring(0, 4)); //後ろ2桁をmonthとしてそれぞれintで定義 int month = Integer.parseInt(args[0].substring(4)); System.out.println( year + "年" + month + "月"); System.out.println(" 日 月 火 水 木 金 土"); cal.set(year, month - 1, 1); int startDay = cal.get(java.util.Calendar.DAY_OF_WEEK); cal.add(java.util.Calendar.MONTH, 1); cal.add(java.util.Calendar.DATE, -1); int lastDay = cal.get(java.util.Calendar.DATE); /*なんとなくここまで書けたのですが、ここからどのように木曜日と1日を繋げていけばよいのか分からなくて困っています。 どういったメソッドを使えばいいのかなど、どなたか教えていただけませんでしょうか? よろしくお願いいたします。*/ } }
- ベストアンサー
- Java
- ID3タグの情報を取得したいのですが・・・・
指定したディレクトリ以下にある複数のMP3ファイルからID3タグの情報(アーティスト・作成年・曲名)など表示するプログラムなのですが、実行すると”引数にディレクトリを指定して”と言う表示が返されてしまいます。このプログラムのどの個所にディレクトリを指定する記述をすれば指定したディレクトリ以下のMP3ファイルからID3タグの情報を表示させることができるか教えてください。(>_<) プログラムは大きく分けて [ID3TagのVer1.0/1.1取得するクラス] [ID3TagのVer2.3 取得するクラス] [ID3TagのVer1.0/1.1とVer2.3 取得クラスのスーパークラス] [指定ディレクトリ以下のファイル一覧を取得するクラス] [ID3TagのVer1.0/1.1とVer2.3 取得クラスを取得・保持するクラス] [ID3Tag取得プログラムするMainクラス] から構成されています。 <以下に示すのがMainクラスのプログラムです。> import java.io.File; import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.ArrayList; public class MP3FileListMain { /** * @param args * @throws UnsupportedEncodingException */ public static void main(String[] args) throws UnsupportedEncodingException { if(args.length < 1) { System.out.print("引数にディレクトリを指定して\n"); return; } File objFile = new File(args[0]); if(!objFile.isDirectory()) { System.out.print("引数に指定したのは、ディレクトリではない\n"); System.out.print("引数にディレクトリを指定して\n"); return; } FileList objFileList = new FileList(objFile); long lRnt = objFileList.getFileInfo(); // System.out.print(lRnt); try { MP3Tag.init(); } catch (ClassNotFoundException e) { e.printStackTrace(); } MP3Tag.outputFiles(objFileList); } private static class MP3Tag { private static long lSeriesNo_ = 0; private static long lMaxSeriesNo_ = 0; private static long lFileNo_ = 0; private static long lMaxFileNo_ = 0; private static long lTypeNo_ = 0; private static SimpleDateFormat sdf_; private static int handle1_; private static int handle2s_; private static int handle21s_; private static int handle22s_; private static int handle2i_; private static int handle3s_; private static int handle3i_; private static int handle3u_; private static void init() throws ClassNotFoundException { sdf_ = new SimpleDateFormat("yyyyMMddHHmmss"); } private static void outputFiles(FileList objFileList) { int handle = 0; long lSeriesNo = lSeriesNo_; MP3File objMP3File; ArrayList objMP3List; // System.out.print(objFileList.getDir() + "\n"); Iterator iteMP3File = objFileList.getMP3FileIte(); while(iteMP3File.hasNext()) { objMP3File = (MP3File)iteMP3File.next(); try { objMP3List = objMP3File.getMP3Info(); } catch (Exception e) { e.printStackTrace(); return; } try { for(int i = 0; objMP3List.size() > i; i++) { System.out.print(lFileNo_ + ","); System.out.print(lTypeNo_ + ","); System.out.print(lSeriesNo + ","); MP3Info objMP3Info = (MP3Info)objMP3List.get(i); System.out.print(objMP3Info.getLastModified() + ","); System.out.print(objMP3Info.getFileSize() + ","); System.out.print(objMP3Info.getTagVersion() + ","); System.out.print(objMP3Info.getTrackNo() + ","); System.out.print(objMP3Info.getTitle() + ","); System.out.print(objMP3Info.getGenre() + ","); System.out.print(objMP3Info.getArtist() + ","); System.out.print(objMP3Info.getComment() + ","); System.out.print(objMP3Info.getYear() + ","); System.out.print(sdf_.format(new Date()) + ","); System.out.print(objMP3Info.getPath() + ","); System.out.print(objMP3Info.getFileName() + "\n"); } } catch (Exception e) { e.printStackTrace(); return; } lFileNo_++; } Iterator iteDir = objFileList.getDirIte(); while(iteDir.hasNext()) { outputFiles((FileList)iteDir.next()); } } } }
- ベストアンサー
- Java
お礼
クラスTraversableVectorのコンストラクタに、 public TraversableVector() { String obj1 = new String("佐藤"); String obj2 = new String("鈴木"); String obj3 = new String("三木"); this.add(obj1); this.add(obj2); this.add(obj3); } を記述することで、やりたいことができるようになりました。 ありがとうございました。 ただ、御指摘いただいた、クラスTraversableVectorの public Enumeration createEnumeration() { return new VectorEnumeration(this); } のthisポインタは「クラス VectorEnumeration のインスタンス」ではなく、 「クラス TraversableVectorのインスタンス」です。 ここは、クラスVectorEnumerationがクラスTraversableVectorを参照する形になります。