Lập trình hướng đối tượng – wikipedia tiếng việt

16 409 0
Lập trình hướng đối tượng – wikipedia tiếng việt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tìm kiếm Wikipedia… Lập trình hướng đối tượng Vấn đề trang Lập trình hướng đối tượng (gọi tắt OOP, từ chữ Anh ngữ object-oriented programming), hay gọi lập trình định hướng đối tượng, kĩ thuật lập trình hỗ trợ công nghệ đối tượng OOP xem giúp tăng suất, đơn giản hóa độ phức tạp bảo trì mở rộng phần mềm cách cho phép lập trình viên tập trung vào đối tượng phần mềm bậc cao Ngoài ra, nhiều người cho OOP dễ tiếp thu cho người học lập trình phương pháp trước Một cách giản lược, khái niệm nỗ lực nhằm giảm nhẹ thao tác viết mã cho người lập trình, cho phép họ tạo ứng dụng mà yếu tố bên tương tác với chương trình giống tương tác với đối tượng vật lý Những đối tượng ngôn ngữ OOP kết hợp mã liệu mà chúng nhìn nhận đơn vị Mỗi đối tượng có tên riêng biệt tất tham chiếu đến đối tượng tiến hành qua tên Như vậy, đối tượng có khả nhận vào thông báo, xử lý liệu (bên nó), gửi hay trả lời đến đối tượng khác hay đến môi trường Các tính chất Đối tượng (object): Các liệu thị kết hợp vào đơn vị đầy đủ tạo nên đối tượng Đơn vị tương đương với chương trình đối tượng chia thành hai phận chính: phần phương thức (method) phần thuộc tính (attribute / Properties) Trong thực tế, phương thức đối tượng hàm thuộc tính biến, tham số hay nội đối tượng (hay nói cách khác tập hợp liệu nội tạo thành thuộc tính đối tượng) Các phương thức phương tiện để sử dụng đối tượng thuộc tính mô tả đối tượng có tính chất Các phương thức thuộc tính thường gắn chặt với thực tế đặc tính sử dụng đối tượng Trong thực tế, đối tượng thường trừu tượng hóa qua việc định nghĩa lớp (class) Tập hợp giá trị có thuộc tính tạo nên trạng thái đối tượng Mỗi phương thức hay liệu nội với tính chất định nghĩa (bởi người lập trình) xem đặc tính riêng đối tượng Nếu lầm lẫn tập hợp đặc tính gọi chung đặc tính đối tượng Lập trình hướng đối tượng phương pháp lập trình có tính chất sau: Tính trừu tượng (abstraction): Đây khả chương trình bỏ qua hay không ý đến số khía cạnh thông tin mà trực tiếp làm việc lên, nghĩa có khả tập trung vào cốt lõi cần thiết Mỗi đối tượng phục vụ "động tử" hoàn tất công việc cách nội bộ, báo cáo, thay đổi trạng thái liên lạc với đối tượng khác mà không cần cho biết làm cách đối tượng tiến hành thao tác Tính chất thường gọi trừu tượng liệu Tính trừu tượng thể qua việc đối tượng ban đầu có số đặc điểm chung cho nhiều đối tượng khác mở rộng thân đối tượng ban đầu biện pháp thi hành Tính trừu tượng thường xác định khái niệm gọi lớp trừu tượng hay lớp sở trừu tượng Tính đóng gói (encapsulation) che giấu thông tin (information hiding): Tính chất không cho phép người sử dụng đối tượng thay đổi trạng thái nội đối tượng Chỉ có phương thức nội đối tượng cho phép thay đổi trạng thái Việc cho phép môi trường bên tác động lên liệu nội đối tượng theo cách hoàn toàn tùy thuộc vào người viết mã Đây tính chất đảm bảo toàn vẹn đối tượng Tính đa hình (polymorphism): Thể thông qua việc gửi thông điệp (message) Việc gửi thông điệp so sánh việc gọi hàm bên đối tượng Các phương thức dùng trả lời cho thông điệp tùy theo đối tượng mà thông điệp gửi tới có phản ứng khác Người lập trình định nghĩa đặc tính (chẳng hạn thông qua tên phương thức) cho loạt đối tượng gần thi hành dùng tên gọi mà thi hành đối tượng tự động xảy tương ứng theo đặc tính đối tượng mà không bị nhầm lẫn Ví dụ định nghĩa hai đối tượng "hinh_vuong" "hinh_tron" có phương thức chung "chu_vi" Khi gọi phương thức đối tượng "hinh_vuong" tính theo công thức khác với đối tượng "hinh_tron" Tính kế thừa (inheritance): Đặc tính cho phép đối tượng có sẵn đặc tính mà đối tượng khác có thông qua kế thừa Điều cho phép đối tượng chia sẻ hay mở rộng đặc tính sẵn có mà tiến hành định nghĩa lại Tuy nhiên, ngôn ngữ định hướng đối tượng có tính chất Một điểm mẫu hình, quan điểm OOP đề tài nhiều tranh cãi định nghĩa chuẩn xác hay nguyên lý Trong dạng tổng quát nhất, OOP hiểu theo cách loại thực nghiệm viết chương trình văn phân cấp thành nhiều mô đun (module), mà mô đun đóng vai lớp vỏ che đại diện cho kiểu liệu Những khái niệm liên hệ góp nhặt lại để tạo thành khuôn khổ cho việc lập trình Các triết lý đằng sau việc định hướng đối tượng trở nên mạnh mẽ để tạo thành chuyển đổi mẫu hình ngành lập trình Những mẫu hình khác lập trình chức lập trình thủ tục tập trung chủ yếu hành động, lập trình lô gíc lại tập trung vào khẳng định hợp lý để kích hoạt thực thi mã chương trình OOP phát triển cách độc lập từ việc nghiên cứu ngôn ngữ định hướng hệ thống mô phỏng, SIMULA 67, từ việc nghiên cứu kiến trúc hệ thống có độ tin cậy cao, kiến trúc CPU khả hệ điều hành Một chức đặc sắc OOP việc xử lý kiểu kiểu liệu Dữ liệu đối tượng, cách tổng quát, đòi hỏi thiết kế để thỏa mãn yêu cầu người lập trình (tức lớp) Các kiểu liệu bị giới hạn thêm điều kiện có kiểu liệu với loại không bị ràng buộc điều kiện đó, gọi kiểu liệu Cả hai loại kiểu liệu dựa vào điều tiết hành xử (tức phương thức) định nghĩa Các điều kiện hay yêu cầu khai báo rõ ràng hay giả thiết công nhận ngầm người lập trình Các ngôn ngữ định hướng đối tượng cung cấp nhiều chế cho việc khẳng định giả thiết có tính địa phương cho phần chương trình Các chế này đọc thấy tài liệu chương trình định hướng đối tượng OOP tự dùng để khuyến mại cho nhiều sản phẩm dịch vụ Các định nghĩa ích lợi đặc tính OOP thường màu mè hóa mục trường thương mại Tương tự, nhiều ngôn ngữ lập trình có quan điểm đặc biệt OOP mà tổng quát số khía cạnh Các định nghĩa xác OOP có khác biệt tùy theo quan điểm Đặc biệt, ngôn ngữ có kiểu tĩnh thường có nhìn khác với ngôn ngữ có kiểu động OOP, nguyên chúng tập trung thời gian dịch hay tập trung vào thời gian thi hành chương trình OOP thường xem mẫu hình kiểu hay phong cách lập trình nhằm nhấn mạnh vào điểm quan trọng OOP thay đổi phương thức phát triển phần mềm cách thay đổi tư người lập trình kỹ sư phần mềm phần mềm Mẫu hình OOP chủ yếu kiểu lập trình mà kiểu thiết kế Một hệ thống thiết kế định nghĩa đối tượng mà đối tượng tồn hệ thống đó, mã mà làm việc chưa tương thích với đối tượng, người dùng đối tượng ảnh hưởng tính chất đóng đối tượng Cũng nên lưu ý có khác biệt mẫu hình định hướng đối tượng lý thuyết hệ thống OOP tập trung đối tượng đơn vị hệ thống, đó, lý thuyết hệ thống lại tự tập trung vào hệ thống Như phần trung gian, người ta tìm thấy dạng thức thiết kế phần mềm hay kỹ thuật khác dùng lớp đối tượng viên gạch thành phần lớn Những thành phần xem bước trung gian từ mẫu hình định hướng đối tượng đến mô hình "định hướng sống thực" lý thuyết hệ thống Các mẫu hình định hướng đối tượng Có nhiều phong cách lập trình hướng đối tượng Sự khác phong cách tùy theo việc ngôn ngữ lập trình trọng vào khía cạnh thuận lợi định hướng đối tượng vào việc kết hợp cấu trúc phương cách khác OOP với ngôn ngữ cấu trúc Trong ngôn ngữ cấu trúc, OOP thường xuất dạng mà kiểu liệu mở rộng để hành xử giống kiểu đối tượng OOP, hoàn toàn tương tự cho kiểu liệu trừu tượng với mở rộng kế thừa Mỗi phương pháp thực chương trình mà, cách cú pháp, giới hạn nội lớp Các mô hình nguyên mẫu Khác với cách sử dụng lớp, nguyên mẫu mô hình khác biết đến hơn, có ý nghĩa đạt tới việc chia sẻ ứng xử theo định hướng đối tượng Sau đối tượng định nghĩa, đối tượng khác tương tự định nghĩa từ đối tượng ban đầu Ngôn ngữ nguyên mẫu biết đến nhiều JavaScript mà thiết lập ECMAScript Self, ngôn ngữ lập trình phát triển Sun Microsystems ví dụ ngôn ngữ dùng nguyên mẫu cho việc chia sẻ ứng xử không dùng phân lớp NewtonScript, Act1, Io Delegation ví dụ khác Đặc biệt, Hybrid Exemplars sử dụng hai mô hình nguyên mẫu phân lớp Trong hệ thống nguyên mẫu, đối tượng tự chúng khuôn thức (template), hệ thống phân lớp dùng lớp khuôn thức cho đối tượng Các tiếp cận kiểu phân lớp chiếm đa số OOP mà nhiều người định nghĩa đối tượng có tính chất đóng mà việc chia sẻ liệu xảy phân lớp tính kế thừa Mặc dù vậy, khái niệm tổng quát "chia sẻ ứng xử" công nhận kỹ thuật thay (như trường hợp nguyên mẫu) (Xem thêm Lập trình nguyên mẫu bản) Mô hình đối tượng Lập trình hướng đối tượng trung tâm việc tạo thành đối tượng tương tác chúng, thiếu số chức quan trọng mẫu hình định hướng đối tượng lớp tính kế thừa Những hệ thống đối tượng thường không xem định hướng đối tượng đổi tính kế thừa cách điển hình yếu tố cốt lõi OOP Ví dụ trường hợp ngôn ngữ Visual Basic với phiên 6.0 hay nhỏ Định nghĩa chuẩn Đã có nhiều nỗ lực để chuẩn hóa khái niệm dùng lập trình định hướng đối tượng Những khái niệm kết cấu sau suy diễn khái niệm OOP: Các kiểu liệu đồng đại số Các lượng tồn mô đun Đệ quy Các việc mở rộng Đa hình biên F Các nỗ lực tìm định nghĩa thống hay lý thuyết đứng sau đối tượng không thành công thường bị phân hóa nặng Ví dụ, số định nghĩa tập trung lên hoạt động tinh thần số khác lại ngả việc cấu trúc chương trình Một định nghĩa đơn giản cho OOP hành xử việc sử dụng biểu đồ cấu trúc liệu hay sử dụng dãy mà chứa hàm trỏ sang biểu đồ khác Sự kế thừa tiến hành nhân biểu đồ (mà gọi "nguyên hóa"), OOP văn lệnh Trong năm gần đây, lập trình đối tượng đặc biệt trở nên phổ biến ngôn ngữ lập trình văn lệnh chúng có tính trừu tượng, tính đóng, khả tái sử dụng, dễ sử dụng (trong khả kế thừa ngôn ngữ câu hỏi chưa có câu trả lời) Smalltalk ngôn ngữ có kiểu trên, Python Ruby ngôn ngữ tương đối xây dựng từ đầu với ý tưởng OOP, ngôn ngữ văn lệnh Perl từ từ thêm vào chức định hướng đối tượng kể từ phiên Khả đối tượng để thể "thế giới thực" lý cho phổ biến JavaScript ECMAScript, mà bàn cãi thích hợp để đại diện cho DOM hồ sơ HTML XML Internet Ví dụ mã nguồn C++ Lưu ý: Ví dụ viết C++ dùng trình dịch để dịch thẳng tập tin thực thi Cụ thể dùng Borland C++ cho Windows hay dùng g++ cho Linux Các dòng màu đen mã nguồn, dòng màu khác dòng giải thích ý nghĩa sử dụng OOP Đòi hỏi người đọc biết nhiều cách dùng ngôn ngữ lập trình trình dịch Bản thân lớp khai báo có tính trừu tượng Nghĩa là, không sử dụng trực tiếp (mà xem kiểu liệu) Chỉ người dùng thực động tác thực thể hóa (instantiate) lớp khởi động tạo thành đối tượng thực Trong ví dụ câu lệnh Inherit1 boy; câu lệnh Inherit2 girl; hai câu lệnh để thực thể hóa thành hai đối tượng boy girl Sự hỗ trợ loại đặc tính cho OOP C++ phong phú Ví dụ nhằm minh họa tính chất OOP Một số khái niệm cần biết ngôn ngữ OOP đại Hiện ngôn ngữ OOP phổ biến tập trung theo phương pháp phân lớp có C++, Java, C# Visual Basic.NET Ngôn ngữ OOP hay gọi ngôn ngữ lập trình hướng đối tượng, phương pháp thiết kế phát triển phần mềm dựa kiến trúc lớp đối tượng Sau số khái niệm mà ngôn ngữ thường dùng tới Lớp (class) Một lớp hiểu khuôn mẫu để tạo đối tượng Trong lớp, người ta thường dùng biến để mô tả thuộc tính hàm để mô tả phương thức đối tượng Khi định nghĩa lớp, ta tạo đối tượng từ lớp Để việc sử dụng dễ dàng, thông qua hệ thống hàm tạo (constructor), người ta dùng lớp kiểu liệu để tạo đối tượng Lớp (subclass) Lớp lớp thông thường có thêm tính chất kế thừa phần hay toàn đặc tính lớp khác Lớp chia sẻ kế thừa gọi lớp cha (parent class) ll Lớp trừu tượng hay lớp sở trừu tượng (abstract class) Lớp trừu tượng lớp mà thực thể hóa thành đối tượng thực dụng Lớp thiết kế nhằm tạo lớp có đặc tính tổng quát thân lớp chưa có ý nghĩa (hay không đủ ý nghĩa) để tiến hành viết mã cho việc thực thể hóa (xem Ví dụ) Ví dụ: Lớp "hinh" định nghĩa liệu nội có phương thức (hàm nội tại) "tinh_chu_vi", "tinh_dien_tich" Nhưng lớp hình chưa xác định đầy đủ đặc tính (cụ thể biến nội tọa độ đỉnh đa giác, đường bán kính toạ độ tâm hình tròn, ) nên viết thành lớp trừu tượng Sau đó, người lập trình tạo lớp chẳng hạn lớp "tam_giac", lớp "hinh_tron", lớp "tu_giac", Và lớp người viết mã cung cấp liệu nội (như biến nội r làm bán kính số nội Pi cho lớp "hinh_tron" sau viết mã cụ thể cho phương thức "tinh_chu_vi" "tinh_dien_tich") Phương thức (method) Phương thức lớp thường dùng để mô tả hành vi đối tượng (hoặc lớp) Ví dụ đối tượng thuộc lớp điện thoại có hành vi sau: Đổ chuông, chuyển tín hiệu từ sóng sang dạng nghe được, chuyển tín hiệu giọng nói sang dạng chuẩn, chuyển tín hiệu lên tổng đài.v.v Khi thiết kế, người ta dùng phương thức để mô tả thực hành vi đối tượng Mỗi phương thức thường định nghĩa hàm, thao tác để thực hành vi viết nội dung hàm Khi thực hành vi này, đối tượng phải thực hành vi khác Ví dụ điện thoại phải chuyển tín hiệu giọng nói sang dạng chuẩn trước chuyển lên tổng đài Cho nên phương thức lớp sử dụng phương thức khác trình thực hành vi Người ta định nghĩa thêm vài loại phương thức đặc biệt: Hàm tạo (constructor) hàm dùng để tạo đối tượng, cài đặt giá trị ban đầu cho thuộc tính đối tượng Hàm hủy (destructor) hàm dùng vào việc làm nhớ dùng để lưu đối tượng hủy bỏ tên đối tượng sau dùng xong, bao gồm việc xóa trỏ nội trả phần nhớ mà đối tượng dùng Nhiều lớp thư viện có sẵn hàm tạo mặc định (thông thường tham số) hàm huỷ Thuộc tính (attribute) Thuộc tính lớp bao gồm biến, hằng, hay tham số nội lớp Ở đây, vai trò quan trọng thuộc tính biến chúng bị thay đổi suốt trình hoạt động đối tượng Các thuộc tính xác định kiểu kiểu chúng kiểu liệu cổ điển lớp định nghĩa từ trước Như ghi, lớp thực thể hoá thành đối tượng cụ thể tập hợp giá trị biến nội làm thành trạng thái đối tượng Giống trường hợp phương thức, tùy theo người viết mã, biến nội dùng bên phương thức lớp đó, cho phép câu lệnh bên lớp, hay cho phép lớp có quan hệ đặc biệt quan hệ lớp con, (và quan hệ bạn bè (friend) C++) phép dùng tới (hay thay đổi giá trị nó) Mỗi thuộc tính lớp gọi thành viên liệu lớp Quan hệ lớp đối tượng Lớp quan niệm thông thường cách phân loại thực thể dựa đặc điểm chung thực thể Do lớp khái niệm mang tính trừu tượng hóa cao Ví dụ lớp "người" dùng để thực thể sống Trái Đất có thuộc tính: có hai chân, hai bàn tay khéo léo, có tư duy, ngôn ngữ v.v có phương thức: giao tiếp ngôn ngữ, tư duy, đi, đứng hai chân Khi hai người cụ thể ông A, ông B đối tượng thuộc lớp người Trong ngôn ngữ lập trình, ta hiểu khái niệm lớp tương tự, ta có trình "Thực thể hóa" sau, tạo đối tượng thuộc lớp ta định nghĩa (phân loại) Thực thể (instance) Thực thể hóa (instantiate) trình khai báo để có tên (có thể xem biến) trở thành đối tượng từ lớp Một lớp sau tiến hành thực thể hóa để có đối tượng cụ thể gọi thực thể Hay nói ngược lại thực thể đối tượng riêng lẻ lớp định trước Như biến thông thường, hai thực thể lớp có trạng thái nội khác (xác định giá trị có biến nội tại) hoàn toàn độc lập yêu cầu đặc biệt từ người lập trình " Thực thể hóa: gần giống cá nhân hóa Một lớp " cá nhân hóa" thành đối tượng cụ thể Công cộng (public) Công cộng tính chất dùng để gán cho phương thức, biến nội tại, hay lớp mà khai báo người lập trình cho phép câu lệnh bên đối tượng khác phép dùng đến Ví dụ: Trong C++ khai báo public: int my_var; biến my_var có hai tính chất tính công cộng integer hai tính chất hợp thành đặc tính biến my_var khiến sử dụng hay thay đổi giá trị (bởi câu lệnh) nơi bên lẫn bên lớp Riêng tư (private) Riêng tư thể tính chất đóng mạnh (của đặc tính hay lớp) Khi dùng tính chất gán cho biến, phương thức biến hay phương thức sử dụng bên lớp mà chúng định nghĩa Mọi nỗ lực dùng trực tiếp đến chúng từ bên qua câu lệnh hay từ lớp bị phủ nhận hay bị lỗi Bảo tồn (protected) Tùy theo ngôn ngữ, có vài điểm nhỏ khác cách hiểu tính chất Nhìn chung tính chất mà dùng để áp dụng cho phương thức, biến nội tại, hay lớp có nội lớp hay lớp (hay nội gói Java) phép gọi đến hay dùng đến phương pháp, biến hay lớp So với tính chất riêng tư tính bảo tồn rộng rãi nghĩa chia sẻ liệu hay chức Nó cho phép số trường hợp dùng tới đặc tính lớp (từ lớp chẳng hạn) Lưu ý: Các tính chất công cộng, riêng tư bảo tồn dùng để thị cho lớp cách thức kế thừa lớp cha C++ Đa kế thừa (multiple inheritance) Đây tính chất cho phép lớp có khả kế thừa trực tiếp lúc nhiều lớp khác Vài điểm cần lưu ý viết mã dùng tính chất đa kế thừa: Khi muốn có kế thừa từ nhiều lớp cha lớp cần phải độc lập đặc biệt tên liệu hay hàm cho phép kế thừa phải có tên khác để tránh lỗi "ambiguity" Bởi lúc trình dịch xác định lớp thừa kế tên lớp cha Nhiều ngôn ngữ, ví dụ Java, đa thừa kế, chúng có khái niệm giao diện Interface Với Interface, ta có hầu hết lợi ích mà đa thừa kế mang lại Ngoài khái niệm trên, tùy theo ngôn ngữ, có chức OOP riêng biệt cấp thêm vào Lịch sử Khái niệm đối tượng thực thể khoa học máy tính nhiều người biết đến từ hệ thống PDP-1 MIT Đây có lẽ Ví dụ sớm kiến trúc sở có khả thực Một chứng sớm khác OOP tìm thấy qua Sketchpad viết Ivan Sutherland năm 1963, nhiên, ứng dụng không mẫu hình lập trình Ngôn ngữ lập trình hướng đối tượng Simula, ngôn ngữ thiết kế để dùng việc mô phỏng, sáng tạo Ole-Johan Dahl Kristen Nygaard thuộc Trung tâm Máy tính Na Uy Oslo Các kiến thức ngôn ngữ sau dùng nhiều ngôn ngữ khác, Lisp Pascal họ ngôn ngữ Smalltalk Lập trình hướng đối tượng phát triển phương pháp lập trình chủ đạo từ thập niên 1980 nguyên đáng kể việc ảnh hưởng C++, ngôn ngữ mở rộng C Địa vị thống trị OOP củng cố vững phổ biến GUI dành cho ngôn ngữ lập trình hướng đối tượng ngày tiện lợi Một Ví dụ quan hệ gần gũi thư viện GUI động ngôn ngữ OOP phần mềm Cocoa, khung sở Mac OS X dược viết Objective C (Objective C loại ngôn ngữ hướng đối tượng mở rộng C với việc thông báo động) Công cụ cho OOP nâng cao phần "lập trình điều khiển theo kiện" (mặc dù khái niệm không dành cho OOP) Tại Zürich, Niklaus Wirth cộng theo dõi đề tài liệu trừu tượng lập trình mô đun Modula-2 bao gồm hai đặc tính Thiết kế liền Oberon bao gồm tiếp cận riêng biệt với việc định hướng đối tượng, lớp, Sự tiếp cận không Smalltalk, khác hẳn C++ Các chức hướng đối tượng thêm vào nhiều ngôn ngữ suốt thời gian kể Ada, BASIC, Lisp, Fortran, Pascal nhiều Việc cộng thêm chức cho ngôn ngữ mà trước không chủ định thiết kế cho chúng từ đầu thường dẫn tới nhiều khó khăn khả tương thích (với mã nguồn viết cho phiên cũ) khả bảo trì mã Điển hình trường hợp Pascal Visual Basic Các ngôn ngữ túy hướng đối tượng, phía khác, lại thiếu đặc tính mà nhiều người lập trình phụ thuộc vào Để bắc cầu cho khoảng trống này, nhiều nỗ lực xúc tiến dể tạo ngôn ngữ đặt sở phương pháp hướng đối tượng lại cho phép dùng nhiều đặc tính lập trình cấu trúc theo phương cách "an toàn" Ngôn ngữ Eiffel Bertrand Meyer sớm thành công với mục tiêu Trong thập niên qua, Java dùng rộng rãi phần tương tự với C C++, có lẽ phần khác quan trọng việc lắp đặt sử dụng máy ảo mà chủ ý thực thi mã nguồn cho nhiều tảng khác .NET Microsoft mở đầu với chủ ý tương tự cộng thêm việc hỗ trợ nhiều ngôn ngữ hay biến thể ngôn ngữ cũ (như trường hợp C# Visual Basic) Gần đây, số ngôn ngữ xuất với chức định hướng đối tượng lại tương thích với phương pháp thủ tục Python Ruby Bên cạnh Java, C# Visual Basic.NET hai ngôn ngữ OOP quan trọng thiết kế Microsoft Giống lập trình thủ tục dẫn tới việc tinh lọc kỹ thuật lập trình cấu trúc, phần mềm hướng đối tượng đại thiết kế phương pháp bao gồm tinh lọc Chẳng hạn việc ứng dụng dạng thức thiết kế, thiết kế hợp đồng ngôn ngữ mô hình có UML Các ngôn ngữ Bài chính: Ngôn ngữ lập trình hướng đối tượng C# C++ Common Lisp Object System Eiffel Fortran 2003 Java Objective-C OCaml Object Pascal Pascal Perl PHP Python Ruby Simula Sleep Smalltalk Ada Visual FoxPro Actionscript Visual Basic Đọc thêm M.Sc Đặng Ngọc Hoàng Thành: Lập trình hướng đối tượng C++ , 2010 Grady Booch: Object-Oriented Analysis and Design with Applications, Addison-Wesley, ISBN 0-8053-5340-2 Alan Kay: The Early History of Smalltalk Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Design Patterns: Elements of Reusable Object Oriented Software, Addison-Wesley, ISBN 0-201-63361-2 Bertrand Meyer: Object-Oriented Software Construction, Prentice Hall, ISBN 0-13-629155-4 James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, William Lorensen: Object-Oriented Modeling and Design, Prentice Hall, ISBN 0-13-629841-9 Ivar Jacobson: Object-Oriented Software Engineering: A Use Case-Driven Approach, Addison-Wesley, ISBN 0-201-54435-0 Harold Abelson, Gerald Jay Sussman, Julie Sussman: Structure and Interpretation of Computer Programs, The MIT Press, ISBN 0-262-01153-0 Martin Abadi, Luca Cardelli: A Theory of Objects, Springer-Verlag, ISBN 0-387-94775-2 Paul Harmon, William Morrissey: The Object Technology Casebook - Lessons from AwardWinning Business Applications, John Wiley & Sons, ISBN 0-471-14717-6 David A Taylor: Object-Oriented Information Systems - Planning and Implementation, John Wiley & Sons, ISBN 0-471-54364-0 Peter Eeles, Oliver Sims: Building Business Objects, John Wiley & Sons, ISBN 0-471-19176-0 Các liên hệ en:Object-oriented programming language en:Aspect-oriented programming en:Programming paradigm en:Software componentry en:Interface description language en:Distributed programming en:List of object-oriented programming terms en:Design pattern (computer science) en:Refactoring en:CORBA en:Globus en:DCOM en:Glossary of object-oriented programming Tham khảo Introduction to OOP Introduction to Object Oriented Programming Structured Programming vs Object-Oriented Programming Object-oriented programming FAQ Example of the subtyping problem What are OOP's Jargons and Complexities Object Oriented Design Principles The report "Object Orientation Redefined" outlines how OO has been considered a thinking tool, i.e "we view the world in objects", and how such an approach may further our understanding of object-oriented formalisation Các phê phán Criticism of OOP Objects Have Failed Arguments Against OOP (C2 wiki discussion) OOP Better in Theory than in Practice Why Paul Graham is Creating a New Language Without OOP Đọc ngôn ngữ khác Sửa đổi lần cuối cách ngày người dùng vô danh Wikipedia® Di động Máy tính để bàn Nội dung phát hành theo CC BY-SA 3.0 , ngoại trừ có ghi khác Điều khoản Sử dụng Riêng tư

Ngày đăng: 28/08/2016, 13:04

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan