プロが教える店舗&オフィスのセキュリティ対策術

情報管理用のクラス[Hito]を作成する。
プロパティ
 String name
double taijyu
double sincho
double nenrei

・メインクラスでHitoをArrayListに5つ格納し、それぞれの値を表示させるという課題に挑んでいます。

2週間前からjavaを勉強し始めたばかりで、ようやくオブジェクト指向や、クラスというものどんなものか多少イメージがわいてきた程度です。ArrayListについては配列と違い、格納するデータ数の数をはじめから決めなくてもいいというぐらいしかわかっていません。(これでさえ違うかも?)

 どのように組みはじめばいいか、そしてArrayListはどのように使えばいいのか教えていただけますか? よろしくお願いします。

A 回答 (3件)

ほかの方の説明で理解を深めたら、以下のコーディングを打ち込んでコンパイルします。


C:\java\OKWeb>javac TestHito.java
成功したら、

C:\java\OKWeb>java TestHito
で実行してみてください。
C:\java\OKWeb>java TestHito
名前 あきら 体重 74.3 身長 184.3 年齢 35
名前 まみ 体重 44.5 身長 168.4 年齢 28

と表示されます。
先ず動く事で感動を得る事が大切だと思います。
import java.util.*;

class Hito {
private String name;
private double taijyu;
private double sincho;
private int nenrei;

public Hito(){
name="";
taijyu=0;
sincho=0;
nenrei=0;
}

public void setName(String name){
this.name = name;
}
public void setTaijyu(double taijyu){
this.taijyu = taijyu;
}
public void setSincho(double sincho){
this.sincho = sincho;
}
public void setNenrei(int nenrei){
this.nenrei = nenrei;
}
public String getName(){
return name;
}
public double getTaijyu(){
return taijyu;
}

public double getSincho(){
return sincho;
}
public int getNenrei(){
return nenrei;
}
}

public class TestHito{


public static void main(String []args){
Hito[] hito =new Hito[5];
for(int i = 0; i < 5; i++){
hito[i] = new Hito();
}
hito[0].setName("あきら");
hito[1].setName("まみ");
hito[0].setTaijyu(74.3);
hito[1].setTaijyu(44.5);
hito[0].setSincho(184.3);
hito[1].setSincho(168.4);
hito[0].setNenrei(35);
hito[1].setNenrei(28);
ArrayList result = new ArrayList();
result.add(hito[0]);
result.add(hito[1]);
for(int i = 0; i<result.size(); i++){
hito[i]=(Hito)result.get(i);
System.out.println("名前 "+hito[i].getName()+
" 体重 "+hito[i].getTaijyu()+
" 身長 "+hito[i].getSincho()+
" 年齢 "+hito[i].getNenrei());
}

}
}
    • good
    • 1
この回答へのお礼

具体的に明示していただき大変参考になりました。また機会がありましたらよろしくお願いします。

お礼日時:2005/03/24 15:53

#1さんの補足ですが、ArrayList::getメソッドは、Object型(全てのClassの親クラス)を返却してくるので、利用したい型にCastしてやる必要があります。



また、add時は、全てのオブジェクト型をパラメータとすることが出来ます。(ここではCastは不要)

ArrayList list = new ArrayList();

Integer aaa = new Integer();
String bbb = new String();
Boolean ccc = new Boolean();

list.add(aaa);
list.add(bbb);
list.add(ccc);

Integer aaa2 = (Integer)list.get(0);
String bbb2 = (String)list.get(1);
Boolean ccc2 = (Boolean)list.get(2);

といった具合で。
Castの型が違っているとClassCastExceptionが発生するので注意してください。
    • good
    • 0
この回答へのお礼

補足説明をいただきありがとうございました。
機会がありましたら、またよろしくお願いします。

お礼日時:2005/03/24 15:51

まず、標準のクラスでわからないことがあった場合には、必ずドキュメントを見てください。


それは習慣にしてください。

ドキュメントが読めなければ、上達はないと思った方がいいです。
これは、JAVAに限ったことではありません。開発をするには必須のことです。

誰かが必ず教えてくれる保証もないのですから、その方が自分自身のためです。
早く解決できますしね。

知りたいクラスのページを開くと、最初にそのクラスに関しての説明があります。
ここは必ず読みます。

次に、メソッドの簡単な説明を読みます。使えそうなものがあったら、それをクリックすれば
そのメソッドの詳しい説明にジャンプします。

難しくはありませんので、必ず読むようにしてください。


j2sdk1.4ドキュメント
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html

クラスの説明はここから
http://java.sun.com/j2se/1.4/ja/docs/ja/api/over …

全部ダウンロードするにはここから
http://java.sun.com/j2se/1.4.2/ja/download.html



今回はとりあえず、ArrayListの簡単な説明をしておきます。


ArrayListはObject型を格納できます。
配列と違い、上限は基本的にはありません。
追加をすることで、上限が勝手に増えていきます。

よく使うのは、次の機能(メソッド)です。

・追加(add)
・取り出し(get)
・置き換え(set)
・削除(remove)
・サイズの取得(size)


コード例

ArrayList list = new ArrayList();

//ArrayListに追加する
list.add( "apple" );
list.add( "orange" );
list.add( "lemon" );

//要素数(いくつ追加したのか)を取得
int n = list.size();

for(int i = 0 ; i < n ; i++){
 //要素を1つ取り出す
 Object item = list.get(i);
 //取り出した要素を表示
 System.out.println(item);
}


ここでは、文字列を追加しましたが、Object型であれば何でもOKです。
"apple"などの文字列は、String型であり、String型はObject型です。
    • good
    • 0
この回答へのお礼

貴重なご意見ありがとうございます。
教えていただいたサイトを参考にして以後がんばっていこうと思います。また機会がありましたら、よろしくお願いします。

お礼日時:2005/03/24 15:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!