Hỗ trợ đào tạo

PRO192 - Lập trình hướng đối tượng

8Chủ đề
0Câu hỏi

PRO192 - Lập trình hướng đối tượng (Object-Oriented Programming) là môn học 3 tín chỉ của Đại học FPT, học sau PRF192, dạy tư duy và kỹ thuật hướng đối tượng bằng ngôn ngữ Java: xây dựng đối tượng tái sử dụng được, đóng gói dữ liệu và logic trong một lớp, kế thừa lớp và hiện thực đa hình. Nội dung môn học bao quát trọn bộ chương trình 60 buổi theo chín chuẩn đầu ra CLO1 đến CLO9: nhập môn hướng đối tượng (so sánh lập trình cấu trúc với lập trình hướng đối tượng, thuật ngữ đối tượng, bốn đặc trưng trừu tượng hoá - đóng gói - kế thừa - đa hình, cài đặt JDK và môi trường phát triển); nền tảng ngôn ngữ Java (biến, kiểu dữ liệu nguyên thuỷ và kiểu tham chiếu, ép kiểu tự động và tường minh, phạm vi biến, toán tử số học - quan hệ - logic - trên bit cùng độ ưu tiên, câu lệnh rẽ nhánh if-else và switch-case, vòng lặp for - while - do while, phương thức và truyền tham số, mảng và ArrayList, String và StringBuffer, nhập xuất chuẩn, cấp phát bộ nhớ động và bộ thu gom rác); lập trình hướng đối tượng (khái niệm lớp và đối tượng, trừu tượng hoá dữ liệu, định nghĩa lớp với thành viên dữ liệu và thành viên hàm, phương thức khởi tạo, từ khoá this, sơ đồ lớp UML, bốn mức truy cập public - protected - default - private, đóng gói với getter và setter, kế thừa và lớp dẫn xuất, từ khoá super, ép kiểu đối tượng và toán tử instanceof, đa hình, nạp chồng và ghi đè phương thức); lớp trừu tượng và giao diện (lớp abstract và các loại thành viên của nó, interface và thành viên của interface, phương thức default, lớp ẩn danh và lớp lồng nhau, so sánh interface với abstract class và class thường); ngoại lệ (khái niệm lỗi và ngoại lệ, khối try - catch - finally, throw và throws, cây phân cấp ngoại lệ, checked và unchecked exception, assertion); mảng đối tượng (khai báo, thêm, sửa, xoá, tìm kiếm và sắp xếp trên mảng đối tượng, phân biệt mảng đối tượng với mảng biến, tham số mảng và đối số mảng); tập hợp trong Java (tổng quan Collections Framework, List với ArrayList và LinkedList, Set với HashSet và TreeSet, Map với HashMap và TreeMap, so sánh List - Set - Map và các phương thức thao tác); cùng vào ra tệp (luồng vào ra, đọc ghi tệp văn bản, tệp nhị phân, phân biệt Text - UTF - Unicode, ghi và đọc đối tượng xuống tệp). Môn học có 6 bài lab, 2 progress test, một assignment và một bài thi thực hành 85 phút.

Chủ đề học tập

Lập trình hướng đối tượng

PRO192 Chương 1 - Nhập môn hướng đối tượng

Ứng với CLO1, buổi 1-2. Chương mở đầu đặt lập trình hướng đối tượng cạnh lập trình cấu trúc đã học ở PRF192 để làm rõ vì sao cần một mô hình khác: chương trình cấu trúc tổ chức theo hàm và dữ liệu tách rời nên khó mở rộng và khó tái sử dụng khi bài toán lớn dần, còn hướng đối tượng gom dữ liệu cùng hành vi vào một đơn vị. Nội dung gồm khái niệm ngôn ngữ lập trình và mô hình lập trình, ưu nhược điểm của hướng đối tượng so với lập trình cấu trúc, bộ thuật ngữ đối tượng gồm lớp, đối tượng, thuộc tính, phương thức và thông điệp, cùng bốn đặc trưng nền tảng là trừu tượng hoá, đóng gói, kế thừa và đa hình được giải thích song song giữa ví dụ đời thực và ví dụ lập trình. Phần cuối là cài đặt bộ công cụ phát triển JDK và môi trường lập trình để chạy chương trình Java đầu tiên.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Lập trình hướng đối tượng

