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