Mã bài: 20.8 Giới thiệu:
Lớp đối tượng được dùng để lưu trữ danh sách những thuộc tính và phương thức của đối tượng phân biệt trong một dự án lập trình.
Mục tiêu:
- Lập danh sách các lớp đối tượng ứng với từng chương trình cụ thể.
- Thiết kế các lớp đối tượng cho bài tập của nhóm.
- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm.
Nội dung chính:
7. Định nghĩa lớp đối tượng
Lập trình hướng đối tượng (Object-oriented programming – OOP), là kỹ thuật lập trình mà điều cốt yếu cần trừu tượng hóa các vấn đề thành các đối tượng (đối tượng có dữ liệu và các ứng xử). Kỹ thuật OOP có 4 tính chất
Tính trừu tượng (abstraction) mô tả một cách tổng quát hóa mà không
chi tiết thông tin (triển khai với interface, abstract)
Tính đóng gói (encapsulation) dữ liệu đối tượng cố gắng như nằm trong
một hộp đen, các thành phần khác bên ngoài đối tượng không trực tiếp tác động đến dữ liệu
Tính đa hình (polymorphism) đối tượng ứng xử khác nhau tùy trường
hợp cụ thể
Tính kế thừa (inheritance) đặc tính của lớp được kế thừa từ một lớp khác
Trong lập trình hướng đối tượng, lớp (class) là một kiểu dữ liệu nó định nghĩa một tập hợp các biến (thuộc tính) và phương thức (gọi chúng là các member – thành viên lớp). Từ lớp đó sinh ra các đối tượng (object), các đối tượng này còn gọi là instance of a class (bản triển khai của class), mỗi đối tượng
có giá trị dữ liệu cụ thể (lưu trong thành viên biến). Các phương thức (method) – định nghĩa các ứng xử của đối tượng – dựa theo dữ liệu của chúng.
Một lớp là một nhóm đối tượng có các thuộc tính chung. Nó là một mẫu hoặc
Một thực thể có trạng thái và hành vi được gọi là đối tượng. Ví dụ như máy pha
cà phê, xe đạp, xe máy, cái quạt...
Một đối tượng có ba đặc điểm:
Trạng thái: Đại diện cho dữ liệu (giá trị) của một đối tượng.
Hành vi: Đại diện cho hành vi (chức năng) của một đối tượng như gửi tiền, rút tiền, ...
Danh tính: Danh tính của một đối tượng thường được cài đặt thông qua một ID duy nhất. ID này được ẩn đối với user bên ngoài. Tuy nhiên nó được sử dụng trong nội bộ máy ảo JVM để định danh từng đối tượng.
Ví dụ: Bút chì là một đối tượng. Tên của nó là A, màu trắng, ... được gọi là trạng thái. Nó được sử dụng để viết, viết được gọi là hành vi.
Đối tượng(Object) là một thể hiện của một lớp(Class). Lớp là một mẫu hoặc
thiết kế từ đó các đối tượng được tạo ra. Vì vậy, đối tượng là các thể hiện (kết quả) của một lớp.
Ví dụ: Một lớp mô tả chung về nhân viên, đặt tên là nhanvien, thì bên trong nó
có thể định nghĩa các thành viên dữ liệu (biến) như: manv, tennv, ngaysinh, gioitinh ... Cũng có thể định nghĩa các thành viên hàm (phương thức) để mô tả ứng xử của nó như: khoitao(), them() ...
Khi có định nghĩa lớp nhanvien, bạn có thể tạo ra đối tượng cụ thể của nó mà mỗi đối tượng có những dữ liệu khác nhau như Nhân viên A, Nhân viên
B ...
2. Khai báo lớp đối tượng
Để tạo được lớp đối tượng trong ngôn ngữ lập trình C# trên phần mềm ứng dụng lập trình Visual Studio chúng ta cần thực hiện các việc sau:
Hình 8.1. Màn hình để chọn thêm một lớp mới vào Project
Hình 8.2. Màn hình đặt tên cho lớp đối tượng
Cú pháp, ví dụ khai báo lớp
Khi giải quyết các vấn đề thực tiễn, các vấn đề cần giải quyết bạn cần tìm cách trừu tượng hóa nó thành vấn đề tổng quát, như nó có các đặc tính gì, ứng xử của
nó ra sao ... Từ đó mới có thể định nghĩa ra lớp để hiện thực hóa vấn đề trừu tượng được.
Cú pháp cơ bản như sau:
<Access Modifiers> class Class_Name
{ // khai báo các thành viên dữ liệu (thuộc tính – biến)
// khai báo các thành viên hàm (phương thức)
}
Trong đó Access Modifiers có thể là các từ khóa sau:
Bảng 8.1. Bảng mô tả các từ khóa định nghĩa lớp
Từ khóa Giải thích
Public Truy xuất mọi nơi
Protected Truy xuất trong nội bộ lớp hoặc trong các lớp con
Internal Truy xuất trong nội bộ chương trình (Assembly)
protected internal Truy xuất nội trong chương trình (assembly) và
trong các lớp con
private (mặc định) Chỉ được truy xuất trong nội bộ lớp
Ví dụ: Khai báo một lớp có tên là Box gồm các thuộc tính: chiều dài, chiều rộng, chiều cao.
Khai báo và khởi tạo thành viên thuộc tính (biến) tương tự cách khai báo biến thông thường nhưng có sử dụng thêm Access Modifiers để quy định cấp
độ truy cập.
Câu hỏi ôn tập và bài tập
1. Tạo lớp đối tượng sinh viên bao gồm các thông tin: masv (mã sinh viên), tennv (tên sinh viên), ngaysinh (ngày sinh), diachi (địa chỉ)
2. Tạo lớp đối tượng đồng hồ bao gồm các thông tin: thoigian, gio, phut, giay.
3. Tạo lớp đối tượng sản phẩm bao gồm các thông tin: masp (mã sản phẩm), tensp (tên sản phẩm), gia (giá), ngaynhap (ngày nhập), ngayxuat (ngày xuất).