OOP221

Câu 3: Thế nào là tính đóng gói của LTHDT. Vai trò của đóng gói là gì và thực hiện ntn trong  Java?

Trả lời:

Đóng gói là kết quả của quá trình trừu tượng hóa đối tượng.

Đóng gói: thông tin và hoạt động bên trong một đối tượng có thể được che khỏi thế giới bên ngoài bằng cách che giấu thông tin và thực hiện ẩn.

Vai trò của đóng gói:

·        Cho phép những người sử dùng chỉ được phép truy nhập và sử dụng những gì quy định cho họ. Một phần class sẽ được che giấu và không cho người dùng quyền truy nhập.

·        Cho phép người thiết kế các class có khả năng thay đổi hay định nghĩa lại class mà vẫn chắc chắn rằng không ảnh hưởng tới chương trình của những người sử dụng lại class này.

Java sử dụng các từ khóa để xác định chức năng truy nhập của các thông tin dữ liệu bên ngoài lớp: public, private và protected.

Câu 4: Ý nghĩa và vai trò của tính đa hình? Đa hình luôn đi kèm vs tính năng gì của LTHDT?

Trả lời:

Khái niệm về đa hình: là hiện tượng các đối tượng thuộc các lớp khác nhau có khả năng hiểu cùng một thông điệp theo các cách khác nhau.

Ý nghĩa của đa hình: Khi xây dựng các lớp kế thừa trong LTHDT có thể xảy ra trường hợp trong lớp kế thừa và lớp cơ sở cùng định nghĩa một hành vi (hàm) nào đó có giao diện giống nhau. Khi ta gọi hàm này, chương trình dịch không thể xác định là ta gọi hành vi nào, hành vi được định nghĩa trong lớp cơ sở hay lớp kế thừa. OOP linh động và mềm dẻo trong mỗi trường hợp, dễ dàng mở rộng và sử dụng code.

Vai trò của đa hình:

·        Nguyên lý chồng hàm: giúp LTV có khả năng xây dựng các hàm có tên giống hệt nhau nhưng có các đối số khác nhau: khác nhau về số lượng và kiểu dữ liệu của các đối số.

·        Nguyên lý chồng toán tử: LTV có khả năng định nghĩa những toán tử đã tồn tại tại trong các NNLT tương ứng trên các dữ liệu mới – các đối tượng thuộc các lớp mà người lập trình muốn xây dựng.

Đa hình luôn đi kèm với sự kế thừa  giữa các lớp. Các phương thức tổng quát hóa nên có mặt ở  lớp cơ sở, nhưng nội dung của nó chỉ được xác định ở các lớp dẫn xuất cụ thể.

Câu 7: Trừu tượng và giao diện

-         Giống nhau:

    Lớp con đều bắt buộc phải ghi đè hết  phương thức trừu tượng

    Đều có thể chứa phương thức chỉ có chữ ký và chỉ  định truy cập

    Đều không thể hiện hóa được.

-         Khác nhau:

Abstract

Interface

-         Vẫn chứa thuộc tính và phương thức cụ thể

-         Đơn kế thừa

-         Có thể chứa các phương thức protected  và static

-         Có thể chứa các thuộc tính final  và non-final

-         Mỗi lớp chỉ kế thừa một lớp trừu tượng

-         Cần có ít nhất một phương thức abstract

-         Chỉ chứa phương thức trừu tượng

-         Đa kế thừa

-         Chỉ có thể chứa  thuộc tính hằng.

-         Một lớp có thể thực thi nhiều giao diện

-         Điểm mạnh:   việc thay đổi sửa chữa dễ dàng

-         Nhược điểm:

    Abstract:  chỉ có đơn kế thừa và phải cài đặt các thuộc tính trừu tượng

    Interface: không triển khai được các phương thức không là pt trừu tượng

Bắt buộc phải cài đặt hết các phương thức.

Câu 8:

-         Mô tả ngắn gọn mỗi quan hệ giữa lớp và đối tượng

    Một lớp là một thiết kế hay mẫu cho các đối tượng cùng kiểu

    Lớp định nghĩa các thuộc tính và các phương thức chung cho tất cả  các đối tượng của cùng một loại nào đó.

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

