pD3n2

Ở bài 12 mình có viết chú ý 1 điều như này:
Ở các ví dụ trước, các thuộc tính mình thường để public , chương trình chạy, nhưng đó không phải là cách ổn. Nếu chuyển về private, mà bạn vẫn truy cập các thuộc tính như các bài ví dụ trước thì sẽ lỗi như này:

Untitled

Vậy làm như nào để truy cập các thuộc tính của đối tượng để private?

1, Biến this

Đầu tiên bạn cần hiểu biến này là gì?
Biến this là một biến ẩn tồn tại trong tất cả các lớp trong ngôn ngữ java. Một class trong Java luôn tồn tại một biến this, biến this được sử dụng trong khi chạy và tham khảo đến bản thân lớp chứa nó.

2, Phương thức setter

Mục đích của phương thức setter là chúng ta dùng nó để truy cập vào thuộc tính của đối tượng và gán giá trị cho các thuộc tính của đối tượng! Tên gọi, hay cách bạn đặt tên phương thức này là tùy bạn, nó cũng vẫn chạy nhưng theo style code lập trình viên thường làm thì nó sẽ thường là set....

Ví dụ 1: 
PHP:
package javademoandroidvn;

class 
HocSinh {

    private 
String hoTen;
    private 
String lop;
    private 
float diemTb;

    public 
void setHoTen(String hoTen1) { //hoTen1 là biến cục bộ nhập vào, thường để trùng tên thuộc tính như các hàm setter phía dưới
        
this.hoTen hoTen1;
    }

    public 
void setLop(String lop) {
        
this.lop lop;
    }

    public 
void setDiemTb(float diemTb) {
        
this.diemTb diemTb;
    }
}

public class 
JavaDemoAndroidVn {

    public static 
void main(String[] args) {
        
HocSinh a = new HocSinh();
        
a.setHoTen("Vu Van T");
        
a.setLop("At7a");
        
a.setDiemTb(7.5f);
    }
}
2, Phương thức getter

Cũng tương tự như phương thức setter, nó cũng dùng để truy cập vào các thuộc tính
của đối tượng, nhưng ngược lại setter, phương thức getter sẽ trả về các thuộc tính của đối tượng!

Ví dụ 2: 
PHP:
package javademoandroidvn;

class 
HocSinh {

    private 
String hoTen;
    private 
String lop;
    private 
float diemTb;

    public 
void setHoTen(String hoTen1) { //hoTen1 là biến cục bộ nhập vào, thường để trùng tên thuộc tính như các hàm setter phía dưới
        
this.hoTen hoTen1;
    }

    public 
void setLop(String lop) {
        
this.lop lop;
    }

    public 
String getHoTen() {
        return 
hoTen;
    }

    public 
String getLop() {
        return 
lop;
    }

    public 
float getDiemTb() {
        return 
diemTb;
    }

    public 
void setDiemTb(float diemTb) {
        
this.diemTb diemTb;
    }
}

public class 
JavaDemoAndroidVn {

    public static 
void main(String[] args) {
        
HocSinh a = new HocSinh();
        
a.setHoTen("Vu Van T");
        
a.setLop("At7a");
        
a.setDiemTb(7.5f);

        
System.out.println("Họ tên: " a.getHoTen());
        
System.out.println("Lớp: " a.getLop());
        
System.out.println("Điểm Tb: " a.getDiemTb());
    }
}
Các bạn nên xem video sau của blog StudyAndShare để hiểu hơn!


3, Cách tự chèn các phương thức getter và setter:

Khi bạn mới code java thì chưa nên dùng cách này, thực sự hiểu getter và setter rồi thì mới nên dùng.
Ở cả 2 IDE phổ biến đều hỗ trợ tự chèn các phương thức getter và setter. Với những bài khi khai báo nhiều biến, dùng tính năng này sẽ rất tiện!

Với Netbeans:
Bạn nháy chuột phải lên vị trí soạn thảo code, chọn Insert Code
Sau đó sẽ hiện ra 1 menu nhỏ, bạn chọn getter, setter hoặc getter and setter tùy mục đích bạn dùng!
Bạn sẽ thấy Netbeans tự sinh code cho các phương thức đó!

Untitled2

Với Eclipese:
Bạn vào Source --> Generate Getter and Setter rồi chọn biến cần tạo phương
thức getter và setter là được!

Untitled3



[IMG]

Bài tập về nhà::D

Bài 1: Tạo package nhân sự, trong có 2 class là sinh viên và giảng viên
Class sinh viên gồm các thuộc tính: họ tên, lớp học, điểm toán, lý, hóa.
Class giảng viên gồm các thuộc tính: họ tên, lớp dạy, năm sinh, lương.
Tạo đối tượng học sinh a.
Tạo đối tượng giảng viên b.
Các giá trị của thuộc tính a và b nhập vào từ bàn phím.
Xử lý dữ liệu báo ra thông tin của a và b, tính và báo ra điểm trung bình của a,
xếp loại học lực, báo b có dạy a hay không!
Các thuộc tính để private, sử dụng phương thức getter, setter.
Lập trình hướng đối tượng!

0 blogger-facebook:

Post a Comment

 
Top