Thuộc tính kiểu class là như thế nào?

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 ạ

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.

9 Likes

java có 2 kiểu dữ liệu là Primitive Data TypesReference 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

11 Likes

Hay, dễ hiểu. Thả tim ngay :smiley:

2 Likes

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

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?