-         Quan hệ giữa các đối tượng

Toàn bộ hệ thống  được xây dựng từ rất nhiều lớp và đối tượng. hoạt động của hệ thống thu được thông qua sự phối hợp của các đối tượng trong hệ thống.

Các mỗi quan hệ cung cấp các đường dẫn đề các đối tượng tương tác với nhau. Có 2 loại quan hệ giữa các đối tượng với nhau

    Liên kết (link)

    Kết tập

Câu 1 : Phương thức khởi tạo và phương thức thông thương có gì khác nhau? Trình bày về chồng phương thức khởi tạo? tại sao phải chồng phương thức khởi tạo?

 Trả lời :

* Điểm khác nhau giữa phương thức khởi tạo và phương thức thông thường :

- Phương thức khởi tạo phải có cùng tên với lớp

- Phương thức khởi tạo phải có thuộc tính public

- Phương thức khởi tạo không có thuộc tính trả về và không cần khai báo void

-Phươgn thức khởi tạo được gọi ngay sau khi đối tượng được tạo ra bởi toán tử new

* Chồng phương thức khời tạo :

    Giống các phương thức thành phần, các phương thức khởi tạo có thể nạp chồng với những nội dung thực hiện khác nhau. Chẳng hạn trong 1 lớp ngoài hàm tạo lập mặc định (Ko có tham biến ) còn có thể xây dựng các hàm tạo lập có tham biến

* Lí do phải chồng phương thức khởi tạo

   Do mỗi đối tượng có những dữ liệu khác nhau ( Có đối tượng nhận những giá trị mặc định của thuộc tính, có đối tượng nhận các dữ liệu được khởi tạo từ người sử dụng ) nên cần phải nạp chồng phương thức khởi tạo để đáp ứng.

Câu 2 : Trình bày các kỹ thuật để tái sử dụng mã nguồn ? So sánh các kỹ thuật đó ?

Trả lời :

* Có 2 kỹ thuật để tái sử dụng mã nguồn trong LTHĐT :

- Kết tập : Tạo các đối tượng của cá lớp có sẵn trong lớp mới là sự kết tập giữa lớp mới định nghĩa với các lớp cũ đã có

- Kế thừa : Xây dựng các lớp mới dựa trên các lớp đã có sẵn, chúng ta chỉ cần thêm vào những gì chưa có, những gì chưa đủ.

* Sự khác nhau :

   Trong kết tập tái sử dụng thông qua lại đối tượng, trong kế thừa tái sử dụng thông qua lớp .

Câu 5,6 : Cơ chế thực hiện ẩn và nguyên lý đóng gói

Trả lời :

* Đóng gói :

- Đóng gói là kết quả của quá trình trừu tượng hóa dữ liệu, thể  hiện của cơ chế thực hiện ẩn.

- Đối tượng = thuộc tính + phương thức

- Che giấu thông tin và hoạt động bên trong của đối tượng, thực hiện ẩn.

* Cơ chế thực hiện ẩn :

  Trong LTHĐT phân biệt hai công việc là tạo ra lớp đối tượng và sử dụng lớp đối tượng đó nên 2 nguyên nhân dẫn đến sự cần thiết thực hiện ẩn là :

- Chỉ cho phép người sử dụng truy nhập và sử dụng những  gì đã quy định cho họ, một phần còn lại được che giấu không cho người sử dụng được quyền truy nhập.

- Khả năng này cho phép những người thiết kế class thay đổi hay định nghĩa lại mà vẫn không ảnh hưởng đến chương trình của người sử dụng, tăng tính mềm dẻo của chương trình phần mềm.

* Các từ khóa xác định khả năng truy nhập từ bên ngoài :

- Public : Các thành phần của đối tượng có thể được sử dụng / truy nhập từ bất kỳ đối tượng nào

- Private : Các thuộc tính của đối tượng không được phép sử dụng từ các đối tượng bên ngoài

- Protected : Các thành phần có thể được truy nhâp từ các đối tượng bên ngoài lớp nhưng phải thuộc về 1 lớp nào đó kế thừa của lớp hiện thời.

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: #tam