情報管理用のクラス[Hito]を作成する。
プロパティ
String name
double taijyu
double sincho
double nenrei
・メインクラスでHitoをArrayListに5つ格納し、それぞれの値を表示させるという課題に挑んでいます。
2週間前からjavaを勉強し始めたばかりで、ようやくオブジェクト指向や、クラスというものどんなものか多少イメージがわいてきた程度です。ArrayListについては配列と違い、格納するデータ数の数をはじめから決めなくてもいいというぐらいしかわかっていません。(これでさえ違うかも?)
どのように組みはじめばいいか、そしてArrayListはどのように使えばいいのか教えていただけますか? よろしくお願いします。
No.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());
}
}
}
No.2
- 回答日時:
#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が発生するので注意してください。
No.1
- 回答日時:
まず、標準のクラスでわからないことがあった場合には、必ずドキュメントを見てください。
それは習慣にしてください。
ドキュメントが読めなければ、上達はないと思った方がいいです。
これは、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型です。
貴重なご意見ありがとうございます。
教えていただいたサイトを参考にして以後がんばっていこうと思います。また機会がありましたら、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- PHP クラス 1 2022/08/08 15:12
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) QRコード作成マクロについて 3 2022/11/26 16:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クラス間でのデータ参照
-
範囲外の数値を代入したらエラ...
-
c++,ある関数のクラスから別の...
-
関数内の変数に<summary>コメン...
-
C++でfriendクラスにしているの...
-
C#にて別クラスの関数を使いたい
-
visual studioのデザイナ画面で...
-
import と extends について
-
(クラス名.this.メソッド)って...
-
Java リフレクションについて
-
ClassLoader.getSystemResource...
-
C#で処理中の状況をStatusLabel...
-
親クラスから子クラスへアクセス。
-
スーパークラスのコンストラク...
-
構造 他のクラスの構造体を別...
-
java-別クラスの変数の使い方を...
-
iアプリでの関数の計算について
-
C#のクラスライブラリでメッセ...
-
アブストラクトとインターフェ...
-
javaの配列について質問です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
C#にて別クラスの関数を使いたい
-
c++,ある関数のクラスから別の...
-
親クラスから子クラスへアクセス。
-
C#でほかのファイルにある自作...
-
クラス間でのデータ参照
-
構造 他のクラスの構造体を別...
-
範囲外の数値を代入したらエラ...
-
ひとつのファイルにクラスは1つ?
-
C++でfriendクラスにしているの...
-
Java リフレクションについて
-
継承したクラス側のクラス名の取得
-
C# インターフェイスの実装
-
java-別クラスの変数の使い方を...
-
C#のクラスライブラリでメッセ...
-
visual studioのデザイナ画面で...
-
C# log4netの使い方
-
a href="..." とServlet
-
アップキャスト、ダウンキャス...
-
オブジェクトのデータをもとにX...
おすすめ情報