410 likes | 600 Views
Bài 4: Lập trình hướng đối tượng với JAVA. 1.Tổng quan lập trình hướng đối tượng 2.Xây dựng lớp đối tượng 3.Package. 1. Tổng quan lập trình hướng đối tượng. Khái niệm Các đặc trưng cơ bản. Khái niệm.
E N D
Bài 4: Lập trình hướng đốitượng với JAVA 1.Tổng quan lập trình hướng đối tượng 2.Xây dựng lớp đối tượng 3.Package
1. Tổng quan lập trình hướng đối tượng • Khái niệm • Các đặc trưng cơ bản
Khái niệm • Là phương pháp thiết kế và phát triển phần mềm dựa trên kiến trúc lớp (class) và đối tượng (object) • Mô hình hóa các đối tượng trong thế giới thực thành các đối tượng trong chương trình
Các thông tin về đối tượng – Đối tượng nhân viên • Mã nhân viên • Họ tên • Giới tính • Ngày sinh • Địa chỉ • Hệ số lương • …
Lớp đối tượng – Class là một khái niệm trong Lập trình hướng đối tượng mô tả cho những thực thể có chung tính chất và hành vi. Class định nghĩa những thuộc tính và hành vi được dùng cho những đối tượng của lớp đó – Kết quả của sự TRỪU TƯỢNG HOÁ (Abstraction) các đối tượng: • Cùng loại • Cùng các thông tin mô tả về đối tượng
Các đặc trưng cơ bản • Tính trừu tượng (Abstraction) – Lớp (Class) là một khái niệm trừu tượng • Ví dụ: Thông tin của nhân viên được mô tả trong lớp Nhân viên • Ví dụ: Nhân viên “Nguyễn Văn A” là một thể hiện cụ thể của lớp Nhân viên và Đối tượng Nhân viên
->Từ những đối tượng giống nhau, ta có thể trừu tượng hoá thành 1 lớp • Nhân viên Nguyễn Văn A NHÂN VIÊN MaNV Họ và Tên Ngày Sinh Địa chỉ Giới tính
Tính đóng gói (Encapsulation) – Mỗi lớp được xây dựng để thực hiện một nhóm chức năng đặc trưng của riêng lớp đó Ví dụ: – Muốn thực hiện các hàm toán học là lớp Math – Muốn xử lý chuỗi là lớp String
Tính kế thừa (Inheritance) – Tính chất này cho phép xây dựng những lớp mới dựa trên những lớp sẵn có (lớp Con kế thừa lớp Cha) – Lớp Con có khả năng bổ sung, mở rộng những tính năng mới dựa trên những phần sẵn có ở lớp Cha • Ví dụ: Lớp NhanVien mô tả thông tin chung của nhân viên Lớp NhanVien_VanPhong: nhân viên văn phòng cũng là một nhân viên và kế thừa từ lớp NhanVien, và có thêm những thông tin đặc trưng của nhân viên văn phòng
2. Xây dựng lớp đối tượng • Tạo lớp và đối tượng • Biến thực thể • Phương thức • Khởi tạo
Tạo lớp • Một lớp dùng định nghĩa một kiểu dữ liệu mới Cú pháp khai báo lớp class <Tên_lớp> { ... }
Ví dụ: khai báo lớp tam giác • class TamGiac { // các khai báo trong lớp tam giác }
Qui tắc đặt tên lớp • Tên lớp nên là một danh từ • Tên lớp có thể gồm nhiều từ, ký tự đầu tiên của mỗi từ nên viết hoa • Tên lớp nên đặt đơn giản, dễ nhớ, và có ý nghĩa • Tên lớp không được trùng với từ khóa của Java • Tên lớp không thể bắt đầu bằng số, nhưng có thể bắt đầu bằng dấu ‘$’ và dấu gạch dưới ‘_’
Hàm dựng (constructor) • Là phương thức (method) đặc biệt dùng để khởi tạo các biến thành viên của lớp • Tên của hàm dựng trùng với tên lớp và hàm dựng không có kiểu trả về • Được gọi tự động khi đối tượng được tạo ra • Có hai loại hàm dựng: – Hàm dựng có tham số – Hàm dựng mặc định
Ví dụ: khai báo hàm dựng cho lớp tam giác vừa tạo class TamGiac { // hàm dựng mặc định public TamGiac() { } // các khai báo khác }
Tạo đối tượng • Đối tượng được khai báo tượng trưng cho lớp • Quá trình tạo đối tượng cho lớp gồm hai bước: − Đầu tiên, một biến có kiểu của lớp được khai báo, biến này chưa được định nghĩa là một đối tượng. Nó chỉ là biến tham chiếu đến đối tượng − Tiếp theo, một bản copy đối tượng của lớp trên bộ nhớ được tạo ra và được gán cho biến. Điều này được thực hiện bằng toán tử new
Toán tử new cấp phát bộ nhớ động cho đối tượng và trả về tham chiếu tới nó • Tất cả các đối tượng của lớp phải được cấp phát động
Biến thực thể • Mô tả trạng thái của đối tượng • Mỗi đối tượng đều có 1 bản sao của biến thực thể
Ví dụ: khai báo biến thực thể mô tả thông tin lớp TamGiac class TamGiac { // a, b, c là 3 biến thực thể mô tả thông tin 1 //đối tượng thuộc lớp tam giác public double a,b,c; // hàm dựng mặc định public TamGiac(){} }
Ví dụ: khai báo phương thức tính chu vi cho lớp tam giác class TamGiac{ // biến thực thể public double a,b,c; // hàm dựng mặc định public TamGiac() {} // phương thức tính chu vi public double tinhChuVi() { return a+b+c; } }
Truyền tham số cho phương thức • Truyền tham trị: – Được sử dụng cho các kiểu dữ liệu cơ bản, mọi thay đổi diễn ra bên trong phương thức không ảnh hưởng đến giá trị truyền vào • Truyền tham chiếu: – Thay đổi bên trong phương thức sẽ làm thay đối giá trị của tham số truyền vào – Tham số của phương thức có kiểu dữ liệu là tham chiếu sẽ được truyền theo kiểu tham trị chứ không phải kiểu tham chiếu. Ví dụ: khi phương thức kết thúc, tham chiếu này vẫn trỏ đến cùng đối tượng khi truyền vào
Phương thức có tham số thay đổi • Tham số thay đối cho phép triệu gọi phương thức với số tham số khác nhau. • Cú pháp Kiểu_dữ_liệu Tên_phương_thức (Kiểu_dữ_liệu ... Tên_tham_so) { // các lệnh }
Ví dụ: public static void Test(int … a){ for (int i : a) System.out.println(i); } public static void main(String args[]){ Test(1,2,3,4,5,6); }
3. Package • Một nhóm các lớp (classes) và giao diện (interfaces) được tổ chức thành một đơn vị quản lý theo hình thức không gian tên gọi là package • Các loại package trong Java: – Package được định nghĩa trước – Package do người dùng định nghĩa
Chỉ định từ truy xuất cho biến và phương thức • Các từ khóa cho việc thay đổi quyền truy xuất – volatile: cho phép thay đổi thông tin của biến trong quá trình sử dụng – final: cho phép thay đổi thông tin của biến chỉ một lần duy nhất / không cho phép ghi đè hàm – native: chỉ ra hàm không được viết bằng ngôn ngữ – transient: chỉ ra một biến không thể serializable