PRO192 Chương 2 - Nền tảng ngôn ngữ Java

Ứng với CLO2 đến CLO4, buổi 3-12. Phần cú pháp nền gồm khai báo biến, kiểu dữ liệu nguyên thuỷ và kiểu tham chiếu, quy tắc đặt tên, chuyển kiểu tự động và ép kiểu tường minh, phạm vi biến, các nhóm toán tử số học - quan hệ - logic - trên bit cùng thứ tự ưu tiên khi tính biểu thức. Phần cấu trúc điều khiển gồm rẽ nhánh if-else và switch-case, vòng lặp for, while và do-while cùng tiêu chí chọn dạng phù hợp. Phần phương thức gồm khai báo, giá trị trả về và cơ chế truyền tham số trong Java. Phần cấu trúc dữ liệu cơ bản gồm mảng và ArrayList, lớp String với tính bất biến cùng StringBuffer khi cần chuỗi thay đổi được. Phần nhập xuất chuẩn giới thiệu đọc dữ liệu từ bàn phím và xuất ra màn hình. Khép lại bằng cấp phát bộ nhớ động và vai trò của bộ thu gom rác.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Lập trình hướng đối tượng

PRO192 Chương 3 - Lập trình hướng đối tượng: lớp, đóng gói, kế thừa và đa hình

Ứng với CLO5 đến CLO7, buổi 13-26, là chương dài và quan trọng nhất của môn. Phần khái niệm gồm lớp và đối tượng cùng cách phân biệt hai thứ, trừu tượng hoá dữ liệu như một kỹ thuật thiết kế. Phần định nghĩa lớp gồm thành viên dữ liệu và thành viên hàm, phương thức khởi tạo và cách chọn số lượng constructor, từ khoá this, cách đọc và dựng sơ đồ lớp UML. Phần đóng gói gồm bốn mức truy cập public, protected, mặc định và private, lý do che giấu thuộc tính và cung cấp getter cùng setter. Phần kế thừa gồm quan hệ lớp cha và lớp con, lớp dẫn xuất, từ khoá super và thứ tự gọi constructor của lớp cha, ép kiểu đối tượng cùng toán tử instanceof, mức truy cập giữa các thành viên qua kế thừa. Khép lại bằng đa hình với nạp chồng và ghi đè phương thức.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Lập trình hướng đối tượng

PRO192 Chương 4 - Lớp trừu tượng và giao diện

Ứng với CLO7, buổi 27-30. Phần lớp trừu tượng trình bày abstract class là gì, khác lớp thường ở chỗ nào và vì sao không tạo được đối tượng trực tiếp từ nó; các loại thành viên được phép và không được phép trong lớp trừu tượng; phương thức trừu tượng chỉ khai báo chữ ký và bắt buộc lớp con hiện thực; các mức truy cập áp dụng cho lớp trừu tượng và thành viên của nó. Phần giao diện trình bày interface là gì, các loại thành viên gồm hằng, phương thức trừu tượng và phương thức default, vì sao một lớp có thể hiện thực nhiều interface trong khi chỉ kế thừa được một lớp. Phần so sánh đặt cạnh nhau ba khái niệm interface, abstract class và class thường theo mục đích sử dụng và cú pháp. Chương cũng giới thiệu lớp ẩn danh và lớp lồng nhau cùng tình huống dùng chúng.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Lập trình hướng đối tượng

PRO192 Chương 5 - Ngoại lệ và xử lý ngoại lệ

