Một số khái niệm LT hướng đối tượng cơ bản.

câu 1: Lý do cơ bản của việc xây dựng nên phương pháp hướng đối tượng đối với việc thiết kế và xây dựng chương trình đảm bảo là:

  1. khi chương trình phát triển phức tạp thì nó vẫn được đảm bảo
  2. giúp tăng năng suất, đơn giản hóa độ phức tạp khi bảo trì cũng như mở rộng phần mềm bằng cách cho phép  các lập trình viên tập trung vào các đối tượng phần mềm ở bậc cao hơn.
  3. che dấu thồng tin. làm cho chương trình là trong suốt với người sử dụng. nhờ tính đóng gói(Tóm lược)

câu 2: Những khái niệm cơ bản nào được sử dụng trong lập trình hướng đối tượng:

  1. Tóm lược – chình là tính đóng gói
  2. kế thừa
  3. tương ứng bội – chính là tính đa hình

câu 3: Tính tương ứng bội (đa hình) là : Các đối tượng gần nhau thi hành các phương thức cùng tên, cùng kiểu trả về nhưng hoàn toàn không bị nhầm lẫn. Câu trả lời này có thể giải thích như sau: Tính đa hình 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ể so sánh như việc gọi các hàm bên trong của một đố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 điệ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. Tính này có được là nhờ cách xây dựng các hàm chồng, chồng toán tử hay các hàm ảo nữa. Nguyên tắc của các hàm chồng là phải có các đối số khác nhau (dữ liệu hoặc số lượng các đối số khác nhau.) Đặc biệt Hàm mẫu(template function) cũng có thể bị quá tải hàm đó.

câu 4: Tính đóng gói là: Kết hợp, định vị và sử ký dữ liệu trong phạm vi một đối tượng giống như trong một thể thống nhất. Có thể giải thích như sau: Đóng gói (encapsulation) và che dấu thông tin (information 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.

câu 5: Muốn khai báo mảng con trỏ lên đối tượng kiểu ” t ” ta viết như sau: t *ptr[];

Khai báo một hằng con trỏ lên số nguyên: const int * pci;

câu 6: Toán tử không có trong đoạn mã code sau là gì?

int i:

int * pi;

int * const cp = & i;

const int ci = 6;

const int * pci;

const int * const cpci = & ci; (hàm này thực chất khai báo một con trỏ có kiểu số nguyên và là hằng số sau đó  cho nó chỉ đến ô nhớ ci; tức là ghán cho nó chứa địa chỉ của ci rồi).

là: cpci++; // đây là một con trỏ.

Có thể giải thích như sau: Ta có thể tăng một con trỏ lên chứ không thể tăng địa chỉ lên(như thể dời nhà qua nhà hàng xóm ấy) Mà nhận thấy cpci đã được gán bằng địa chỉ của biến ci rồi!

câu 7: Con trỏ “this” là con trỏ chỉ đến đối tượng. Phương thức cho trước của lớp là thành viên của đối tượng đó.Con trỏ này không xuất hiện một cách tường minh. Tham số truyền cho con trỏ lúc này là địa chỉ của đối tượng. nếu đối tượng là Obj thì chúng ta có thể hiểu rằng: this->x sẽ tương đương với Obj.x.

câu 8: Để truy xuất tên của một biến trong một file .cpp khác (cùng project) chúng ta sử dụng từ khoá: extern (viết trước khai báo biến đó Vd: extern int a;)

câu 9: Các phương thức của lớp dẫn xuất có thể bao trùm các phương thức của lớp cơ sở, số đối số và kiểu đối số của lớp dẫn xuất phải trùng với lớp cơ sở, kể cả kiểu trả về cũng cần giống nhau. Khi khai báo con trỏ của lớp dẫn xuất nó không thể truy xuất đến các thuộc tính của lớp cơ sở nhưng chúng ta có thể cho con trỏ của lớp cơ sở truy xuất đến lớp dẫn xuất.

câu 10: Các thành phần và thuộc tính của lớp được khai báo với từ khoá protect thì được truy xuất bới các thành phần của lớp, các thành phần bạn, và các thành phần của lớp dẫn xuất. Với từ khoá public thì được truy xuất bởi các thành phần của mọi lớp. Với từ khoá private thì chỉ có các thành phần của lớp được truy xuất!

câu 11: Có thể truy xuất đến các thuộc tính tĩnh của lớp bằng con trỏ, tên lớp, hay các đối tượng bởi vì thuộc tính tĩnh hay còn gọi là các biến tĩnh này là các biến dùng chung cho tất cả các đối tượng trong lớp, mọi thao tác trên nó đều có thể làm thay đổi giá trị của nó. Nhưng các thành thuộc tính không tĩnh thì chỉ có thể truy xuất bằng tên của đối tượng hoặc con trỏ trỏ lên đối tượng đó thôi à.

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s