bài4:lập trìnhhướngđối tượngvới java

38
Bài Bài 4: 4: Lập trình Lập trình hướng hướng đối đối tượng tượng với JAVA với JAVA 1.Tổng quan lập 1.Tổng quan lập trình hướng đối trình hướng đối tượng tượng 2.Xây dựng lớp đối 2.Xây dựng lớp đối tượng tượng 3.Package 3.Package

Upload: vonda

Post on 09-Jan-2016

53 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 2: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 3: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 4: Bài4:Lập trìnhhướngđối tượngvới JAVA
Page 5: Bài4:Lập trìnhhướngđối tượngvới JAVA

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• …• …

Page 6: Bài4:Lập trìnhhướngđối tượngvới JAVA
Page 7: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 8: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 9: Bài4:Lập trìnhhướngđối tượngvới JAVA

->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

Page 10: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 11: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 12: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 13: Bài4:Lập trìnhhướngđối tượngvới JAVA

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>

{...

}

Page 14: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

} }

Page 15: Bài4:Lập trìnhhướngđối tượngvới JAVA

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 ‘_’

Page 16: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 17: Bài4:Lập trìnhhướngđối tượngvới JAVA

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}}

Page 18: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 19: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 20: Bài4:Lập trìnhhướngđối tượngvới JAVA
Page 21: Bài4:Lập trìnhhướngđối tượngvới JAVA

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ể

Page 22: Bài4:Lập trìnhhướngđối tượngvới JAVA

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(){}

} }

Page 23: Bài4:Lập trìnhhướngđối tượngvới JAVA
Page 24: Bài4:Lập trìnhhướngđối tượngvới JAVA

Phương thức (method)Phương thức (method)

Page 25: Bài4:Lập trìnhhướngđối tượngvới JAVA

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; }}

Page 26: Bài4:Lập trìnhhướngđối tượngvới JAVA
Page 27: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 28: Bài4:Lập trìnhhướngđối tượngvới JAVA
Page 29: Bài4:Lập trìnhhướngđối tượngvới JAVA
Page 30: Bài4:Lập trìnhhướngđối tượngvới JAVA

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}}

Page 31: Bài4:Lập trìnhhướngđối tượngvới JAVA

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);

}}

Page 32: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 33: Bài4:Lập trìnhhướngđối tượngvới JAVA

Package được định nghĩa trướcPackage được định nghĩa trước

Page 34: Bài4:Lập trìnhhướngđối tượngvới JAVA
Page 35: Bài4:Lập trìnhhướngđối tượngvới JAVA

Chỉ định từ truy xuấtChỉ định từ truy xuất

Page 36: Bài4:Lập trìnhhướngđối tượngvới JAVA

Chỉ định từ truy xuấtChỉ định từ truy xuất

Page 37: Bài4:Lập trìnhhướngđối tượngvới JAVA

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

Page 38: Bài4:Lập trìnhhướngđối tượngvới JAVA