Tạo và sử dụng lớp Triangle 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 Triangle được mô tả bằng mô hình UML sau:
Triangle |
---|
– a, b, c: float |
+ Triangle() + Triangle(a: float, b: float, c: float) + isTriangle(): boolean + isEquilateral(): boolean + isIsosceles(): boolean + isRight(): boolean + isRightIsosceles(): boolean + getType(): char + area(): float + display(): char |
Trong đó:
- Triangle() là hàm khởi tạo không đối số
- Triangle(a: float, b: float, c: float) là hàm khởi tạo có đối số
- isTriangle() là hàm kiểm tra 3 cạnh có tạo thành tam giác hay không
- isEquilateral() là hàm kiểm tra tam giác đều
- isIsosceles() là hàm kiểm tra tam giác cân
- isRight() là hàm kiểm tra tam giác vuông
- isRightIsosceles() là hàm kiểm tra tam giác vuông cân
- getType() là hàm trả về thông tin kiểu tam giác
- area() là hàm tính diện tích (theo công thức Heron)
- display() là hàm trả về thông tin cạnh tam giác, kiểu tam giác và diện tích
Yêu cầu kiến thức:
- Xác định, chuyển từ đối tượng thực tế sang đối tượng chương trình
- Xác định thuộc tính và phương thức của lớp và đối tượng
- Xác định kiểu dữ liệu của thuộc tính và các phương thức
Cấu trúc thư mục:
src
|——BuildClass
|——Triangle.java
|——UseClass
|——MainClass.java
Code tham khảo dưới đây được viết trên JDK ver 8.x:
File Triangle.java:
package BuildClass;
public class Triangle {
// Thuoc tinh
private double a;
private double b;
private double c;
// Phuong thuc
// Ham khoi tao khong doi so
public Triangle() {
a = 0;
b = 0;
c = 0;
}
// Ham khoi tao co doi so
public Triangle(double a, double b, double c) {
if (a + b <= c || a + c <= b || b + c <= a) {
a = 0;
b = 0;
c = 0;
} else {
this.a = a;
this.b = b;
this.c = c;
}
}
// Ham kiem tam giac
public boolean isTriangle() {
if (a + b <= c || a + c <= b || b + c <= a) {
return false;
}
return true;
}
// Ham kiem tra tam giac deu
public boolean isEquilateral() {
if ((a == b) && (b == c)) {
return true;
}
return false;
}
// Ham kiem tra tam giac can
public boolean isIsosceles() {
if ((a == b) || (a == c) || (b == c)) {
return true;
}
return false;
}
// Ham kiem tra tam giac vuong
public boolean isRight() {
if ((a * a == b * b + c * c) ||
(b * b == a * a + c * c) ||
(c * c == a * a + b * b)) {
return true;
}
return false;
}
// Ham kiem tra tam giac vuong can
public boolean isRightIsosceles() {
if (((a * a + b * b == c * c) && (a == b)) ||
((a * a + c * c == b * b) && (a == c)) ||
((b * b + c * c == a * a) && (b == c))) {
return true;
}
return false;
}
// Ham tra ve thong tin kieu tam giac tam giac
public String getType() {
if (isIsosceles()) {
return "Tam giac can";
} else if (isEquilateral()) {
return "Tam giac deu";
} else if (isRight()) {
return "Tam giac vuong";
} else if (isRightIsosceles()) {
return "Tam giac vuong can";
}
return "Tam giac thuong";
}
// Ham tinh dien tich tam giac
public double area() {
double p = (a + b + c) / 2;
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
}
// Ham tra ve thong tin cua tam giac
public void display() {
System.out.println("\tDo dai cac canh lan luot la: " + a + "; " + b + " va " + c);
System.out.println("\tLoai tam giac: " + getType());
System.out.println("\tDien tich tam giac: " + area());
}
}
File MainClass.java:
package UseClass;
import BuildClass.Triangle;
import java.util.Scanner;
public class MainClass {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// Khai bao bien
double a, b, c;
do {
System.out.print("Nhap vao canh thu nhat: ");
a = sc.nextDouble();
System.out.print("Nhap vao canh thu hai: ");
b = sc.nextDouble();
System.out.print("Nhap vao canh thu ba: ");
c = sc.nextDouble();
if (a + b <= c || a + c <= b || b + c <= a) {
System.out.println("Khong thoa man canh tam giac. Hay nhap lai!");
}
} while (a + b <= c || a + c <= b || b + c <= a);
Triangle tg = new Triangle(a, b, c);
System.out.println("Thong tin tam giac la:");
tg.display();
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
- Bạn có thể tham khảo thêm khóa học Ôn tập OOP cơ bản trong Java. Xem tại đây