javaのカプセル化について勉強をしています。
以下の仕様で2.部分のコードを自身で記述するような問いなのですが、なぜこの仕様で2.のようなコードになるのかが理解ができないので、解説をお願いできないでしょうか。
また、このまま1.2.を繋げて記述すると、2.の2行目「public class Cat {」のところで「public型はそれ独自のファイル内に定義されなければなりません」と表示がでてしまいます。
初歩的な質問で申し訳ありませんが、こちらについても解説していただけないでしょうか。
仕様
<パッケージ名>
Shop
<クラス名>
Cat
<フィールド>
String syurui 猫の種類
String seibetsu 猫の性別
int toshi 猫の年
<コンストラクタ>
Cat() ・・・フィールドsyuruiは「スコティッシュフォールド」、seibetsuは「メス」、toshiは0で初期化
Cat(String tSyurui, String tSeibetsu, int tToshi) ・・・各引数でフィールドを初期化
<メソッド>
String getSyurui() 猫の種類を返す
String getSeibetsu() 猫の性別を返す
int getToshi() 猫の年を返す
1.2.の実行結果
スコティッシュフォールドのメス、0歳を買いました。
アメリカンショートヘアーのオス、0歳を買いました。
が出力される。
----------以下からコード----------
1.
package Shop;
public class CatShop {
public static void main(String[] args) {
Cat myCat = new Cat();
CatShop.buyCat(myCat);
myCat = new Cat("アメリカンショートヘアー","オス", 0); CatShop.buyCat(myCat); } static void buyCat(Cat tCat) { System.out.println(tCat.getSyurui() + "の" + tCat.getSeibetsu() + "、" + tCat.getToshi() + "歳を買いました。"); }
}
2.
package Shop;
public class Cat {
String syurui; String seibetsu; int toshi; Cat() { syurui = "スコッティッシュフォールド"; seibetsu = "メス"; toshi = 0; } Cat(String tSyurui, String tSeibetsu, int tToshi) { syurui = tSyurui; seibetsu = tSeibetsu; toshi = tToshi; } String getSyurui() { return syurui; } String getSeibetsu() { return seibetsu; } int getToshi() { return toshi; }
}
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/08 00:35
2016/04/08 01:05