JAVA CORE - Object Orientation (Update Polymorphism - 5/8)

Mình sẽ rút kn tránh cho những lý luyết khác vào :smile:. Còn mọi người ignore nó là đc mà

@duc123
Cho mình hỏi còn cách khác để che giấu thông tin ngoài set/get với ạ. Mình mới học nên còn mập mờ những chỗ ntn :frowning:

a post thêm nhiều bài mới đi a

1 Like

bạn chỉ cần private tất cả những phần tử của lớp thôi là được rùi và không tạo ra những phương thức nào mà làm lộ cấu trúc của những phần tử đó ra bên ngoài như set và get (xài cũng được nhưng chỉ khi nào thực sự cần thiết)

1 Like

nếu vậy, lấy lại ví dụ trên, thì mình chỉ cần sửa public thành private của 2 thuộc tính size và weight đúng ko bạn?

1 Like

ừ đúng rồi bạn chỉ cần làm vậy thôi

1 Like

Tớ đang cố gắng post liên tục, tối nay sẽ update thêm nhé :smiley:

1 Like

Tớ update thêm Polymorphism nhé :slight_smile: @cuong_hieu

2 Likes

cảm ơn bạn, :smiley: mình phần nào đã rõ tính đóng gói ở đây

1 Like

Phần Polymorphism hay quá :heart_eyes: Lúc đầu em cứ thắc mắc mãi sao java nó cứ phải khai báo object “thừa” như thế, giờ thì rõ rồi :grin:

:relaxed:

1 Like

Mình góp thêm một đoạn nhỏ ở phần Encapsulation:

Dưới đây là 1 đoạn code nhỏ mô tả Encapsulation bằng hàm get/set:

class Box 
{
     // protect the instance variable; only an instance
     // of Box can access it
     private int size;
     // Provide public getters and setters
     public int getSize() {
         return size;
     }
     public void setSize(int newSize) {
        size = newSize;
     }
}

Bạn có nhận thấy là việc khai báo hàm getSize() và setSize(int) ở đây rất là thừa thải không? vì ở đây chúng ta không thực hiện việc kiểm tra tính đúng đắn cũng như làm bất kì thao tác gì ngoài việc truy vấn và gán dữ liệu. Tuy nhiên việc làm này là cần thiết vì sau này có thể bạn sẽ cần thêm code vào các phương thức này mà không làm thay đổi code dùng ở nơi khác (API). Một thiết kế hướng đối tượng tốt thì luôn hướng đến việc sẽ có những thay đổi trong tương lai. Cho nên để an toàn thì bạn nên LUÔN LUÔN truy xuất biến qua các phương thức (methods) thay vì truy xuất trực tiếp

7 Likes

Cám ơn bạn đóng góp :smile:

@thanhmssl10 mình vừa update thêm 1 chút về Polymorphism, bác đọc nhé :wink:

1 Like

Update vào 1 topic này có vẻ khó theo dõi quá nhỉ, @ltd bác có cách nào không :frowning:

hóng update của bác nè.

Tạo thêm topic rồi lập series? Vậy được không nhỉ?

hay là làm video training đi a ơi ,

video tớ không thích lắm, thôi cố nốt topic này như vậy đã.

1 Like

Topic hay và dễ hiểu ạ. Cảm ơn anh @CuongNguyen đã viết bài và các anh chị em khác bình luận để có góc nhìn đa chiều và đầy đủ hơn ạ :heart_eyes:

ad ơi cho em xin phần tiếp theo ạ

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