ここから本文です

誰かこのjavaの問題解ける方いますか?

アバター

ID非公開さん

2020/6/302:00:03

誰かこのjavaの問題解ける方いますか?

①クラスPhoneを定義しましょう。
②フィールドは以下とします。カプセル化忘れずに。
・long型のproductionDate // 製造年月日
・String型のcolor // 色
③getter/setterを定義しましょう。
この時セッターに下記を定義してください。
・productionDateのセッターには、
8桁以外の場合、
「製造年月日は8桁で入力してください」を表示し
セットできないようにしましょう。
※20200101みたいに0埋めでね!
・colorのセッターには、
"black" or "white" or "silver"以外の場合、
「カラーはblack/white/silverから選択してください」を表示し、
セットできないようにしましょう。
④MainからPhoneクラスのインスタンスを生成し、
製造年月日とカラーをセットしましょう。
そして「Color:〇〇, ProductionDate:●●」と画面に表示しましょう。
例)「Color:white, ProductionDate:20200101」

閲覧数:
17
回答数:
1
お礼:
100枚

違反報告

回答

1〜1件/1件中

han********さん

2020/6/317:57:38

問題に沿って、素直に作成したコード例です。
これでいかがでしょうか?

※問題に特に指定がなかったので、コンストラクタは使用していません。
※mainメソッド内の重複処理をメソッドに分ける作業等も特にせず、
問題内で作成したgetter/setterをそのまま使用して表示などしています。


①のコード例:
public class Phone{
}


②のコード例:
※①の答えに追記します。

public class Phone{
private long productionDate; // 製造年月日
private String color; // 色
}


③のコード例:
※②の答えに追記します。

//【Phone.java】(①、②を含む、Phoneクラスの完成形)
public class Phone{
private long productionDate; // 製造年月日
private String color; // 色

public long getProductionDate(){
return this.productionDate;
}

public void setProductionDate(long productionDate){
int length = String.valueOf(productionDate).length();
if(length == 8) {
this.productionDate = productionDate;
} else {
System.out.println("製造年月日は8桁で入力してください");
}
}

public String getColor(){
return this.color;
}

public void setColor(String color){
if(color.equals("black") || color.equals("white") || color.equals("silver")){
this.color = color;
} else {
System.out.println("カラーはblack/white/silverから選択してください");
}
}

}



④のコード例:
※③の【Phone.java】とセットでコンパイルし、実行してください

//【Main.java】
public class Main {
public static void main(String[] args) {

Phone p = new Phone();

//1パターン目
long productionDate = 20200101; //8桁
String color = "white"; // 指定可能な色
System.out.println("■製造年月日に" + productionDate + "を指定、色に" + color + "を指定した場合:");
p.setProductionDate(productionDate);
p.setColor(color);
System.out.println("Color:" + p.getColor() + ", ProductionDate:" + p.getProductionDate());


//2パターン目
productionDate = 202011; //8桁以外
color = "pink"; // 指定可能な色以外
System.out.println("■製造年月日に" + productionDate + "を指定、色に" + color + "を指定した場合:");
p.setProductionDate(productionDate);
p.setColor(color);
System.out.println("Color:" + p.getColor() + ", ProductionDate:" + p.getProductionDate());

}

}



<実行結果>
※実行結果の最後の行は、設定できなかったので現状変更ありませんよ、
※の意味で表示しています。(if文などで

---これより下が実行結果---
■製造年月日に20200101を指定、色にwhiteを指定した場合:
Color:white, ProductionDate:20200101
■製造年月日に202011を指定、色にpinkを指定した場合:
製造年月日は8桁で入力してください
カラーはblack/white/silverから選択してください
Color:white, ProductionDate:20200101

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる