iT邦幫忙

2026 iThome 鐵人賽

DAY 18
0

題目練習:

  1. 試設計一個類別,內含 a、b 兩種資料成員,型別為 int,請完成下列各函數的程式設計:
    class CCalculator{int a,b;}
    (a) 定義 set_volue() 函數,用來設定資料成員 a、b 的值
    void set_volue(int x, y){a = x; b = y;}
    (b) 定義 show() 函數,可用來列印所有成員資料的值
    void show(){System.out.println("a = " + a); System.out.println("b = " + b);}
    (c) 定義 add() 函數,可用來傳回 a、b 的和
    int add(){return a + b;}
    (d) 定義 sub() 函數,可用來傳回 a、b 的差
    int sub(){return a - b;}
    (e) 定義 mul() 函數,可用來傳回 a、b 的乘積
    int mul(){return a * b;}
    (f) 定義 avg() 函數,可用來傳回 a、b 的平均值,傳回值型別為 double
    double avg(){return (a + b)/2.0;}
  2. 設有一 CData 類別,可以用來記錄好友姓名、電子郵件及生日,定義如下:
    class CData{
    private String name;
    private String email;
    private int mm;
    private int dd;
    private int yy;
    }
    (a) 試在 CData 類別裡加入 setName() 函數,可用來設定好友姓名(字串)
    void setName(String name){this.name = name;}
    (b) 試在 CData 類別裡加入 setEmail() 函數,可用來設定電子郵件信箱(字串)
    void setEmail(String email){this email = email;}
    (c) 試在 CData 類別裡加入 setBirthday(int m, int y, int d) 函數,可用來設定生日的年份、月分與日期
    int setBirthday(int m, int y, int d){mm = m; yy = y; dd = d;return = o;}
    因為下議題要檢查是否合理
    (d) 試在 CData 類別裡加入 private boolean checkDate(int m, int d, int y) 函數,用來判定生日的年、月、日是否在合法的範圍,其中 y 的值要在西元 1900~2099 之間,且不考慮閏年問題
    private boolean checkDate(int m, int d, int y){
    if (y < 1900 || y > 2099)
    return false;
    if (m < 1 || m > 12)
    return false;
    if (d < 1 || d > 31)
    return false;
    return true;
    }
    (e) 試在 CData 類別裡加入 setAll() 函數,使得在 main() 裡可以設定所有資料成員
    void setAll(String name, String email, int m, int d, int y) {
    this.name = name;
    this.email = email;
    mm = m;
    dd = d;
    yy = y;
    }
    (f) 試在 CData 類別裡加入 showData() 函數,用來印出好友的所有資料。生日的輸出格式為 mm/dd//yy
    void showData() {
    System.out.println("姓名:" + name);
    System.out.println("Email:" + email);
    System.out.println("生日:" + mm + "/" + dd + "/" + yy);
    }
    (g) 試在 setBirthday() 函數中加入 checkDate() 函數,使得若是日期格式設定錯誤時,showData() 函數不會將日期印出,而是印出「日期格式錯誤!」,但姓名、email 如正確可正常
    void setBirthday(int m, int y, int d) {
    if (checkDate(m, d, y)) {
    mm = m;
    yy = y;
    dd = d;
    dateCorrect = true;
    }
    else {
    dateCorrect = false;
    }
    }
    且 showData() 要修改:
    void showData() {
    System.out.println("姓名:" + name);
    System.out.println("Email:" + email);
    if (dateCorrect)
    System.out.println("生日:" + mm + "/" + dd + "/" + yy);
    else
    System.out.println("日期格式錯誤!");
    }
    (h) 請設立 CData 類別的物件 tom,利用 (a)~(c) 定義的函數為 tom 的資料成員設值,在利用 showData() 印出
    public class Main {
    public static void main(String[] args) {
    CData tom = new CData();
    tom.setName("Tom");
    tom.setEmail("tom@gmail.com");
    tom.setBirthday(10, 2005, 22);
    tom.showData();
    }
    }
    (i) 試在 CData 類別的物件 mary,利用 (e) 定義的函數為 mary 的成員資料設值,再利用 showData() 印出
    public class Main {
    public static void main(String[] args) {
    CData mary = new CData();
    mary.setAll("Mary", "mary@gmail.com", 5, 20, 2004);
    mary.showData();
    }
    }

上一篇
Day 17:類別(5)
下一篇
Day 19:類別(7)
系列文
從零開始學程式語言:Java 新手修煉記 共 22 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言