4 tính chất của lập trình hướng đối tượng

Thảo luận trong 'Visual C++' bắt đầu bởi tranvcuong94, 13/4/16.

  1. tranvcuong94

    tranvcuong94 Moderator Moderator

    Tham gia ngày:
    9/4/16
    Bài viết:
    228
    Đã được thích:
    1
    Điểm thành tích:
    18
    Giới tính:
    Nam
    Nghề nghiệp:
    N/A
    Nơi ở:
    N/A
    Web:
    N/A

    1. Trừu tượng (abstraction)

    Đây là khả năng của chương trình bỏ qua hay không chú ý đến một số khía cạnh của thông tin mà nó đang trực tiếp làm việc lên, nghĩa là nó có khả năng tập trung vào cốt lỗi cần thiết. Mỗi đối tượng phục vụ như là một "động tử" có thể hoàn tất các công việc một cách nội bộ, báo cáo, thay đổi trạng thái của nó và liên lạc với các đối tượng khác mà không cần cho biết làm cách nào đối tượng tiến hành được thao tác. Tính chất này thường được gọi là sự trừu tượng của dữ liệu. Tính trừu tượng còn thể hiện qua việc một đối tượng ban đầu có thể có một số điểm chung cho nhiều đối tượng khác như là sự mở rộng của nó nhưng bản thân đối tượng ban đầu này có thể không có các biện pháp thi hành. Tính trừu tượng này thường được xác định trong kahsi niệm gọi là lớp trừu tượng hay lớp cư sở trừu tượng.


    Đối tượng là một thể hiện của một lớp
    Vd: Lớp xe hơi có các đối tượng là: Xe lambogini, ferari, meccedess, toyota...


    1 đối tượng sẽ chứa 2 thông tin đi kèm theo:

    1. Dữ liệu nó đang chứa.
    2. Hành động nó làm.


    => Đối tượng là một thể hiện của một lớp

    2. Đóng gói (encapsulation) và che giấu thông tin (info hiding)

    Tính chất này không cho phép người sử dụng các đối tượng thay đồi trạng thái nội tại của một đối tượng. Chỉ có các phương thức nội tại của đối tượng cho phép thay đổi trạng thái của nó. Việc cho phép môi trường bên ngoài tác động lên các dữ liệu nội tại của một đối tượng theo cách nào là hoàn toàn tùy thuộc vào người viết mã. Đây là tính chất đảm bảo sự toàn vẹn của đối tượng.

    CODE:
    Select All
    struct HocSinh
    {
      
    int MaSoNamSinh;
      
    float Diem;
    };
    int main()
    {
       
    HocSinh a,b,c;
       
    nhap(a);'
       a.Diem --;
    }
    3. Tính Kế thừa (inheritance) (Tính chất quan trọng nhất)

    Đặc tính này cho phép một đối tượng có thể có sẵn các đặc tính mà đối tượng khác đã có thông qua kế thừa. Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại. Tuy nhiên, không phải ngôn ngữ định hướng đối tượng nào cũng có tính chất này

    4. Tính Đa hình (Polymorphism)

    Thể hiện thông qua việc gửi các thông điệp (message). Việc gửi các thông điệp này có thể só sánh như việc gọi các hàm bên trong của đối tượng. Các phương thức dùng trả lời cho một thông điệp sẽ tùy theo đối tượng mà thông diệp đó được gửi tới sẽ có phản ứng khác nhau. Người lập trình có thể định nghĩa một đặc tính (chẳng hạn thông qua tên của các phương thức) cho một loạt các đối tượng gần nhau nhưng khi thi hành thì dùng cùng một tên gọi mà sự thi hành của mỗi đối tượng sẽ tự động xảy ra tương ứng theo đặc tính của từng đối tượng mà không bị nhầm lẫn.

    Thí dụ:

    Khi định nghĩa 2 đối tượng "hinh_vuong" và "hinh_tron" thì có một phương thức chung là "chu_vi". Khi gọi phương thức này thì nếu đối tượng là "hinh_vuong" nó sẽ tính theo công thức khác với khi đối tượng là "hinh_tron".


    Tầm vực trong hướng đối tượng

    Public: Các thuộc tính hoặc các phương thức có thể truy xuất ra bên ngoài class.
    Private: các thuộc tính các phương thức không thể truy xuất ra bên ngoài class, nó chỉ được gọi trong phạm vi class.
    Protected: các thuộc tính các phương thức không thể truy xuất ra bên ngoài class, nó chỉ được gọi trong class và class kế thừa.
     

    Bình Luận Bằng Facebook

    data-href="https://cnttqn.com/threads/4-tinh-chat-cua-lap-trinh-huong-doi-tuong.1580.html"