Các anh cho em hỏi trong Java thầy giáo em có giao đề là tạo ra 1 cái class Diem và class DuongThang thì trong class DuongThang thầy yêu cầu tạo ra thuộc tính A, B có kiểu Diem.Em có tìm trên mạng nhưng mà tìm lại không ra không biết là nó thuộc phần nào.Ai giúp em với ạ
Thuộc tính kiểu class là như thế nào?
public class Diem
{
private double X;
private double Y;
}
public class DuongThang
{
private Diem A;
private Diem B;
}
Bạn tự thêm các thuộc tính khác và các phương thức phù hợp.
java có 2 kiểu dữ liệu là Primitive Data Types
và Reference Types
, Primitive Data types là 8 kiểu dữ liệu cơ bản : double, int, boolean, short, long, byte, float, char. còn Reference Types là phải phải tạo thêm một class để định nghĩa kiểu dữ liệu theo ý muốn. VD : tạo kiểu dữ liệu tọa độ dùng cho class hình vuông
public class ToaDo {
private double x;
private double y;
// constructor here
}
public class HinhVuong {
private ToaDo toaDo;
private double doDaiCanh;
}
vậy ta thấy kiểu Reference Types chính là tập hợp của các kiểu Primitive Data hoặc Reference Types khác
Hay, dễ hiểu. Thả tim ngay
M.n ơi xem hộ em với tại sao lúc chạy chương trình lại báo lỗi vậy ạ.
class Diem
package OOP;
import java.util.Scanner;
public class Diem {
Scanner sc = new Scanner(System.in);
private float x, y;
public Diem() {
}
public Diem(float x, float y) {
this.x = x;
this.y = y;
}
public void Nhap() {
System.out.print("Nhap x : ");
x = sc.nextFloat();
System.out.print("Nhap y : ");
y = sc.nextFloat();
}
public void setX(float x) {
this.x = x;
}
public void setY(float y) {
this.y = y;
}
public float getX(){
return x;
}
public float getY() {
return y;
}
}
class DuongThang
package OOP;
public class DuongThang {
Diem A, B;
public float getxA() {
return A.getX();
}
public float getyA() {
return A.getY();
}
public float getxB() {
return B.getX();
}
public float getyB() {
return B.getY();
}
public float doDai() {
double X = getxB() - getxA();
double Y = getyB() - getyA();
return (float) Math.sqrt(Math.pow(X, 2)+Math.pow(Y, 2));
}
}
Hàm Main
package OOP;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Diem A = new Diem();
Diem B = new Diem();
DuongThang D = new DuongThang();
System.out.println("Nhap toa do diem A");
A.Nhap();
System.out.println("Nhap toa do diem B");
B.Nhap();
System.out.println("Do dai AB: "+D.doDai());
}
}
Do class DuongThang không khởi tạo giá trị ban đầu cho thuộc tính A,B nên mặc định nó mang giá trị null khi tạo instance từ class này. dẫn đến các hàm get trong class DuongThang lỗi, doDai() cũng lỗi nốt. có thể thêm constructor vào class DuongThang