?
- 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.
*** Tham kh?o thêm 2 video c?a Blog StudyAndShare v? Constructor
?
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 method
public 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);
}
}?