Ứng với CLO4, buổi 31-32. Phần khái niệm phân biệt lỗi biên dịch, lỗi logic và ngoại lệ lúc chạy, giải thích ngoại lệ là gì, vì sao cần cơ chế ngoại lệ thay vì kiểm tra mã trả về ở khắp nơi, và đặt ngoại lệ ở đâu trong chương trình cho hợp lý. Phần xử lý trình bày khối try - catch - finally với vai trò của từng khối, bắt nhiều loại ngoại lệ theo thứ tự từ hẹp tới rộng, và lý do khối finally luôn được thực thi kể cả khi có return. Phần khai báo và ném ngoại lệ trình bày hai từ khoá throw để ném một ngoại lệ cụ thể và throws để khai báo phương thức có thể ném ngoại lệ ra ngoài, cùng phân biệt ngoại lệ bắt buộc kiểm tra với ngoại lệ không bắt buộc. Chương cũng giới thiệu assertion và tình huống nên dùng nó thay cho ngoại lệ.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Lập trình hướng đối tượng

PRO192 Chương 6 - Mảng đối tượng

Ứng với CLO8, buổi 35-38. Đây là chương nối kiến thức lớp và đối tượng với kỹ năng quản lý một tập dữ liệu, cũng là dạng bài chính của assignment và bài thi thực hành. Nội dung xoay quanh năm thao tác cơ bản trên mảng đối tượng: thêm phần tử mới, cập nhật phần tử đã có, xoá phần tử, tìm kiếm theo tiêu chí và sắp xếp theo một hoặc nhiều trường. Phần phân biệt làm rõ khác nhau giữa mảng đối tượng và mảng biến kiểu nguyên thuỷ: mỗi ô của mảng đối tượng chỉ giữ tham chiếu nên có thể null, và việc gán hai phần tử cho nhau không tạo bản sao. Phần truyền mảng cho phương thức phân biệt tham số mảng với đối số mảng và hệ quả là phương thức sửa được nội dung mảng của lời gọi. Kèm theo là kỹ thuật xây dựng chương trình dạng menu để thao tác trên danh sách đối tượng.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Lập trình hướng đối tượng

PRO192 Chương 7 - Tập hợp trong Java (Collections)

Ứng với CLO9, buổi 39-44. Phần tổng quan giới thiệu Collections Framework, vì sao dùng tập hợp thay cho mảng khi số phần tử thay đổi, và cấu trúc phân cấp các giao diện chính. Phần List trình bày đặc điểm có thứ tự và cho phép trùng lặp, hai hiện thực ArrayList và LinkedList cùng đánh đổi giữa truy cập theo chỉ số và chèn xoá ở giữa, các phương thức thêm - lấy - xoá - duyệt. Phần Set trình bày đặc điểm không cho phép phần tử trùng, hai hiện thực HashSet không bảo đảm thứ tự và TreeSet sắp xếp tự nhiên, vai trò của phương thức so sánh bằng và mã băm. Phần Map trình bày cấu trúc khoá - giá trị, khoá không trùng, HashMap và TreeMap, các phương thức đặt - lấy - kiểm tra tồn tại - duyệt tập khoá. Khép lại bằng bảng so sánh ba nhóm List, Set và Map theo tình huống dùng.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Lập trình hướng đối tượng

PRO192 Chương 8 - Vào ra tệp (File I/O)

Ứng với CLO4 đến CLO8, buổi 47-50, là chương cuối được giảng của môn. Phần luồng dữ liệu giới thiệu khái niệm stream và phân biệt luồng vào với luồng ra, luồng ký tự với luồng byte. Phần tệp văn bản trình bày cách mở, đọc từng dòng, ghi và đóng tệp, cùng cách duyệt thư mục và kiểm tra sự tồn tại của tệp. Phần mã hoá ký tự phân biệt tệp văn bản thuần, UTF và Unicode cùng lý do phải chỉ định bảng mã khi đọc ghi tiếng Việt. Phần tệp nhị phân trình bày đọc ghi theo byte và tình huống nên dùng thay cho tệp văn bản. Trọng tâm ứng dụng của chương là ghi một đối tượng hoặc một danh sách đối tượng xuống tệp rồi đọc ngược lại vào chương trình, tức là làm cho dữ liệu tồn tại qua các lần chạy — kết hợp trực tiếp với chương mảng đối tượng và chương tập hợp.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày