Tải bản đầy đủ (.pdf) (4 trang)

Ngôn ngữ C++.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (22.36 KB, 4 trang )

A. GIỚI THIỆU C++

C++ là một ngôn ngữ lập trình hướng đối tượng (Object Oriented
Programming), trong đó chương trình được tổ chức như tập hợp của những đối
tượng hợp tác với nhau , mỗi đối tượng đại diện cho một instance của lớp và
những lớp mà chúng là thành viên của một lớp phân cấp thông qua quan hệ thừa
kế .
Phương pháp thiết kế hướng đối tượng vừa mới phát triển nhằm giúp nhà
phát triển khai thác được sức mạnh của đối tượng, dùng các lớp và đối tượng
như là những khối xây dựng cơ sở.
Ta có thể nói một ngôn ngữ là hướng đối tượng nếu và chỉ nếu nó thỏa
mãn những yêu cầu sau :
Ø Nó có thể tạo những đối tượng là dữ liệu trừu tượng với một giao tiếp của
những operation(tác vụ) đã đònh và một trạng thái ẩn bên trong .
Ø Lớp có thể thừa kế thuộc tính từ lớp cha .
Một mô hình mà thiếu một trong những đặc tính trên thì không phải là hướng
đối tượng.
1. Tính trừu tượng (Abstraction) :
Sự trừu tượng thể hiện những đặc tính cốt yếu của một đối tượng mà
những đặc tính này dùng để phân biệt đối tượng này với tất cả các loại đối
tượng khác và do vậy cung cấp một cách rõ ràng giới hạn ý niệm được đònh
nghóa, liên quan tới viễn tượng của người nhìn.
Trừu tượng tập trung vào cái nhìn bề ngoài của đối tượng và do đó thoả
mãn được các hành vi chủ yếu của đối tượng riêng biệt từ hiện thực của nó .
Ta có thể có các loại trừu tượng sau :
Ø Thực thể trừu tượng : một đối tượng mà nó đại diện cho một mô hình hữu
dụng của một miền vấn đề hay thực thể miền giải quyết .
Ø Operation abstraction ( hoạt động trừu tượng ) : một đối tượng mà nó cung
cấp một tập tổng quát của các operation , tất cả các operation thực thi cùng
một loại chức năng
Ø Máy ảo trừu tượng : một đối tượng mà nó nhóm các hoạt động với nhau , và


tất cả các hoạt động này được sử dụng bởi mức điều khiển cao hơn , hoặc
các hoạt động mà chúng sử dụng tập hợp các hoạt động của mức thấp hơn .
Ø Trừu tượng ngẫu nhiên : một đối tượng mà nó đóng gói một tập hợp các hoạt
động mà chúng không có quan hệ lẫn nhau .
Chúng ta gọi toàn bộ tập hợp của các hoạt động mà một client có thể thi
hành cho một đối tượng , cùng với những câu lệnh hợp lệ mà chúng có thể được
gọi là protocol . Một protocol biểu thò những cách thức mà một đối tượng có thể
hành động và phản ứng , và do vậy cấu thành tổng thể bề ngoài tónh và động
của trừu tượng .
2. Sự đóng kín (Encapsulation) :
Tính đóng kín là quá trình phân chia các phần tử của một trừu tượng để
cấu thành nên cấu trúc và hành vi của chính nó , đóng kín cho phép hoạt động
giao tiếp của một trừu tượng và hiện thực của nó .
Sự đóng kín là cơ chế liên kết mã và dữ liệu mà nó thao tác , và giữ cho
cả hai được an toàn khỏi sự có thể thiệp từ bên ngoài và do sự sử dụng sai .
Trong ngôn ngữ hướng đối tượng , mã và dữ liệu liên kết với nhau để tạo thành
một "hộp đen " độc lập. Trong hộp này là tất cả mã và dữ liệu cần thiết . Khi
mã và dữ liệu liên kết với nhau như thế một đối tượng sẽ được tạo ra . Nói cách
khác, đối tượng là một dụng cụ hỗ trợ cho sự đóng kín .
Trong một đối tượng: mã , dữ liệu hoặc cả hai có thể là private ( riêng )
của đối tượng đó hay public ( chung ) . Mã hoặc dữ liệu riêng là thuộc về đối
tượng đó và chỉ được truy cập với bộ phận của đối tượng . Nghóa là mã hoặc dữ
liệu riêng không thể được truy cập bởi các phần khác của chương trình tồn tại
ngoài đối tượng . Khi dữ liệu là chung , các bộ phận khác của chương trình có
thể truy cập nó mặc dù nó được đònh nghóa trong một đối tượng . Các phần
chung của một đối tượng dùng để cung cập một giao diện có điều khiển cho các
phần riêng của đối tượng .
Nói chung , một đối tượng là một biến thuộc kiểu do người sử dụng đònh
nghóa . Mỗi lần ta đònh nghóa một đối tượng mới , ta tạo ra một loại dữ liệu mới .
Tính trừu tượng và đóng kín là hai khái niệm bổ sung nhau : trừu tượng

