bài4:lập trìnhhướngđối tượngvới java
DESCRIPTION
Bài4:Lập trìnhhướngđối tượngvớ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. - PowerPoint PPT PresentationTRANSCRIPT
BàiBài4:4: Lập trìnhLập trình hướnghướng đốiđốitượngtượng với JAVAvới JAVA
1.Tổng quan lập trình 1.Tổng quan lập trình hướng đối tượnghướng đối tượng
2.Xây dựng lớp đối tượng2.Xây dựng lớp đối tượng
3.Package3.Package
1. Tổng quan lập trình hướng đối 1. Tổng quan lập trình hướng đối tượngtượng Khái niệmKhái niệm Các đặc trưng cơ bảnCác đặc trưng cơ bản
Khái niệmKhái niệm
Là phương pháp thiết kế và phát triển phần 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 mềm dựa trên kiến trúc lớp (class) và đối tượng (object) tượng (object)
Mô hình hóa các đối tượng trong thế giới thực 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 thành các đối tượng trong chương trình
Các thông tin về đối tượng Các thông tin về đối tượng
– – Đối tượng nhân viênĐối tượng nhân viên• • Mã nhân viênMã nhân viên• • Họ tênHọ tên• • Giới tínhGiới tính• • Ngày sinhNgày sinh• • Địa chỉĐịa chỉ• • Hệ số lươngHệ số lương• …• …
Lớp đối tượngLớp đối tượng– – Class là một khái niệm trong Lập trình hướ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 đối tượng mô tả cho những thực thể có chung tính chất và hành vi. Class địnhtính chất và hành vi. Class định nghĩa những nghĩa những thuộc tính và hành vi được dùng cho những thuộc tính và hành vi được dùng cho những đối tượng của lớp đó đối tượng của lớp đó
– – Kết quả của sự TRỪU TƯỢNG HOÁ Kết quả của sự TRỪU TƯỢNG HOÁ (Abstraction) các đối tượng:(Abstraction) các đối tượng:
•• Cùng loạiCùng loại•• Cùng các thông tin mô tả về đối tượng Cùng các thông tin mô tả về đối tượng
Các đặc trưng cơ bảnCác đặc trưng cơ bản
Tính trừu tượng (Abstraction)Tính trừu tượng (Abstraction)
– – Lớp (Class) là một khái niệm trừu tượngLớ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ả Ví dụ: Thông tin của nhân viên được mô tả trong lớp Nhân viêntrong lớp Nhân viên
• • Ví dụ: Nhân viên “Nguyễn Văn A” là một 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 thể hiện cụ thể của lớp Nhân viên và Đối tượng Nhân viên tượng Nhân viên
->Từ những đối tượng giống nhau, ->Từ những đối tượng giống nhau, ta có thể trừu tượng hoá thành 1 lớp ta có thể trừu tượng hoá thành 1 lớp Nhân viên Nguyễn Văn ANhân viên Nguyễn Văn A
NHÂN VIÊNNHÂN VIÊN
MaNVMaNV
Họ và TênHọ và Tên
Ngày SinhNgày Sinh
Địa chỉĐịa chỉ
Giới tínhGiới tính
Tính đóng gói (Encapsulation) Tính đóng gói (Encapsulation)
– – Mỗi lớpMỗi lớp đượcđược xây dựng để thực hiện một 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 đó 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 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 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) 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 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 tính năng mới dựa trên những phần sẵn có ở lớp Cha
• • Ví dụ: Ví dụ:
Lớp NhanVien mô tả thông tin chung của nhân viênLớ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 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 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 NhanVien, và có thêm những thông tin đặc trưng của nhân viên văn phòngcủa nhân viên văn phòng
2. Xây dựng lớp đối tượng 2. Xây dựng lớp đối tượng
Tạo lớp và đối tượngTạo lớp và đối tượng Biến thực thểBiến thực thể Phương thứcPhương thức Khởi tạoKhởi tạo
Tạo lớpTạo lớp
Một lớp dùng định nghĩa một kiểu dữ liệu mới 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ớpclass <Tên_lớp>
{...
}
Ví dụVí dụ: khai báo lớp tam giác : khai báo lớp tam giác
class TamGiacclass TamGiac
{{
// các khai báo trong lớp tam giác// các khai báo trong lớp tam giác
} }
Qui tắc đặt tên lớp Qui tắc đặt tên lớp Tên lớp nên là một danh từ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 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 hoamỗi từ nên viết hoa Tên lớp nên đặt đơn giản, dễ nhớ, và có ý nghĩaTê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 JavaTê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ó 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 ‘_’ thể bắt đầu bằng dấu ‘$’ và dấu gạch dưới ‘_’
Hàm dựng (constructor) Hàm dựng (constructor)
Là phương thức (method) đặc biệt dùng để 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 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 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ề dựng không có kiểu trả về
Được gọi tự động khi đối tượng được tạo ra Được gọi tự động khi đối tượng được tạo ra Có hai loại hàm dựng: Có hai loại hàm dựng:
– – Hàm dựng có tham sốHàm dựng có tham số
– – Hàm dựng mặc địnhHàm dựng mặc định
Ví dụVí dụ: khai báo hàm dựng cho lớp : khai báo hàm dựng cho lớp tam giác vừa tạo tam giác vừa tạo
class TamGiacclass TamGiac{{//// hàm dựng mặc định hàm dựng mặc định public TamGiac()public TamGiac(){{}}//// các khai báo kháccác khai báo khác}}
Tạo đối tượng Tạo đối tượng
Đối tượng được khai báo tượng trưng cho lớp Đố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: 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 Đầ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 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. Nó chỉ là biến tham chiếu đến đối tượng tượng
−− Tiếp theo, một bản copy đối tượng của lớp trên 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 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ử này được thực hiện bằng toán tử newnew
Toán tử Toán tử new new cấp phát bộ nhớ động cho cấp phát bộ nhớ động cho đối tượng và trả về tham chiếu tới nó đố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 Tất cả các đối tượng của lớp phải được cấp phát động cấp phát động
Biến thực thểBiến thực thể Mô tả trạng thái của đối tượng 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 Mỗi đối tượng đều có 1 bản sao của biến thực
thể thể
Ví dụVí dụ: khai báo biến thực thể mô tả : khai báo biến thực thể mô tả thông tin lớp TamGiac thông tin lớp TamGiac
class TamGiacclass TamGiac
{{
// a, b, c là 3 biến thực thể mô tả thông tin 1// 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//đối tượng thuộc lớp tam giác
public double a,b,c;public double a,b,c;
// hàm dựng mặc định public TamGiac(){}// hàm dựng mặc định public TamGiac(){}
} }
Phương thức (method)Phương thức (method)
Ví dụVí dụ: khai báo phương thức tính : khai báo phương thức tính chu vi cho lớp tam giác 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ứcTruyền tham số cho phương thức Truyền tham trị:Truyền tham trị:– – Được sử dụng cho các kiểu dữ liệu cơ bản, mọi thay Đượ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 đổi diễn ra bên trong phương thức không ảnh hưởng đến giá trị truyền vàođến giá trị truyền vào
Truyền tham chiếu: Truyền tham chiếu: – – Thay đổi bên trong phương thức sẽ làm thay đối giá Thay đổi bên trong phương thức sẽ làm thay đối giá
trị của tham số truyền vào 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 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 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 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 thúc, tham chiếu này vẫn trỏ đến cùng đối tượng khi truyền vào truyền vào
Phương thức có tham số thay đổiPhương thức có tham số thay đổi
Tham số thay đối cho phép triệu gọi phương Tham số thay đối cho phép triệu gọi phương thức với số tham số khác nhau. thức với số tham số khác nhau.
Cú phápCú phápKiểu_dữ_liệu Tên_phương_thứcKiểu_dữ_liệu Tên_phương_thức(Kiểu_dữ_liệu ... Tên_tham_so)(Kiểu_dữ_liệu ... Tên_tham_so){{// các lệnh// các lệnh}}
Ví dụVí dụ::
public static void Test(int … a){public static void Test(int … a){
for (int i : a) System.out.println(i);for (int i : a) System.out.println(i);
}}
public static void main(String args[])public static void main(String args[]){ Test(1,2,3,4,5,6);{ Test(1,2,3,4,5,6);
}}
3. Package3. Package
Một nhóm các lớp (classes) và giao diện Một nhóm các lớp (classes) và giao diện (interfaces) được tổ chức thành một đơn vị (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à quản lý theo hình thức không gian tên gọi là packagepackage
Các loại package trong Java: Các loại package trong Java:
– – Package được định nghĩa trướcPackage được định nghĩa trước
– – Package do người dùng định nghĩaPackage do người dùng định nghĩa
Package được định nghĩa trướcPackage được định nghĩa trước
Chỉ định từ truy xuấtChỉ định từ truy xuất
Chỉ định từ truy xuấtChỉ định từ truy xuất
Chỉ định từ truy xuất cho biến và Chỉ định từ truy xuất cho biến và phương thứcphương thức Các từ khóa cho việc thay đổi quyền truy xuất 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 volatile: cho phép thay đổi thông tin của biến trong quá trình sử dụng trong quá trình sử dụng
– – final: cho phép thay đổi thông tin của biến chỉ 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 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 native: chỉ ra hàm không được viết bằng ngôn ngữngữ
– – transient: chỉ ra một biến không thể serializabletransient: chỉ ra một biến không thể serializable