Bai 01 Tổng quan OOP

12 6 0
Bai 01   Tổng quan OOP

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bai 01 Tong quan OOP 1 Bài 1 Tổng quan về lập trình hướng đối tượng 1 1 Mục tiêu bài học v Tìm hiểu tổng quan về Công nghệ lập trình hướng đối tượng § Khái niệm, ưu điểm, vai trò, ứng dụng, sự phát tr.

Mục tiêu học v Tìm hiểu tổng quan Cơng nghệ lập trình hướng đối tượng § Khái niệm, ưu điểm, vai trò, ứng dụng, phát triển ngơn ngữ lập trình v Tìm hiểu Đối tượng Lớp § Đối tượng, trạng thái, hành vi § Lớp, thuộc tính, phương thức § Tương tác đối tượng (thông điệp, giao diện) Bài 1: Tổng quan lập trình hướng đối tượng v Tìm hiểu Ngơn ngữ lập trình Java § Giới thiệu Java, Nền tảng Java, Mơ hình dịch Java § Tính ứng dụng Java v Cài đặt môi trường lập trình 1 2 Nội dung Nội dung 5 Công nghệ hướng đối tượng (HĐT) Đối tượng lớp Các nguyên lý LT HĐT Ngôn ngữ lập trình Java Cài đặt mơi trường lập trình 3 Công nghệ hướng đối tượng (HĐT) Đối tượng lớp Các nguyên lý LT HĐT Ngôn ngữ lập trình Java Cài đặt mơi trường lập trình 4 1.1 Kỹ thuật lập trình 1.2 Sự phát triển ngơn ngữ lập trình v Kỹ thuật lập trình: Kỹ thuật thực thi giải pháp phần mềm (cấu trúc liệu + giải thuật) dựa tảng phương pháp luận (methodology) nhiều ngơn ngữ lập trình phù hợp với u cầu đặc thù ứng dụng v Ngơn ngữ lập trình Ngơn ngữ máy Lập trình Hướng thủ tục Hướng đối tượng § Là ngơn ngữ chuẩn hóa § Cả người máy tính đọc hiểu § Sử dụng chương trình dịch tương ứng để biên dịch tồn chương trình nguồn thành mã máy trước thực Assembly language 5 6 1.3 Lập trình hướng đối tượng 1.4 Cơng nghệ đối tượng (OOT) v Thể thành phần toán “đối tượng” (object) v Hướng đối tượng kỹ thuật để mơ hình hóa hệ thống thành nhiều đối tượng tương tác với v Công nghệ đối tượng tập quy tắc (trừu tượng hóa, đóng gói, đa hình), hướng dẫn để xây dựng phần mềm, với ngôn ngữ, sở liệu công cụ khác hỗ trợ quy tắc v Các mốc cơng nghệ đối tượng Reality House Tom Car "Tất thứ đối tượng" -Alan Kay (Object Technology - A Manager’s Guide, Taylor, 1997) Flower Simula Object-oriented modeling C ++ 1967 Model House drives lives in Car gets Tom Flower 7 The UML Late 1980s 1996 1972 1991 2004 Smalltalk Java UML 8 OOT sử dụng đâu? Nội dung v Các hệ thống Client/Server phát triển Web v Hệ nhúng (embedded system) v Hệ thống thời gian thực (realtime) v Hệ thống phần mềm nói chung… Cơng nghệ hướng đối tượng (HĐT) Đối tượng lớp Các nguyên lý LT HĐT Ngôn ngữ lập trình Java Cài đặt mơi trường lập trình 10 9 10 Đối tượng gì? Trạng thái hành vi v Đối tượng giới thực, thực thể cụ thể mà thông thường sờ, nhìn thấy hay cảm nhận v Tất có trạng thái (state) hành vi (behaviour) v Trạng thái đối tượng điều kiện mà đối tượng tồn v Trạng thái đối tượng thay đổi theo thời gian 12 11 11 v Hành vi định đối tượng hành động đáp trả bên v Hành vi nhìn thấy đối tượng mơ hình thành tập thơng điệp đáp trả (các thao tác mà đối tượng thực hiện) 12 Đối tượng phần mềm Ví dụ đối tượng phần mềm v Các đối tượng phần mềm dùng để biểu diễn đối tượng giới thực v Cũng có trạng thái hành vi § Trạng thái: thuộc tính (attribute; property) § Hành vi: phương thức (method) Đối tượng phần mềm Đối tượng (object) thực thể phần mềm bao bọc thuộc tính phương thức liên quan Đối tượng phần mềm Xe Đạp Thuộc tính xác định giá trị cụ thể gọi thuộc tính thể Một đối tượng cụ thể gọi thể 13 13 14 14 Lớp đối tượng Ví dụ Lớp Bike v Một lớp thiết kế (blueprint) hay mẫu (prototype) cho đối tượng kiểu § Ví dụ: lớp XeDap thiết kế chung cho nhiều đối tượng xe đạp tạo Khai báo cho lớp XeDap v Lớp định nghĩa thuộc tính phương thức chung cho tất đối tượng loại Các đối tượng lớp XeDap v Một đối tượng thể cụ thể lớp § Ví dụ: đối tượng xe đạp thể lớp XeDap v Mỗi thể có thuộc tính thể khác § Ví dụ: xe đạp số (gear) thứ xe khác số (gear) thứ 15 15 16 16 Tương tác đối tượng Gọi hàm vs Gửi thông điệp v Sự giao tiếp đối tượng giới thực: v Gọi hàm (Call function) § Chỉ xác đoạn mã thực § Chỉ có thực thi hàm với tên § Khơng có hai hàm trùng tên v Gửi thơng điệp § u cầu dịch vụ từ đối tượng đối tượng định cần phải làm § Các đối tượng khác có cách thực thi thơng điệp theo cách khác v Các đối tượng tương tác chúng lập trình § Các đối tượng giao tiếp với cách gửi thông điệp (message) 17 17 18 18 Thông điệp vs Phương thức Đặc tính LT HĐT v Thơng điệp Alan Kay tổng hợp đặc tính LT HĐT: § Được gửi từ đối tượng đến đối tượng kia, không bao gồm đoạn mã thực thực thi Tất đối tượng Chương trình phần mềm coi tập hợp đối tượng tương tác với Mỗi đối tượng chương trình có liệu độc lập chiếm nhớ riêng Mỗi đối tượng có dạng đặc trưng lớp đối tượng v Phương thức § Thủ tục/hàm ngơn ngữ lập trình cấu trúc § Là thực thi dịch vụ u cầu thơng điệp § Là đoạn mã thực thi để đáp ứng thông điệp gửi đến cho đối tượng Tất đối tượng thuộc lớp có hành vi giống 20 19 19 20 Hướng cấu trúc vs Hướng ĐT Nội dung v Hướng cấu trúc: § data structures + algorithms = Program § (cấu trúc liệu + giải thuật = Chương trình) v Hướng đối tượng: § objects + messages = Program § (đối tượng + thơng điệp = Chương trình) Cơng nghệ hướng đối tượng (HĐT) Đối tượng lớp Các nguyên lý LT HĐT Ngơn ngữ lập trình Java Cài đặt mơi trường lập trình 21 21 22 22 3.1 Trừu tượng hóa (Abstraction) Ví dụ: Trừu tượng hóa v Là q trình loại bỏ thơng tin/tính chất cụ thể giữ lại thơng tin/tính chất chung v Tập trung vào đặc điểm thực thể, đặc điểm phân biệt với loại thực thể khác v Phụ thuộc vào góc nhìn (Quan trọng ngữ cảnh lại khơng có ý nghĩa nhiều ngữ cảnh khác) Phụ thuộc vào góc nhìn 23 23 24 24 3.2 Đóng gói (Encapsulation) 3.3 Thừa kế (Inheritance) v Che giấu, ẩn chi tiết thực bên v Cung cấp cho giới bên ngồi giao diện § Việc sử dụng không ảnh hưởng chi tiết bên v Xếp hạng hay xếp thứ tự mức trừu tượng vào cấu trúc v Các phần tử cấp sơ đồ phân cấp có mức trừu tượng hóa Gia tăng mức độ trừu tượng hóa Vehicle Automobile Giảm mức độ trừu tượng hóa Sedan Motorcycle Sports Car School Bus 25 25 Luxury Bus 26 26 3.4 Đa hình (polymorphism) Nội dung v Đa hình: “one name, many forms” v Nạp chồng phương thức: phương thức tên, hoạt động khác § Add(int x, int y) § Add(float x, float y) § Add(float x, float y, float z) v Ghi đè phương thức (Method Overriding) § Một Intern (thực tập sinh) Intern, đồng thời xem Staff (nhân viên) § Phương thức quẹt thẻ Intern khác với phương thức quẹt thẻ Staff 27 27 Bus Công nghệ hướng đối tượng (HĐT) Đối tượng lớp Các nguyên lý LT HĐT Ngơn ngữ lập trình Java Cài đặt mơi trường lập trình 28 28 4.1 Java gì? 4.2 Nền tảng Java v Mỗi sản phầm Java gồm: § Bộ cơng cụ phát triển: J2SDK, JDK hay SDK (development kit) v Java ngôn ngữ lập trình HĐT phát triển Sun Microsystems, thuộc sở hữu Oracle • JDK = JRE + tools tiện ích (*.exe) + tài liệu + thư viện § Môi trường chạy JRE (runtime environment): môi trường thực thi • JRE = JVM + Java runtime library (trên desktop) • Server JRE: JRE server § Ban đầu sử dụng để xây dựng ứng dụng điều khiển xử lý bên thiết bị điện tử dân dụng máy điện thoại cầm tay, lò vi sóng, … § Máy ảo java JVM (virtual machine) § Các đặc tả chi tiết kỹ thuật, Ngôn ngữ lập trình, Các cơng nghệ kèm v Java - ngơn ngữ lập trình - cơng nghệ - tảng phát triển v Java hỗ trợ platform § Sun Solaris, Linux, Mac OS, FreeBSD & Microsoft Windows Green Team and James Gosling (the leader) 29 29 30 30 Các thành phần Java SE 3.3 Mơ hình dịch Java a Mơ hình biên dịch truyền thống: § Mã nguồn biên dịch thành mã máy (mã nhị phân) § Tập lệnh mã máy platform khác khác 32 31 31 32 3.3 Mơ hình dịch Java (2) 4.3 Mơ hình dịch Java (3) v b Mơ hình dịch Java: v Máy ảo Java (Java Virtual Machine): § Máy ảo Java trái tim ngơn ngữ Java § Tạo môi trường bên để thực thi lệnh: § Tiêu chí "Viết (code) lần, thực thi khắp nơi" ("Write Once, Run Anywhere" - WORA) § Mã nguồn biên dịch thành bytecode thông dịch JVM • Nạp file class • Quản lý nh ã Dn rỏc Đ Trỡnh thụng dch Just In Time - JIT” • Chuyển tập lệnh bytecode thành mã máy cụ thể cho loại CPU 33 33 34 34 4.4 Tính Java 4.4 Tính Java (2) v Đơn giản, hướng đối tượng quen thuộc v Mạnh mẽ an toàn v Kiến trúc trung lập di động v Thực thi với hiệu suất cao v Thông dịch, đa luồng động v Dễ sử dụng cho người dùng Java v Đơn giản § Từ khóa • Java có 50 từ khóa • So với Cobol hay VB có tới hàng trăm từ khóa • Có ý nghĩa đặc biệt ngơn ngữ • Được sử dụng để viết câu lệnh v Hướng đối tượng § Java hỗ trợ phát triển phần mềm cách sử dụng khái niệm “đối tượng” § Phần mềm phát triển sử dụng Java bao gồm lớp đối tượng 35 35 36 36 4.4 Tính Java (3) 4.4 Tính Java (4) v Mạnh mẽ v Kiến trúc trung lập, di động § Thư viện lớp: Hàng trăm lớp viết trước với nhiều phương thức tiện ích § Java sử dụng mơ hình trỏ khơng cho phép truy cập trực tiếp vào nhớ; nhớ khơng thể ghi đè § Hỗ trợ nhiều platform, "Write Once, Run Anywhere" v Network capable § Hỗ trợ phát triển ứng dụng mơi trường mạng § Java hỗ trợ phát triển ứng dụng phân tán § Lý tưởng cho ứng dụng Web v An toàn § Java authentication dựa vào phương pháp mã hóa khóa cơng khai § Mơ hình trỏ Java bảo vệ liệu riêng tư đối tượng ngăn ứng dụng chưa authorized không phép truy cập cấu trúc liệu v Thực thi với hiệu suất cao 38 37 37 38 4.4 Tính Java (5) 3.5 Các ứng dụng Java v Thơng dịch ƯD thẻ thơng minh, thẻ SIM § Chương trình nguồn *.java biên dịch thành *.class sau thơng dịch thành mã máy ƯD Clound ƯD quy mô doanh nghiệp v Đa luồng (Multi-threaded) ƯD thiết bị nhúng § Cho phép chương trình bạn chạy nhiều tác vụ thời điểm ƯD thiết bị nhúng giới hạn tài nguyên v Khả chuyển (Portable) ƯD Windows sử dụng thiết bị nhúng § Các chương trình viết biên dịch lần, chạy tảng khác § Nhờ mơ hình biên dịch/thơng dịch § (WORE – Write Once, Run Everywhere) Phiên chuẩn, dành cho ứng dụng Phiên chuẩn, dành cho ứng dụng nhúng ƯD TV thông minh 39 39 40 10 Nội dung 4.1 Các bước cài đặt Java v Bước 1: Cài đặt JDK Công nghệ hướng đối tượng (HĐT) Đối tượng lớp Các nguyên lý LT HĐT Ngơn ngữ lập trình Java Cài đặt mơi trường lập trình v Bước 2: Cài đặt biến mơi trường (nếu dùng cmd) v Bước 3: Cài trình soạn thảo IDE (Integrated Development Environment ) § TextPad/JCreator/NetBean/Eclipse… v Bước 4: Lập trình/Viết mã nguồn (HelloWorld.java) v Bước 5: Dịch § Gõ lệnh: javac HelloWorld.java v Bước 6: Chạy chương trình § Gõ lệnh: java HelloWorld.class 41 41 42 42 5.1 Các bước cài đặt Java (2) 5.2 Chương trình ví dụ v Trong Windows // HelloWorld.java // Chuong trinh hien thi dong chu “Hello World” § JAVA_HOME = C:\Program Files\Java\jdk1.6 § PATH = …;% JAVA_HOME%\bin; § CLASSPATH = C:\Program Files\Java\jdk1.6\lib;.; C:\Program Files\Java\jdk1.6\include public class HelloWorld { public static void main(String args[]){ System.out.println( “Hello World!" ); v Trong Linux } § JAVA_HOME=/usr/lib/jvm/java-7-sun § PATH=$PATH:$JAVA_HOME/bin } 43 43 44 44 11 5.2 Chương trình ví dụ (2) 5.2 Chương trình ví dụ (3) import javax.swing.JOptionPane; import javax.swing.JOptionPane; public class FirstDialog{ public class HelloNameDialog{ public static void main(String[] args){ public static void main(String[] args){ JOptionPane.showMessageDialog(null, String result; ”Xin chao ban!”); result = JOptionPane.showInputDialog(“Hay nhap ten ban:”); System.exit(0); } JOptionPane.showMessageDialog(null, } ”Xin chao “+ result + “!”); System.exit(0); } } 45 45 46 46 Bài tập Bài Cài đặt Java Bài Cài đặt trình IDE Bài Chạy lại ví dụ phần 47 47 12 ... (method) Đối tượng phần mềm Đối tượng (object) thực thể phần mềm bao bọc thuộc tính phương thức liên quan Đối tượng phần mềm Xe Đạp Thuộc tính xác định giá trị cụ thể gọi thuộc tính thể Một đối tượng... thông điệp (message) 17 17 18 18 Thơng điệp vs Phương thức Đặc tính LT HĐT v Thông điệp Alan Kay tổng hợp đặc tính LT HĐT: § Được gửi từ đối tượng đến đối tượng kia, không bao gồm đoạn mã thực... trung vào đặc điểm thực thể, đặc điểm phân biệt với loại thực thể khác v Phụ thuộc vào góc nhìn (Quan trọng ngữ cảnh lại khơng có ý nghĩa nhiều ngữ cảnh khác) Phụ thuộc vào góc nhìn 23 23 24 24

Ngày đăng: 17/11/2022, 09:02

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan