1, Constructor là gì?

- Contructor thật ra là một loại phương thức đặc biệt của lớp.
- Constructor dùng gọi tự động khi khởi tạo một thể hiện của lớp, có thể dùng để khởi gán những giá trị măc định. Các constructor không có giá trị trả về, và có thể có tham số hoặc
không có tham số.
- Constructor phải có cùng tên với lớp và được gọi đến dùng từ khóa new.
- Nếu một lớp không có constructor thì java sẽ cung cấp cho lớp một constructor mặc định (default constructor). Những thuộc tính, biến của lớp sẽ được khởi tạo bởi các giá trị mặc định (số: thường là giá trị 0, kiểu luận lý là giá trị false, kiểu đối tượng giá trị null, …)
- Bạn có thể định nghĩa nhiều phương thức khởi tạo cho một lớp.
- Giống như các phương thức khác, phương thức khởi tạo lớp có thể bị nạp chồng (overload)
** Lưu ý: thông thường để an toàn, dễ kiểm soát và làm chủ mã nguồn chương trình chúng ta nên khai báo một constructor cho lớp.

2, Ví dụ về constructor:

Tạo lớp SinhVien với các thuộc tính hoTen, namSinh, diemTb, lop.
Tạo constructor có 2 tham số truyền vào và 1 constructor overload constructor đó, với 3 tham số truyền vào:
PHP:
package javaandroidvn;

class SinhVien {

private String hoTen;
private int namSinh;
private float diemTb;
private String lop;

public SinhVien() {
}

public SinhVien(String hoTen, int namSinh) {this.hoTen = hoTen;this.namSinh = namSinh;this.lop = "At7a";System.out.println("Họ tên: " + this.hoTen + " Năm sinh: " + this.namSinh);System.out.println("Lớp: " + this.lop);
}
//Overloading constructor methodpublic SinhVien(String hoTen, int namSinh, float diemTb) {this.hoTen = hoTen;this.namSinh = namSinh;this.diemTb = diemTb;this.lop = "At7a";System.out.println("Họ tên: " + this.hoTen + " Năm sinh: " + this.namSinh + " Điểm Trung Bình: " + this.diemTb);System.out.println("Lớp: " + this.lop);
}
}

public class JavaAndroidVn {

public static void main(String[] args) {SinhVien a = new SinhVien("Vũ Văn T", 1992);SinhVien b = new SinhVien("Trần Thu P", 1996, 9.0f);
}
}
hoc lap trinh java, hoc lap trinh android

View more random threads: