「これならわかるJava」という本でjavaを勉強してます。
以下のソースコードをコンパイルした所、
「注:DogList.java の操作は、未チェックまたは安全ではありません。
注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください」
と、表示されます。
ネットで色々と調べてみましたが上手く行きません。
よろしくお願い致します。
import java.io.*;
import java.util.*;
class Dog
{
private String name;
private int energy;
public Dog(String n, int e){
name = n;
if(e < 0) e = 0;
energy = e;
}
public Dog(){
this("未定",50);
}
public void bark(){
if(energy == 0){
System.out.println("お腹が減ってほえられないよ。");
return;
}
System.out.println("わん、わん!");
energy--;
}
public void intro(){
System.out.println("僕の名前は" + name + "だ。わん。");
System.out.println("エネルギーは" + energy +"だ。わん。");
}
public void eat(int e){
if(e < 0){
System.out.println("マイナスは与えられません。");
return;
}
energy += e;
}
public String getName(){
return name;
}
public void setName(String n){
name = n;
}
public int getEnergy(){
return energy;
}
public void setEnergy(int e){
if(e < 0) e = 0;
energy = e;
}
public String toString(){
return "僕の名前は" + name + "だ。わん。\n"
+"エネルギーは" + energy + "だ。わん。";
}
}
class DogList
{
public static void main(String[] args) throws IOException
{
Vector dogs = new Vector();
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str, name;
int n, energy;
for(;;){
System.out.println("名簿:どうしますか?");
System.out.println("1 一覧 2 追加 3 終了");
str = br.readLine();
n = Integer.parseInt(str);
if(n == 1){
for(int i = 0; i < dogs.size(); i++){
((Dog)dogs.elementAt(i)).intro();
System.out.println("-----");
}
}
else if(n == 2){
System.out.println("名前を入力:");
name = br.readLine();
System.out.println("エネルギーを入力:");
str = br.readLine();
energy = Integer.parseInt(str);
dogs.addElement(new Dog(name, energy));
}
else{
break;
}
}
}
}
No.3
- 回答日時:
あぁごめん,
Vector<Dog> = new Vector<Dog>();
じゃだめだ.
Vector<Dog> dog = new Vector<Dog>();
に決まってるじゃん>おれ.
No.2
- 回答日時:
いまでは Vector はジェネリックになっているので
Vector dogs = new Vector();
のところを
Vector<Dog> = new Vector<Dog>();
とするのがよりよいでしょう.
そうすれば
((Dog)dogs.elementAt(i)).intro();
の行ももっとシンプルに
dogs.elementAt(i).intro();
で OK.
詳しくは「ジェネリック」あたりで調べてください.
この回答への補足
Tacosan様、回答ありがとうございます。
ご指摘のとおりコードを書き換えてみましたが上手く行きませんでした。
「DogList_2.java:59: ';' がありません。
Vector<Dog> = new Vector<Dog>();」
と、表示されてしまいます。
ゲネリックについても検索してみましたが、初心者の私には理解出来ません。
以下、新しく書き換えたコードです。
import java.io.*;
import java.util.*;
class Dog
{
private String name;
private int energy;
public Dog(String n, int e){
name = n;
if(e < 0) e = 0;
energy = e;
}
public Dog(){
this("未定",50);
}
public void bark(){
if(energy == 0){
System.out.println("お腹が減ってほえられないよ。");
return;
}
System.out.println("わん、わん!");
energy--;
}
public void intro(){
System.out.println("僕の名前は" + name + "だ。わん。");
System.out.println("エネルギーは" + energy +"だ。わん。");
}
public void eat(int e){
if(e < 0){
System.out.println("マイナスは与えられません。");
return;
}
energy += e;
}
public String getName(){
return name;
}
public void setName(String n){
name = n;
}
public int getEnergy(){
return energy;
}
public void setEnergy(int e){
if(e < 0) e = 0;
energy = e;
}
public String toString(){
return "僕の名前は" + name + "だ。わん。\n"
+"エネルギーは" + energy + "だ。わん。";
}
}
class DogList_2
{
public static void main(String[] args) throws IOException
{
Vector<Dog> = new Vector<Dog>();
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str, name;
int n, energy;
for(;;){
System.out.println("名簿:どうしますか?");
System.out.println("1 一覧 2 追加 3 終了");
str = br.readLine();
n = Integer.parseInt(str);
if(n == 1){
for(int i = 0; i < dogs.size(); i++){
dogs.elementAt(i).intro();
System.out.println("-----");
}
}
else if(n == 2){
System.out.println("名前を入力:");
name = br.readLine();
System.out.println("エネルギーを入力:");
str = br.readLine();
energy = Integer.parseInt(str);
dogs.addElement(new Dog(name, energy));
}
else{
break;
}
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaでlog4jを使ってログ出力を...
-
プログラミングの問題です。大...
-
Socketの接続のタイムアウトを...
-
変数を動的に利用するには?
-
【java】同ディレクトリ別ファ...
-
GetterとSetterをやったのに。
-
JSP/Servletのパラメータの受け...
-
中カッコ{}だけの記述について
-
System.exit()の値を取得したい
-
インタフェイス実装と抽象クラ...
-
Java プログラム public class ...
-
1~100までの数字を表示し、か...
-
カタカナの小文字を大文字に変...
-
Java 入力した整数値の合計を、...
-
System.err. printlnとSystem.o...
-
ダブルクォーテーションを含む...
-
Path型をString型へ変換する(Java)
-
C言語のポインターに関する警告
-
javaで質問です。 文字列2023/2...
-
IF関数でEmpty値を設定する方法。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
プログラミングの問題です。大...
-
System.exit()の値を取得したい
-
randomで
-
Javaでlog4jを使ってログ出力を...
-
ArrayList でスタックを
-
NoSuchMethodErrorが解決できま...
-
元旦からの経過日数を求めたい
-
javaのプログラミングで作るRPG...
-
インタフェイス実装と抽象クラ...
-
JSP/Servletのパラメータの受け...
-
日本語が文字コードによっては...
-
コンストラクタの引数の中のnew?
-
初心者なので教えてほしいです。
-
GetterとSetterをやったのに。
-
JAVAで「Yahoo Japan!」に接続
-
Listデータを重復せずにSetに格...
-
日付の比較をしたいのですが・...
-
Socketの接続のタイムアウトを...
おすすめ情報