Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
432,35 KB
Nội dung
BỘ GIÁO DỤC VÀ ðÀO TẠO TRƯỜNG ðẠI HỌC NÔNG NGHIỆP HÀ NỘI VŨ THỊ HẢI YẾN ðÀO TẠOVÀSỬDỤNG ðỘI NGŨ CÁN BỘ XÃ, THỊ TRẤN TẠI HUYỆN VŨ THƯ, TỈNH THÁI BÌNH LUẬN VĂN THẠC SĨ QUẢN TRỊ KINH DOANH Chuyên ngành: QUẢN TRỊ KINH DOANH Mã số: 60.34.05 Người hướng dẫn khoa học: TS. NGUYỄN QUỐC CHỈNH HÀ NỘI - 2011
Trường ðại học Nông nghiệp Hà Nội - Luận văn thạc sĩ khoa học kinh tế …………………………. i LỜI CAM ðOAN Tôi xin cam ñoan ñây là công trình nghiên cứu của riêng tôi. Các số liệu, kết quả nghiên cứu trong luận văn là trung thực và chưa ñược công bố trong bất kỳ công trình nghiên cứu khoa học nào. Tôi xin cam ñoan rằng các thông tin trích dẫn trong luận văn này ñã ñược chỉ rõ nguồn gốc. Hà Nội, ngày 14 tháng 10 năm 2011 Tác giả luận văn VŨ THỊ HẢI YẾN
Trường ðại học Nông nghiệp Hà Nội - Luận văn thạc sĩ khoa học kinh tế …………………………. ii LỜI CẢM ƠN Trong thời gian học tập, nghiên cứu và viết luận văn thạc sĩ, tôi ñã nhận ñược sự giúp ñỡ nhiệt tình của nhiều cơ quan, tổ chức và cá nhân. Tôi xin tỏ lòng biết ơn sâu sắc ñến các Thầy, Cô giáo Khoa Kế toán và Quản trị kinh doanh, Viện ðào tạo sau ðại học - Trường ðại học Nông nghiệp Hà Nội, ñặc biệt là các Thầy, các Cô giáo trong Bộ môn Quản trị kinh doanh - ñã tạo ñiều kiện giúp ñỡ tôi trong quá trình học tập và thực hiện luận văn này. Tôi xin bày tỏ lòng biết ơn chân thành ñến Thầy giáo - TS. Nguyễn Quốc Chỉnh ñã dành nhiều thời gian tận tình hướng dẫn chỉ bảo cho tôi hoàn thành luận văn này. Tôi xin bày tỏ lòng biết ơn chân thành ñến các Thầy, Cô giáo trong Ban Giám hiệu, Ban ðảng uỷ và ñồng nghiệp Trường Cao ñẳng Kinh tế Kỹ thuật Thái Bình ñã tạo ñiều kiện cho tôi trong quá trình học tập và thực hiện luận văn này. Tôi xin chân thành cảm ơn Huyện ủy, UBND huyện, các phòng ban chức năng huyện Vũ Thư; ðảng ủy, UBND các xã, thị trấn của huyện Vũ Thư ñã cung cấp những số liệu cần thiết và giúp ñỡ tôi trong quá trình tìm hiểu nghiên cứu tại ñịa bàn. Tôi xin chân thành cảm ơn gia ñình, bạn bè ñã ñộng viên, chia xẻ vàtạo ñiều kiện giúp tôi trong suốt thời gian học tập và nghiên cứu. Hà Nội, ngày 14 tháng 10 năm 2011 Tác giả luận văn VŨ THỊ HẢI YẾN
Trường ðại học Nông nghiệp Hà Nội - Luận văn thạc sĩ khoa học kinh tế …………………………. iii MỤC LỤC Lời cam ñoan i Lời cảm ơn ii Mục lục iii Danh mục chữ viết tắt v Danh mục bảng biểu vi Danh mục biểu ñồ viii 1 MỞ ðẦU 1 1.1 Tính cấp thiết của ñề tài 1 1.2 Mục tiêu nghiên cứu 2 1.3 ðối tượng và phạm vi nghiên cứu 2 2 CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN 4 2.1 Cơ sở lý luận 4 2.2 Cơ sở thực tiễn 25 3 ðẶC ðIỂM ðỊA BÀN VÀ PHƯƠNG PHÁP NGHIÊN CỨU 36 3.1 ðặc ñiểm ñịa bàn nghiên cứu 36 3.3 Các chỉ tiêu nghiên cứu 50 4 KẾT QUẢ NGHIÊN CỨU VÀ THẢO LUẬN 51 4.1 Thực trạng ñội ngũ cán bộ, công chức xã, thị trấn của huyện ñiều tra 51 4.1.1 Số lượng, cơ cấu cán bộ, công chức xã, thị trấn trên ñịa bàn huyện 51 4.1.2 Trình ñộ của cán bộ, công chức xã, thị trấn 52 4.1.3 Số lượng, cơ cấu cán bộ, công chức xã, thị trấn tại các xã ñiều tra 54 4.1.4 Trình ñộ chuyên môn của cán bộ, công chức Bộ môn Công nghệ phần mềm KHOA CễNG NGH THễNG TIN TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI JAVA Chương 05Tạosửdụngđối tượng Nguyễn Thị Thu Trang trangntt-fit@mail.hut.edu.vn Mục tiêu học Phương thức khởi tạo, chồng phương thức khởi tạo Khai báo khởi tạođối tượng Sửdụngđối tượng Quản lý nhớ Department of Software Engineering Nội dung Phương thức khởi tạo Chồng phương thức khởi tạoSửdụngđối tượng Quản lý nhớ Java So sánh đối tượng Department of Software Engineering 1 Phương thức khởi tạo (Constructor) Dữ liệu nên Lỗi khởi tạo lỗi phổ biến Phương thức khởi tạo Là phương thức đặc biệt Nhằm mục đích Department of Software Engineering Phương thức khởi tạo (2) Mỗi lớp phải Có nhiệm vụ tạo Tên Constructor Ví dụ: Department of Software Engineering Phương thức khởi tạo (3) Sửdụng từ khóa new với constructor để tạođối tượng cho lớp: Cú pháp: Ví dụ: Department of Software Engineering Phương thức khởi tạo (4) Phương thức khởi tạo khơng có giá trị trả về, sửdụng với từ khóa new Department of Software Engineering Phương thức khởi tạo (5) Phương thức khởi tạodùng định truy cập Một phương thức khởi tạodùng từ khóa abstract, static, final, native, synchronized Các phương thức khởi tạo không xem thành viên lớp Department of Software Engineering Phương thức khởi tạo (6) Phương thức khởi tạo mặc định (default constructor) Là phương thức khởi tạo ta không định nghĩa hàm khởi tạo lớp Phương thức khởi tạo mặc định Java cung cấp Khi định nghĩa phương thức khởi tạo, nên Department of Software Engineering Ví dụ Phương thức khởi tạo mặc định Java cung cấp: public class BankAccount{ private String owner; private double balance; } … Department of Software Engineering Ví dụ Phương thức khởi tạo tự viết: public class BackAccount{ private String owner; private double balance; } … BankAccount account2 = new BankAccount(); Department of Software Engineering Nội dung Phương thức khởi tạo Chồng phương thức khởi tạoSửdụngđối tượng Quản lý nhớ Java So sánh đối tượng Department of Software Engineering Chồng phương thức khởi tạo Trong nhiều tình khác ta cần khởi tạođối tượng theo nhiều cách khác Ỉ Cần xây dựng hàm khởi tạo khác cho đối tượng Các phương thức khởi tạo Việc chồng phương thức khởi tạo giúp Department of Software Engineering Ví dụ public class BankAccount{ private String owner; private double balance; public void setOwner(String o){ owner = o; } … } … Department of Software Engineering Ví dụ public class BankAccount{ private String owner; private double balance; } public class Test{ public static void main(String args[]){ BankAccount unknown_acc = new BankAccount(); } } Department of Software Engineering Nội dung Phương thức khởi tạo Chồng phương thức khởi tạoSửdụngđối tượng Quản lý nhớ Java So sánh đối tượng Department of Software Engineering 3.1 Khai báo khởi tạođối tượng Đối tượng Các đối tượng phải Kiểu đối tượng lớp đối tượng Ví dụ: Department of Software Engineering 3.1 Khai báo khởi tạođối tượng (2) Đối tượng nên khởi tạo trước sửdụng Sửdụng toán tử Sửdụng toán tử Toán tử new dùng để tạođối tượng Một đối tượng khởi tạoĐối tượng thao tác thơng qua Tham chiếu đóng vai trò gần giống Ví dụ: BankAccount acc1; Department of Software Engineering 3.1 Khai báo khởi tạođối tượng (3) Mảng đối tượng khai báo giống mảng liệu Mảng đối tượng khởi tạo mặc định với giá trị null Ví dụ: Employee emp1 = new Employee(123456); Employee emp2; emp2 = emp1; Department dept[] = new Department[100]; Test[] t = {new Test(1),new Test(2)}; Department of Software Engineering 3.2 Sửdụngđối tượng Đối tượng cung cấp hoạt động phức tạp kiểu liệu nguyên thủy Đối tượng đáp ứng lại thông điệp sửdụng để gửi thông điệp đến đối tượng Department of Software Engineering 3.2 Sửdụngđối tượng (2) Để gọi thành viên (dữ liệu thuộc tính) lớp đối tượng, sửdụng toán tử “.” Nếu gọi phương thức lớp tốn tử “.” khơng cần thiết Department of Software Engineering Ví dụ public class BankAccount{ private String owner; private double balance; public BankAccount(String name){ setOwner(name); } public void setOwner(String o){ owner = o; } public String getOwner(){ return owner; } … } public class Test{ public static void main(String args[]){ BankAccount acc1 = new BankAccount(); BankAccount acc2 = new BankAccount(“Hong”); } Department of Software Engineering 3.3 Thành phần static Nếu muốn sửdụng mà không muốn tạođối tượng lớp Ỉ Khai báo static Thành phần tĩnh Thay đổi giá trị thành phần tĩnh đối tượng lớp Các thành phần tĩnh truy nhập mà không cần Department of Software Engineering 3.4 Thành phần Một thuộc tính khơng thể thay đổi giá trị trình sửdụng Cú pháp khai báo hằng: Ví dụ: public static final int VAL_THREE = 39; private final int[] A = { 1, 2, 3, 4, 5, }; Department of Software Engineering 3.4 Thành phần final (2) Thông thường số liên quan đến lớp khai báo static final nhằm giúp truy cập dễ dàng Một quy ước chung sửdụng ký tự hoa tên Department of Software Engineering Nội ...BỘ MÔN CÔNG NGHỆ PHẦN MỀM ViỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Bài 03. Đóng gói và xây dựng lớp, tạovàsửdụngđối tượng. LÝ THUYẾT NGÔN NGỮ HĐT Mục tiêu bài học • Nêu được bản chất, vai trò của trừu tượng hóa • Giải thích về đóng gói và che giấu thông tin • Xây dựng lớp ▫ Định nghĩa lớp, thực hiện ẩn ▫ Tạo các phương thức, các trường/thuộc tính • Tạovàsửdụngđối tượng ▫ Phương thức khởi tạo ▫ Khai báo và khởi tạođối tượng ▫ Sửdụngđối tượng 2 Nội dung 1. Trừu trượng hóa dữ liệu 2. Đóng gói và xây dựng lớp 3. Tạovàsửdụngđối tượng 3 1.1. Trừu tượng hóa • Giảm thiểu và tinh lọc các chi tiết nhằm tập trung vào một số khái niệm/vấn đề quan tâm tại một thời điểm. ▫ “abstraction – a concept or idea not associated with any specific instance”. ▫ Ví dụ: Các định nghĩa toán học • 2 loại trừu tượng hóa ▫ Trừu tượng hóa điều khiển (control abstraction) ▫ Trừu tượng hóa dữ liệu (data abstraction) 1.1. Trừu tượng hóa (2) • Trừu tượng hóa điều khiển: Sửdụng các chương trình con (subprogram) và các luồng điều khiển (control flow) ▫ Ví dụ: a := (1 + 2) * 5 Nếu không có trừu tượng hóa điều khiển, LTV phải chỉ ra tất cả các thanh ghi, các bước tính toán mức nhị phân… • Trừu tượng hóa dữ liệu: Xử lý dữ liệu theo các cách khác nhau ▫ Ví dụ: Kiểu dữ liệu Sự tách biệt rõ ràng giữa các thuộc tính trừu tượng của kiểu dữ liệu và các chi tiết thực thi cụ thể của kiểu dữ liệu đó. 1.2. Trừu tượng hóa dữ liệu trong OOP • Đối tượng trong thực tế phức tạp • Cần đơn giản hóa, bỏ qua những chi tiết không cần thiết • Chỉ “trích rút” lấy những thông tin liên quan, thông tin quan tâm, quan trọng với bài toán 6 7 1.2. Trừu tượng hóa dữ liệu (3) • Any model that includes the most important, essential, or distinguishing aspects of something while suppressing or ignoring less important, immaterial, or diversionary details. The result of removing distinctions so as to emphasize commonalties (Dictionary of Object Technology, Firesmith, Eykholt, 1995). Cho phép quản lý các bài toán phức tạp bằng cách tập trung vào các đặc trưng quan trọng của một thực thể nhằm phân biệt nó với các loại thực thể khác. 8 1.2. Trừu tượng hóa dữ liệu (2) • Trừu tượng hóa là một cách nhìn hoặc cách biểu diễn một thực thể chỉ bao gồm các thuộc tính liên quan trong một ngữ cảnh nào đó. • Tập hợp các thể hiện của các thực thể thành các nhóm có chung các thuộc tính gọi là Lớp (class). 9 unclassified "things" 10 [...]... Student - name - address - studentID - dateOfBirth Lớp vàđối tượng trong UML Class :Student Student - name - address - studentID - dateOfBirth - name = “M Modano” - address = “123 Main St.” - studentID = 9 - dateOfBirth = “03/10/1967” Objects sv2:Student - name = “D Hatcher” - address = “456 Oak Ln.” - studentID = 2 - dateOfBirth = “12/11/1969” 17 Nội dung 1 Trừu trượng hóa dữ liệu 2 Đóng gói và xây dựng. .. 3 Tạovàsửdụngđối tượng 18 2.1 Đóng gói (Encapsulation) Client Methods • Một đối tượng có hai khung nhìn: ▫ Bên trong: Chi tiết về các thuộc tính và các phương thức của lớp tương ứng với đối 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 2 Mc tiêu Mc tiêu !"#$%"&$%$'"()*$ +,"-$"$./"0"1$2"34$"5 /"0"1$2"3 !$6$"2"7%62"34 89$$6$:..;9,<=%>"? 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 3 Ni dung Ni dung @A"0"1$2"3 @BC"5/"0"1$2"3 @DE @FG9,<=%>"?H77 @IE6" 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 4 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo JK<L9$M$2"3H?$2" Lỗi khởi tạo là một trong các lỗi phổ biến "0"1$2"3 Là phương thức đặc biệt được gọi tự động sau khi tạo ra đối tượng. Nhằm mục đích chính là khởi tạo cho các thuộc tính của đối tượng. 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 5 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo NO<?//",$"17-":*>/"0"1$2"3 Có nhiệm vụ tạo ra một thể hiện mới của lớp. Tên của constructor trùng với tên của lớp Constructor không có kiểu dữ liệu trả về Mỗi lần một đối tượng được khai báo, phương thức khởi tạo của lớp được gọi đến nhằm tạo ra một đối tượng mới. - public BankAccount(){ owner = “noname”; } 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 6 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo EP2"'7new?$H9$H(H7$6$ *?$"<?/ Cú pháp: Ten_lop ten_doi_tuong = new thuc_khoi_tao(ds_ts); Ví dụ: BankAccount account = new BankAccount(); 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 7 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo Circle(double r) { radius = r; } Circle() { radius = 1.0; } myCircle = new Circle(5.0); 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 8 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo "0"1$2"32"Q$'6HRH,.4"2" ?P2"'7ST'H,.*>"7*$"!9! *?@ 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 9 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo "0"1$2"3$'"(U$6$$"V R"H9W$X/ public private Không có (mặc định – phạm vi package). N>/"0"1$2"32"Q"(U $6$P2"'7abstract4static4final4native4 synchronized@ C6$/"0"1$2"32"Q$ YS*"<thành viên của lớp. 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 10 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo "0"1$2"3*Z$R"[S\79< $H9$H] Là phương thức khởi tạo không tham số Java cung cấp sẵn một phương khởi tạo mặc định nếu ta không định nghĩa một phương khởi tạo trong lớp. Phương thức khởi tạo mặc định do Java cung cấp có chỉ định truy cập giống như lớp của nó. Khi đã định nghĩa một phương thức khởi tạo có tham số, nên cung cấp thêm một phương thức khởi tạo mặc định khác. [...]... Phương thức khởi tạo mặc định do Java cung cấp: class BankAccount{ private String owner; private double balance; } public class Test{ public static void main(String args[]) { BankAccount acc1 = new BankAccount(); } } 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 11 6.1- Phương thức khởi tạo Phương thức khởi tạo tự viết: public class BackAccount{ private String owner; private double balance; public BankAccount(){... 31 Nội dung 6.1 Phương thức khởi tạo 6.2 Chồng phương thức khởi tạo 6.3 Sửdụngđối tượng 6.4 Quản lý bộ nhớ trong Java 6.5 So sánh đối tượng 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 32 6.4- Quản lý bộ nhớ trong Java Java không sử BỘ MÔN CÔNG NGHỆ PHẦN MỀM ViỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Bài 03. Đóng gói và xây dựng lớp, tạovàsửdụngđối tượng. LÝ THUYẾT NGÔN NGỮ HĐT Mục tiêu bài học • Nêu được bản chất, vai trò của trừu tượng hóa • Giải thích về đóng gói và che giấu thông tin • Xây dựng lớp ▫ Định nghĩa lớp, thực hiện ẩn ▫ Tạo các phương thức, các trường/thuộc tính • Tạovàsửdụngđối tượng ▫ Phương thức khởi tạo ▫ Khai báo và khởi tạođối tượng ▫ Sửdụngđối tượng 2 Nội dung 1. Trừu trượng hóa dữ liệu 2. Đóng gói và xây dựng lớp 3. Tạovàsửdụngđối tượng 3 1.1. Trừu tượng hóa • Giảm thiểu và tinh lọc các chi tiết nhằm tập trung vào một số khái niệm/vấn đề quan tâm tại một thời điểm. ▫ “abstraction – a concept or idea not associated with any specific instance”. ▫ Ví dụ: Các định nghĩa toán học • 2 loại trừu tượng hóa ▫ Trừu tượng hóa điều khiển (control abstraction) ▫ Trừu tượng hóa dữ liệu (data abstraction) 1.1. Trừu tượng hóa (2) • Trừu tượng hóa điều khiển: Sửdụng các chương trình con (subprogram) và các luồng điều khiển (control flow) ▫ Ví dụ: a := (1 + 2) * 5 Nếu không có trừu tượng hóa điều khiển, LTV phải chỉ ra tất cả các thanh ghi, các bước tính toán mức nhị phân… • Trừu tượng hóa dữ liệu: Xử lý dữ liệu theo các cách khác nhau ▫ Ví dụ: Kiểu dữ liệu Sự tách biệt rõ ràng giữa các thuộc tính trừu tượng của kiểu dữ liệu và các chi tiết thực thi cụ thể của kiểu dữ liệu đó. 1.2. Trừu tượng hóa dữ liệu trong OOP • Đối tượng trong thực tế phức tạp • Cần đơn giản hóa, bỏ qua những chi tiết không cần thiết • Chỉ “trích rút” lấy những thông tin liên quan, thông tin quan tâm, quan trọng với bài toán 6 7 1.2. Trừu tượng hóa dữ liệu (3) • Any model that includes the most important, essential, or distinguishing aspects of something while suppressing or ignoring less important, immaterial, or diversionary details. The result of removing distinctions so as to emphasize commonalties (Dictionary of Object Technology, Firesmith, Eykholt, 1995). Cho phép quản lý các bài toán phức tạp bằng cách tập trung vào các đặc trưng quan trọng của một thực thể nhằm phân biệt nó với các loại thực thể khác. 8 1.2. Trừu tượng hóa dữ liệu (2) • Trừu tượng hóa là một cách nhìn hoặc cách biểu diễn một thực thể chỉ bao gồm các thuộc tính liên quan trong một ngữ cảnh nào đó. • Tập hợp các thể hiện của các thực thể thành các nhóm có chung các thuộc tính gọi là Lớp (class). 9 unclassified "things" 10 [...]... Lớp vs Đối tượng Đối tượng là sự vật thật, • Lớp là mô hình khái niệm, mô tả các thực thể là thực thể thực sự • Lớp như một bản mẫu, Đối tượng là một thể hiện (instance) của một định nghĩa các thuộc lớp, dữ liệu của các đối tính và phương thức chung của các đối tượng tượng khác nhau là khác nhau • Một lớp là sự trừu tượng Mỗi đối tượng có một lớp xác định dữ liệu và hành hóa của một tập các đối. .. Lớp vàđối tượng trong UML Class :Student Student - name - address - studentID - dateOfBirth - name = “M Modano” - address = “123 Main St.” - studentID = 9 - dateOfBirth = 03/ 10/1967” Objects sv2:Student - name = “D Hatcher” - address = “456 Oak Ln.” - studentID = 2 - dateOfBirth = “12/11/1969” 17 Nội dung 1 Trừu trượng hóa dữ liệu 2 Đóng gói và xây dựng lớp 3 Tạovàsửdụngđối tượng 18 2.1 Đóng gói. .. gói (Encapsulation) Client Methods • Một đối tượng có hai khung nhìn: ▫ Bên trong: Chi tiết về các thuộc tính và các phương thức của lớp tương ứng với đối tượng ▫ Bên ngoài: Các dịch vụ mà một đối tượng có thể cung cấp và cách đối tượng đó tương tác với phần còn lại của hệ thống Data 19 2.1 Đóng gói (2) • Dữ liệu/thuộc tính và hành vi/phương thức được đóng gói trong một lớp Encapsulation BankAccount... +credit(double) 20 2.1 Đóng gói (3) • Một đối tượng là một thực thể được 8/24/2011 Mục tiêu học Nêu chất, vai trò trừu tượng hóa Giải thích vềđóng gói che giấu thông tin Xây dựng lớp Bộ môn Công nghệ Phần mềm Viện CNTT & TT Trường Đại học Bách Khoa Hà Nội Đị nh nghĩa lớp, thực ẩn Tạo phương thức, trường/thuộc tính k o?sqìmg?g ︰mf?I。h?s ︸mf Bài 03 Đóng gói xây dựng lớp, tạo sửdụng đối tượng Tạo sửdụng đối tượng Phương thức khởi tạo Khai báo khởi tạođối tượng Sửdụng đối tượng Nội dung Nội dung Trừu trượng hóa dữliệu Đóng gói xây dựng lớp Tạo sửdụng đối tượng Trừ u trư ợ ng hóa liệ u Đóng gói xây dựng lớp Tạo sửdụng đối tượng 1.1 Trừu tượng hóa loại trừu tượng hóa 1.1 Trừu tượng hóa (2) Trừu tượng hóa điều khiển Trừu tượng hóa dữliệu 8/24/2011 1.2 Trừu tượng hóa dữliệu OOP Đối tượng thực tếphức tạp 1.2 Trừu tượng hóa dữliệu (3) 1.2 Trừu tượng hóa dữliệu (2) Tập hợp thểhiện thực thểthành nhóm có chung thuộc tính Any model that includes the most important, essential, or distinguishing aspects of something while suppressing or ignoring less important, immaterial, or diversionary details The result of removing distinctions so as to emphasize commonalties (Dictionary of Object Technology, Firesmith, Eykholt, 1995) 10 11 12 8/24/2011 1.3 Lớp vs Đối tượng 13 14 Biểu diễn lớp UML Thuộc tính (attribute) gì? thành phần: Professor - name - employeeID : UniqueId - hireDate - status - discipline - maxLoad Student - name - address - studentID - dateOfBirth + submitFinalGrade() + acceptCourseOffering() + setMaxLoad() + takeSabbatical() + teachClass() Lớp đối tượng UML :Student Student - name - address - studentID - dateOfBirth - name = “M Modano” - address = “123 Main St.” - studentID = - dateOfBirth = “03/10/1967” Nội dung Trừu trượng hóa dữliệu Đóng gói xây dự ng lớ p Tạo sửdụng đối tượng sv2:Student - name = “D Hatcher” - address = “456 Oak Ln.” - studentID = - dateOfBirth = “12/11/1969” 18 8/24/2011 2.1 Đóng gói (Encapsulation) 2.1 Đóng gói (2) Một đối tượng có hai khung nhìn: b ¡‹ BankAccount - owner: String - balance: double Methods + debit(double): boolean +credit(double) Data 19 2.1 Đóng gói (3) 20 2.2 Xây dựng lớp Thông tin cần thiết đểđị nh nghĩa lớp BankAccount - owner: String - balance: double Input Don’t know how it works, but it works! + debit(double): boolean +credit(double) Output 21 2.2 Xây dựng lớp (2) 22 2.2 Xây dựng lớp (3) Các lớp nhóm lại thành package Lớp đóng gói thành viên (member) String owner; double balance; 23 24 8/24/2011 2.2.1 Khai báo lớp Ví dụ- Khai báo lớp Cú pháp khai báo: package oop.k52.cnpm; package tenpackage; chi_dinh_truy_cap class TenLop { public class Student { // Than lop } … } 25 Ví dụ: private 2.2.2 Khai báo thành viên lớp public Không có 26 private Cùng lớp Cùng gói Khác gói class Student{ private String name; public String getName() { return this.name; } public void setName(String name) { this.name = name; } } 28 27 Ví dụ: private (2) class Student{ private String name; public String getName() { return this.name; } public void setName(String name) { this.name = name; } } class Manager{ private Student[] students; public initianize() { students[0] = new Students(); //student.name = “Hung”; error student.setName(“Hung”); } } a Thuộc tính Các thuộc tính phải khai báo bên lớp Student - name - address - studentID - dateOfBirth Nguyễn Thu Hương Nguyễn Hoàng Nam Hải Phòng… … Hà Nội… 29 30 8/24/2011 a Thuộc tính (2) b Phương thức Thuộc tính có thểđược khởi tạo khai báo BankAccount - owner: String - balance: double + debit(double): boolean +credit(double) boolean 32 31 * Kiểu dữliệu trảvề * Chữký phương thức (signature) Lệnh return 33 Ví dụ 34 c Thành viên public Boolean checkOdd(int i) { if (i %2 ==0) return true; else return false; } Ví dụ: final double PI = 3.141592653589793; public final int VAL_THREE = 39; private final int[] A = { 1, 2, 3, 4, 5, }; public Boolean checkOdd(int i) { return true; return false; } 35 8/24/2011 package com.megabank.models; public class BankAccount { private String owner; private double balance; 2.3 Che giấu dữliệu (Data hiding) public boolean ... private String owner; private double balance; public void setOwner(String o){ owner = o; } … } … Department of Software Engineering Ví dụ public class BankAccount{ private String owner; private... Engineering Nội dung Phương thức khởi tạo Chồng phương thức khởi tạo Sử dụng đối tượng Quản lý nhớ Java So sánh đối tượng Department of Software Engineering Quản lý nhớ Java Java không sử dụng... mặc định Java cung cấp Khi định nghĩa phương thức khởi tạo, nên Department of Software Engineering Ví dụ Phương thức khởi tạo mặc định Java cung cấp: public class BankAccount{ private String