Please enable JavaScript.
Coggle requires JavaScript to display documents.
Bài 7: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (1.Tổng quan về lập trình hướng đối…
Bài 7: LẬP TRÌNH
HƯỚNG ĐỐI TƯỢNG
1.Tổng quan về lập trình hướng đối tượng
Tóm tắt sự tiến hóa của các mô hình
Khái niệm
Lập trình hướng đối tượng (Object-Oriented Programming- OOP) là một 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)
Đối tượng
Là những thực thể tồn tại trong thế giới thực
Ví dụ:
Con người
-Sinh viên Nguyễn Văn A
-Nhân viên Trần Thị B
Đồ vật:
-Phòng học C41
-Máy in samsung
Chứng từ:
-Hóa đơn HD01
-Đơn đặt hàng DH_0973
Ví dụ: một chiếc xe hơi cụ thể với các thông tin về xe
-Biển số xe
-Hiệu xe
-Màu sơn
-Hãng sản xuất
-Năm sản xuất
Tiếp cận hướng đối tượng
Là kỹ thuật cho phép biểu diễn tự nhiên các đối tượng trong thực tế với các đối tượng bên trong chương trình
đối tượng trong thực tế -> đối tượng trong chương trình
Nhân cách hóa đối tượng
hệ thống thực tế -> hệ thống tin học
Ví dụ: bài toán phương trình bậc hai
Ví dụ: tính tiền lương cho nhân viên
Lớp đối tượng
Là một khái niệm trong lập trình hướng đối tượng, mô tả 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 HÓA (Abstraction) các đối tượng:
Cùng loại
Cùng các thông tin mô tả về đối tượng
Ví dụ: lớp nhân viên
2.Xây dựng lớp đối tượng (class)
Tạo lớp
Cấu trúc của một lớp bao gồm từ khóa class, tên lớp, cặp dấu {} để bao lại các câu lệnh bên trong lớp.
Bên trong lớp có các thuộc tính và các phương thức của lớp.
Cú pháp:
class <tên lớp>{
//khai báo các thuộc tính của lớp
//gán và lấy giá trị của thuộc tính
//các phương thức của lớp
}
Khai báo các thuộc
tính của lớp
Thuộc tính: thành phần lưu trữ các
tính chất, đặc điểm của đối tượng.
Ứng với mỗi thuộc tính: khai báo một biến bắt đầu bằng từ khóa var để lưu trữ giá trị của chúng.
Cú pháp: <?php
var < thuộc tính 1>;
...
?>
Lớp do người dùng tự xây dựng
Khai báo các thuộc tính của lớp
Chú ý: khi khai báo một lớp, có thể thiết lập những giá trị mặc định ban đầu cho tất cả các thuộc tính được tạo ra từ lớp đó.
<?php
class phan_so{
var $tu_so = 1;
var $mau_so = 1;
}
?>
Các phương thức của lớp
Là chức năng mà đối tượng có thể thực hiện.
Có thể có hay không có giá trị trả về
Cú pháp:
<?php
function <tên phương thức>(các tham số truyền vào nếu có){
//khối lệnh
}
?>
Chú ý:
Trong các phương thức của lớp, có thể truy cập các thuộc tính hay phương thức thông qua con trỏ $this
Con trỏ $this được dùng để chỉ lớp hiện tại đang làm việc.
Ví dụ: nếu một thuộc tính của lớp phân số có tên là $tu_so thì có thể tham chiếu đến nó như sau: $this->tu_so
Minh họa xây dựng lớp phân số
Sử dụng class
Khởi tạo đối tượng
Dùng từ khóa new tiếp đó là tên lớp
Cú pháp: $<tên biến đối tượng> = new <tên lớp>();
Ví dụ: tạo đối tượng phân số
<?php
$phan_so = new Phan_so();
?>
Gán giá trị cho các
thuộc tính của lớp
Cú pháp: $<tên biến đối tượng>-><tên thuộc tính>=<giá trị>;
<?php
$phan_so->tu_so = 2;
$phan_so->mau_so = 4;
?>
Gọi sử dụng các phương thức của lớp
Phương thức không có giá trị trả về
Gọi tên của phương thức với các giá trị truyền vào cho tham số nếu có
Cú pháp: $<tên biến đối tượng>-><tên phướng thức>(các giá trị truyền vào nếu có);
Ví dụ: gọi hàm khởi tạo phân số
<?php
$phan_so->khoi_tao_phan_so($ptu_so, $pmau_so);
?>
Phương thức có giá trị trả về
Sử dụng biến để nhận giá trị trả về của phương thức
Cú pháp: $<tên biến nhận giá trị>=$<tên biến đối tượng>-><tên phương thức>(các giá trị truyền vào nếu có);
<?php
$phan_so_2 = =new phan_so();
$phan_so_2 = = $phan_so->tong($a, $b);
?>
4.Kế thừa
Khái niệm
Kế thừa: là khả năng xây dựng một lớp mới dựa trên các định nghĩa của một lớp đã có.
Lớp đã có gọi là lớp cha, lớp mới phát sinh gọi là lớp con (subclass) và kế thừa tất cả các thành phần của lớp cha, có thể mở rộng tính năng các thành phần kế thừa cũng như bổ sung thêm các thành phần mới.
Thiết lập kế thừa
Dùng từ khóa extends để khai báo lớp kế thừa
<?php
class<tên lớp con> extends <tên lớp cha>{
..
}
?>
Chồng hàm
Là hai phương thức có cùng tên được khai báo trong hai lớp “lớp cha” và “lớp con”. Hai phương thức này có nội dung khác nhau.
Khi khởi tạo “lớp con”, phương thức được gọi có cùng tên này được hiểu là phương thức khai báo trong “lớp con”.
Khi muốn truy cập đến các phương thức đã bị nạp chồng (phương thức khai báo trong “lớp cha”) thì tham chiếu chúng với từ khóa parent và toán tử tham chiếu ::, tiếp theo là phương thức hay thành phần cần tham chiếu.
Cú pháp: parent::tên_phương_thức
Ví dụ: phương thức tính lương cho nhân viên và phương thức tính lương cho nhân viên sản xuất (kế thừa lớp nhân viên) được gọi là “chồng hàm”
Ví dụ kế thừa
Xây dựng lớp nhân viên gồm có các thuộc tính: họ tên, giới tính, ngày vào làm, hệ số lương, số con, lương căn bản và các phương thức: tính lương, trợ cấp, tiền thưởng.
Xây dựng lớp nhân viên văn phòng kế thừa từ lớp nhân viên có thêm các thuộc tính riêng: số ngày vắng, định mức vắng, đơn giá phạt và các phương thức tính tiền phạt, trợ cấp, tiền lương.
Xây dựng lớp nhân viên sản xuất kế thừa từ lớp nhân viên có thêm các thuộc tính riêng: số sản phẩm, định mức sản phẩm và các phương thức tính tiền thưởng, trợ cấp, tiền lương.
Ví dụ kế thừa: tính tiền phạt, trợ cấp, tiền lương
Ví dụ kế thừa: các thuộc tính riêng của lớp nhân viên sản xuất
Ví dụ kế thừa: tính tiền thưởng, trợ cấp, tiền lương