- PR -

コンストラクタに配列を。

1
投稿者投稿内容
omopurike
常連さん
会議室デビュー日: 2008/04/03
投稿数: 38
投稿日時: 2008-04-08 03:50
コンストラクタで配列に数値を入れたいのですが。
コンストラクタはどうかいたらいいのかわからないのです。

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Mono{

private String name ;
public Mono(){
name = null;
}
public void show(){

System.out.print("作ったものの名前は"+name+",");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}






public class Main{
public static void main (String args[]){
try{
while(true){

Mono mono = new Mono();
System.out.print("名前は?");
BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
String str = in.readLine();
mono.setName(str);
} catch (Exception e) {


}
}

[ メッセージ編集済み 編集者: omopurike 編集日時 2008-04-08 04:22 ]
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2008-04-08 05:17
あのー、記載してあるソースに出てくる配列は Main#main() メソッドの引数だけですが、わからないのは配列の宣言方法でしょうか、それとも初期化方法、あるいは両方でしょうか。

仮に宣言して初期化したい配列 a を、要素は int、要素数は 3 だとすると、以下のように書けばよろしいと思います。

・宣言
int[] a;

・初期化(1)(要素は後から代入する場合)
a = new int[3];

・初期化(2)(最初から固定の要素を入れておく場合)
a = new int[]{0,1,2};

以上のことは検索エンジンで「Java 配列」で検索するだけで見つかりますが、勉強中とお見受けしましたので、Java の入門用書籍を参照された方がよろしいと思います。
omopurike
常連さん
会議室デビュー日: 2008/04/03
投稿数: 38
投稿日時: 2008-04-08 05:51
どんどん入力して配列に保存されるプログラムをかくつもりだったのです。
setとgetのところなどをどうかいたらいいのかわからなくて。。。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2008-04-08 06:10
要素数が確定していない場合は、配列ではなくて List を使った方が良いです。
(配列でも書けなくはありませんが、面倒になる上に利点がありません。)

クラス宣言の前に import 宣言:
コード:
import java.util.List;
import java.util.ArrayList;


を追加して、入力を受け付ける前に List オブジェクトを宣言&生成:
コード:
List intList = new ArrayList();


しておいて、後は読み込んだ値 int val; に対して追加:
コード:
intList.add(new Integer(val));


とすると良いと思います。

これ以上のことは、Java の書籍をご参照ください。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2008-04-08 06:25
少し補足します。

前の投稿での書き方は JDK 1.4 での、やや古いコーディングです。

Java のバージョンが書かれていませんでしたが、JDK 5 以降では
コード:
List<int> intList = new ArrayList<int>();
...
intList.add(val);


と、もう少し簡単に書けるようになっています。

  • int しか入れられない List が定義できる(古い書き方では Object なら何でも入るので、取り出す時に型変換が必要; 新しい方法では変換が不要)
  • int 等のプリミティブ型からわざわざ対応するリファレンス型(Integer)のオブジェクトを作らなくても、Java コンパイラがその辺の面倒を見てくれる

という機能が JDK 5 からサポートされるようになったためです。
書籍を選ぶ際、「JDK 5 以降に対応しているか」というのが重要なポイントですので書き添えておきます。
(JDK 5 以降でも古い書き方もできますが念のため)

現在携わっているシステムが「JDK 1.4.2 で」と指定されているため、古い書き方になってしまいましたorz
omopurike
常連さん
会議室デビュー日: 2008/04/03
投稿数: 38
投稿日時: 2008-04-08 07:13
なるほど....たしかにそうですね^^;;
ちょっとがんばってみます。
1

スキルアップ/キャリアアップ(JOB@IT)