thì tập trung vào những hành vi có thể quan sát được của đối tượng , còn tính
đóng kín tập trung vào hiện thực cho hành vi đó . Tính đóng kín thường đạt được
thông qua che dấu thông tin , tức là quá trình che dấu mọi bí mật của đối tượng
mà không đóng góp vào đặc tính thiết yếu của đối tượng đó ; thông thường cấu
trúc của đối tượng được che dấu cũng như hiện thực của những method của đối
tượng .
Đặc biệt các thành viên có thể được đặt vào public , private , hay
protected của lớp . Thành viên được khai báo là public thì thấy được đối với mọi
client , những thành viên khai báo là private thì hoàn toàn đóng kín , và những
thành viên khai báo là protected thì chỉ thấy với chính lớp của nó và những lớp
con của nó . C++ cũng còn cho phép ký hiệu friend : là lớp cùng hợp tác được
phép thấy những phần private của nhau .
3. Hệ thống phân cấp (Hierachy) :
Hệ thống phân cấp là một sự sắp xếp theo thứ bậc hay sắp đặt các trừu
tượng . Có hai phân cấp quan trọng nhất trong một hệ thống phức tạp là :
chuyên biệt ( phân cấp " is a" ) , và kết hợp ( phân cấp " part of " ).
Thừa kế đơn giản : thừa kế là mối quan hệ " is a " . Thừa kế đònh nghóa
một mối quan hệ giữa các lớp , trong đó một lớp chia sẻ cấu trúc và hành vi đã
được đònh nghóa trong một lớp hay nhiều lớp ( tương ứng với thừa kế đơn giản
và đa thừa kế ) . Do đó thừa kế như là sự phân cấp của các trừu tượng , trong đó
một lớp con thừa kế một hay nhiều lớp cha .
Đa thừa kế đưa đến một số vấn đề phức tạp cho ngôn ngữ lập trình .
Những ngôn ngữ phải đưa ra hai vấn đề : xung đột giữa tên của các lớp cha
khác nhau , và thừa kế được lập lại nhiều lần . Sự xung đột xảy ra khi hai hay
nhiều lớp cha cung cấp một trường hay toán tử với cùng một tên . Sự thừa kế lập
lại xảy ra khi hai hay nhiều lớp cha cùng cấp cùng chia sẻ một lớp cha chung .
Và trong trường hợp như vậy , lớp lá có một bản sao hay nhiều bản sao cấu trúc
của lớp cha được dùng chung đó . Một số ngôn ngữ thì không cho phép thừa kế
lập lại , một số khác thì chọn hướng khác . C++ cho phép người lập trình quyết
đònh : virtual base class ( lớp cơ sở ảo ) được dùng để chỉ ra sự dùng chung của

cấu trúc lập lại , trong khi đó nonvirtural base class có có kết quả là trùng bản
sao ở lớp con .
4. Bản chất của lớp :
Ø Class ( lớp ) : là tập hợp của các đối tượng cùng có một cấu trúc chung hay
hành vi chung . Một đối tượng đơn giản chỉ là một instance của lớp .
Ø Interface của một lớp cho thấy bên ngoài của đối tượng và do đó nhấn mạnh
đến tính trừu tượng trong khi che dấu cấu trúc và hành vi bên trong .
Ø Implementation: của một lớp là cái nhìn bên trong của nó . Implementation
của một lớp cơ bản bao gồm tất cả các operation được đònh nghóa trong interface
. Chúng ta chia interface của lớp thành 3 phần :
Ø Public : là khai báo được truy xuất tới mọi client .
Ø Protected :là khai báo được truy xuất chỉ chính lớp đó , lớp con của nó , và
lớp friend.
Ø Private : là khai báo được truy xuất chỉ chính lớp đó và lớp friend .
5. Mối quan hệ giữa các lớp :
Phần lớn ngôn ngữ hướng đối tượng hỗ trợ trực tiếp một vài kết hợp của
những quan hệ sau đây :
Ø Association : gồm có quan hệ một - một , một -nhiều , nhiều -nhiều
Ø Inheritance ( thừa kế ) : là một lớp chia sẽ cấu trúc và hay hành vi được đònh
nghóa bởi một lớp ( đơn thừa kế ) hoặc nhiều lớp ( đa thừa kế ) .
Ø Aggregation ( kết tập ) :quan hệ kết tập giữa các lớp giống như quan hệ kết
tập giữa các đối tượng tương ứng với những lớp đó . Đa thừa kế thường bò lẫn
lộn với kết tập . Trong C++ thừa kế protected hay private dẽ dàng được thay thế
bởi kết tập protected hay private của instance của lớp cha , mà không mất tính
ngữ nghóa của nó .


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×