Xây dựng lớp và đối tượng Time trong Java



Đề bài: Viết chương trình sử dụng ngôn ngữ lập trình Java tạo lớp Time biểu diễn thời gian gồm 3 thuộc tính giây, phút, giờ (second, minute, hour) và các phương thức: Khởi tạo, lấy và thiết lập giá trị cho các thuộc tính, tăng giờ, phút, giây lên 1 đơn vị. Tại hàm main, tạo đối tượng lớp Time có giá trị giờ, phút, giây là 7, 0, 0 sau đó dùng vòng lặp while vô tận để biểu diễn đồng hồ.
Yêu cầu kiến thức:

  • Xác định đối tượng chương trình từ đối tượng thực tế
  • Phân chia các thành phần khi xây dựng lớp
  • Xác định kiểu dữ liệu đúng cho các biến và hàm

Cấu trúc thư mục:
src
|——BuildClass
   |——Time.java
|——UseClass
   |——MainUse.java
Code tham khảo dưới đây được viết trên JDK ver 8.x:
File Time.java:


package BuildClass;

public class Time {
    // Thuoc tinh
    private int second; // tu 0 den 59
    private int minute; // tu 0 den 59
    private int hour; // tu 0 den 23

    // Phuong thuc
    // Ham khoi tao khong doi so
    public Time() {
        this.second = 0;
        this.minute = 0;
        this.hour = 0;
    }

    // Ham khoi tao co doi so
    public Time(int second, int minute, int hour) {
        this.second = second;
        this.minute = minute;
        this.hour = hour;
    }

    // Ham getter va setter cho cac thuoc tinh
    public int getSecond() {
        return second;
    }

    public void setSecond(int second) {
        // Neu secord > 60 thi reset second = 0
        if (second >= 0 && second < 60) {
            this.second = second;
        } else {
            this.second = 0;
        }
    }

    public int getMinute() {
        return minute;
    }

    public void setMinute(int minute) {
        // Neu minute > 60 thi reset minute = 0
        if (minute >= 0 && minute < 60) {
            this.minute = minute;
        } else {
            this.minute = 0;
        }
    }

    public int getHour() {
        return hour;
    }

    public void setHour(int hour) {
        // Neu hour > 23 thi reset hour =0
        if (hour >= 0 && hour < 24) {
            this.hour = hour;
        } else {
            this.hour = 0;
        }
    }

    // Hien thi thoi gian
    @Override
    public String toString() {
        String str = "";
        if (hour == 12 || hour == 0) {
            str += 12;
        } else {
            str += (hour % 12);
        }
        str += ":";
        if (minute < 10) {
            str += "0";
        } else {
            str += "";
        }
        str += minute + ":";
        if (second < 10) {
            str += "0";
        } else {
            str += "";
        }
        str += second;
        if (hour < 12) {
            str += " AM";
        } else {
            str += " PM";
        }
        return str;
    }

    // Tang giay len 1 don vi
    public void tangGiay() {
        this.setSecond(this.second + 1);
        // Neu giay tang len 60 thi giay reset ve 0, va tang phut len 1
        if (this.second == 0) {
            tangPhut();
        }
    }

    // Tang phut len 1 don vi
    public void tangPhut() {
        this.setMinute(this.minute + 1);
        // Neu phut tang len 60 thi phut reset ve 0, va tang gio len 1
        if (this.minute == 0) {
            tangGio();
        }
    }

    // Tang gio len 1 don vi, neu gio len 24 thi gio reset ve 0
    public void tangGio() {
        this.setHour(this.hour + 1);
    }
}

File MainUse.java:


package UseClass;

import BuildClass.Time;

public class MainUse {
    public static void main(String[] args) {
        // Khai bao doi tuong
        Time O = new Time(0, 0, 7);
        System.out.println("Thoi gian da thiet lap: " + O.toString());
        while (true) {
            // Hien thi thoi gian hien tai
            System.out.println(O.toString());
            try {
                Thread.sleep(1000);
                O.tangGiay();
            } catch (Exception ex) {

            }
        }
    }
}


Kết luận:

  • Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây

Có thể bạn sẽ thích…

Trả lời

EnglishVietnamese