Tạo và sử dụng lớp Point2D trong Java



Đề bài: Viết chương trình sử dụng ngôn ngữ lập trình Java tạo và sử dụng lớp Point2D được mô tả theo ký pháp UML sau:

Point2D
– x: float
– y: float
+ Point2D()
+ Point2D(x: float, y: float)
+ move(dx: float, dy: float): void
+ distance(p2: Point2D): float
+ toString(): String

Trong đó:

  • Point2D() là hàm khởi tạo không tham số
  • Point2D(x: float, y: float) là hàm khởi tạo có tham số
  • move(dx: float, dy: float) là hàm di chuyển điểm đến vị trí mới
  • distance(p2: Point2D) là hàm tính khoảng cách giữa 2 điểm, áp dụng công thức
    d = √(x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)
  • toString() là hàm hiển thị thông tin về tọa độ của điểm

Yêu cầu kiến thức:

  • Xác định đúng kiểu dữ liệu cho các biến
  • Xác định đối tượng chương trình từ đối tượng thực tế
  • Phân tích, thiết kế lập trình hướng đối tượng

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


package BuildClass;

public class Point2D {
    // Thuoc tinh
    private double x;
    private double y;

    // Phuong thuc
    // Ham khoi tao khong tham so
    public Point2D() {
        this.x = 0;
        this.y = 0;
    }

    // Ham khoi tao co tham so
    public Point2D(double x, double y) {
        this.x = x;
        this.y = y;
    }

    // Thay doi vi tri cua diem
    public void move(double dx, double dy) {
        x += dx;
        y += dy;
    }

    // Tinh khoang cach giua 2 diem
    public double distance(Point2D d2) {
        return Math.sqrt((this.x - d2.x) * (this.x - d2.x) + (this.y - d2.y) * (this.y - d2.y));
    }

    // Hien thi thong tin
    @Override
    public String toString() {
        return "(" + this.x + "; " + this.y + ")";
    }

    // Cac ham setter

    public void setX(double x) {
        this.x = x;
    }

    public void setY(double y) {
        this.y = y;
    }
}

File MainClass.java:


package UseClass;

import BuildClass.Point2D;

import java.util.Scanner;

public class MainClass {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // Khai bao doi tuong
        Point2D A = new Point2D();
        Point2D B = new Point2D();

        // Nhap du lieu
        System.out.print("Nhap vao hoanh do diem A: ");
        A.setX(sc.nextDouble());
        System.out.print("Nhap vao tung do diem A: ");
        A.setY(sc.nextDouble());

        System.out.print("Nhap vao hoanh do diem B: ");
        B.setX(sc.nextDouble());
        System.out.print("Nhap vao tung do diem B: ");
        B.setY(sc.nextDouble());

        // Hien thi
        System.out.println("Toa diem diem A la: A" + A.toString());
        System.out.println("Toa diem diem A la: B" + B.toString());

        System.out.println("Khoang cach giua 2 diem A va B la: " + A.distance(B));

        sc.close();
    }
}


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