30/09/2018, 23:39

Hỏi về thuộc tính và phương thức trong lập trình hướng đối tượng

mình đã tìm hiểu nhiều tài liệu nhưng vẫn chưa nắm được rõ ràng thế nào là phương thức ,thuộc tính ,bạn nào hiểu giải thích mình với

Chung viết 01:51 ngày 01/10/2018

Nếu chưa học sâu thì mình thấy 1 lớp với 1 chương trình cũng rất giống nhau.

Thuộc tính của lớp là biến ở trong chương trình.
Phương thức của lớp là hàm ở trong chương trình.

Không có gì ràng buộc thuộc tính và phương thức của bạn phải dính dáng đến cái lớp đấy cả.

Nhox Namby viết 01:48 ngày 01/10/2018

bạn lấy vị dụ cụ thể đucợ không

Chung viết 01:40 ngày 01/10/2018

Một chương trình có hàm tính tổng có thể như này:

int sum (int x, int y) {
   return x + y;
}

int main () {
    cout << sum (5,6);
    return 0;
}

Còn với OOP thì nó có thể như này:

class foo {
    public:
        // Ở trong này bạn có thể viết như một chương trình thực sự
        // Khai báo vài biến ở đây
        // int a, b; ...
        // Viết vài hàm ở đây
        int sum (int x, int y) {
            return x + y; // Một hàm tính tổng
        }
        // ...
}

int main() {
    foo bar; // Tạo một đối tượng của class foo tên là b
    // Và từ đây trở đi bạn có thể dùng bar như một chương trình
    cout << bar.sum (5,6); // Dùng hàm tính tổng
    return 0;

.
Đây là mình nói một cách nôm na nhất để bạn hiểu khái niệm của nó thôi, không ai dùng nó theo cách này cả

Nhox Namby viết 01:42 ngày 01/10/2018

ok mình hiểu roòi ,ví dụ nhận viên thì thuột tính là gì và pt là gì ,có phải thuột tính là id tên … phương thức là bán hàng ,

Chung viết 01:39 ngày 01/10/2018

Chuẩn bạn, cách này giải thích này rất phổ biến trong các tài liệu hướng đối tượng và rất gần gũi với đời sống.

Nhox Namby viết 01:55 ngày 01/10/2018

ok mình hiểu roòi ,ví dụ nhận viên thì thuột tính là gì và pt là gì ,có phải thuột tính là id tên … phương thức là bán hàng ,

Reoteu Ray viết 01:47 ngày 01/10/2018

thuộc tính hay còn gọi là field và phương thức là method . Trong định nghĩa của oop thì đối tượng chính là thực thể của lớp mà trong đó dữ liệu và thao tác tác động lên dữ liệu đó được đóng gói với nhau .

Thuộc tính dùng để lưu trạng thái của đối tượng (state) còn phương thức là cách mà ta giải quyết hành vi của đối tượng hoặc dịch vụ được cung cấp để đáp ứng hành vi của đối tượng

vd : 1 chiếc xe honda là 1 đối tượng thì : màu xe , tên xe , số khung , tốc độ , dung tích máy là các thuộc tính còn phương thức là kiểm tra tốc độ ,khởi động , quẹo trái , quẹo phải , đi tới , đi lùi ,kiểm tra xa trong bình…

Reoteu Ray viết 01:50 ngày 01/10/2018

thuộc tính với phương thức nó có liên quan với nhau đấy bạn , vd : không thể có chuyện con chim có sừng kêu gâu gâu , hoặc con cá có cánh và kêu meo meo

Chung viết 01:55 ngày 01/10/2018

mình ko bảo thuộc tính với phương thức ko liên quan đến nhau.

Còn việc giải thích thì mình đồng ý là mình có phần sai, nhưng mình đang giải thích về phương thức và thuộc tính một cách gần với những gì mà bạn ý vừa được học ( ở đây là hàm và biến )

Cách giải thích của bạn ( cách giải thích về con chim, con cá…, cách giải thích dựa trên mặt logic ) thì mình thấy ở tài liệu nào cũng xuất hiện, nên mình sợ rằng bạn ý lập topic này là do bạn ý ko hiểu được cách giải thích đấy. Nên mình đã dựa trên mặt kỹ thuật của hướng đối tượng để giải thích.

Việc ví dụ bạn nói thì “cá” “chim” “sừng” “cánh” … cũng chỉ là cái tên, kể cả mình có viết một class Cá, có thuộc tính Cánh, có phương thức Bay ở trong một tựa game thần thoại đánh nhau thì cũng hoàn toàn hợp lí ( compile ko báo lỗi, run mượt mà, người dùng ko chửi là game phi logic )

Reoteu Ray viết 01:40 ngày 01/10/2018

ở đây mình đang nói tới ý nghĩa của 1 đối tượng chứ ko đơn thuần là những cái tên …

Nhox Namby viết 01:54 ngày 01/10/2018

mình cảm ơn ý kiến của 2 bạn ,đều hay và mình đã hiểu được 1 phần ,

Bài liên quan
0