Chương 1 Giới thiệu ngôn ngữ java

Nắm rõ các khái niệm về lập trình hướng đối tượng Làm quen với các cú pháp và phong cách lập trình hướng đối tượng với ngôn ngữ Java. Tạo và biên dịch các chương trình Java như các chương trình ứng dụng

pdf62 trang | Chia sẻ: lylyngoc | Lượt xem: 1737 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Chương 1 Giới thiệu ngôn ngữ java, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH JAVA CƠ BẢN Chương 1 GIỚI THIỆU NGÔN NGỮ JAVA GV: Võ Hoàng Phương Dung 2/25 Tài liệu tham khảo  Giáo trình “Lập trình Java cơ bản”  Giáo trình “Lập trình Java nâng cao”  Trần Tiến Dũng - Giáo trình lý thuyết và bài tập Java - NXB Giáo dục, 1999  Thinking in Java (4th Edition), Bruce Eckel  3/25 Mục đích và yêu cầu  Nắm rõ các khái niệm về lập trình hướng đối tượng  Làm quen với các cú pháp và phong cách lập trình hướng đối tượng với ngôn ngữ Java.  Tạo và biên dịch các chương trình Java như các chương trình ứng dụng Nội dung môn học  Giới thiệu về Java  Các thành phần cơ bản trong Java  Lập trình hướng đối tượng  Nhập xuất file & Ngoại lệ  Lập trình GUI  Kết nối cơ sở dữ liệu 4/25 5/25 Chương 1: Giới thiệu về Java  Tổng quan về lập trình hướng đối tượng (OOP)  Tổng quan về Java  Chương trình “Hello Java”  Giới thiệu Eclipse Tổng quan lập trình hướng đối tượng 6/25 7/25 Lập trình tuyến tính  Lập trình bằng assembly … ADDF3 R1, R2, R3 … Assembly Source File Assembler … 1101101010011010 … Machine Code File Main Program Data  COBOL  FORTRAN  BASIC  Pascal  Ada  C 8/25 Các ngôn ngữ lập trình cấp cao Visual Basic  Delphi  C++  C#  Java Compiler Source File Machine-language File Linker Executable File Library Code 9/25 Lập trình cấu trúc  Chương trình có cấu trúc được tổ chức theo các công việc mà chúng thực hiện  Chương trình chia nhỏ thành các chương trình con riêng rẽ (còn gọi là hàm hay thủ tục) Main Program Data Procedure1 Procedure2 Procedure3 10/25 Nhược điểm của Lập trình cấu trúc  Lặp lại code  Khó tìm và sửa lỗi  Khó cho làm việc theo nhóm  Thiếu sự che dấu thông tin 11/25 Lập trình hướng đối tượng (OOP)  Dựa trên ý tưởng • Xem thế giới ta đang sống là tuyển tập các đối tượng, ví dụ như : bạn, những người bạn cùng lớp với bạn, con chó của bạn, ĐTDĐ của bạn • Có sự tương tác giữa các đối tượng này bên trong ứng dụng để thực hiện các yêu cầu, ví dụ như: bạn có một con chó, bạn gọi điện thoại bằng ĐTDĐ của bạn, bạn nói chuyện với bạn cùng lớp của bạn  Xem dữ liệu (các thuộc tính) và các chức năng/xử lý (các phương thức) trên dữ liệu đó như một đối tượng riêng. Một đối tượng đóng bao cả dữ liệu và các phương thức 12/25 Lập trình hướng đối tượng (OOP) Object1 Data1+Procedures1 Object3 Data3 + Procedures3 Object2 Data2 + Procedures2 Object4 Data4 + Procedures4 13/25 Hàm Hàm Hàm Các thao tác Dữ liệu Đối tượng Các thao tác Dữ liệu Đối tượng Các thao tác Dữ liệu Đối tượng Lập trình cấu trúc Hướng đối tượng Lập trình hướng đối tượng (OOP) Ví dụ: Order Product Ship via Lập trình hướng đối tượng (OOP) Lập trình hướng đối tượng (OOP) Hai phần của một đối tượng • Đối tượng = Dữ liệu + Các phương thức  Hoặc: • Đối tượng = Trạng thái + Hành vi = + += Lập trình hướng đối tượng (OOP) I am an object! UNIQUE OBJECT IDENTIFIER (OID) NAME MARK DOB 14/02/1964 JOB LECTURER ATTRIBUTES State CHANGE JOB GET AGE BEHAVIOUR Methods Hai phần của một đối tượng Lập trình hướng đối tượng (OOP)  Các thuộc tính • Thành phần dữ liệu của một đối tượng • Xác định các đặc trưng mô tả của một đối tượng • Ví dụ: con chó của bạn có màu nâu, ĐTDĐ của bạn thuộc hãng Nokia  Các phương thức • Thành phần xử lý của một đối tượng • Xác định các hành vi của một đối tượng • Ví dụ: con chó đi, ĐTDĐ nhắn tin SMS Lập trình hướng đối tượng (OOP)  Một khung mẫu (template, blueprint, prototype) để tạo đối tượng • Ví dụ: lớp “Chó” xác định các thuộc tính và các phương thức của một con chó, nhưng lớp “Chó” không phải là một đối tượng  Một đối tượng được tạo từ một lớp • Là một minh họa của một lớp • Ví dụ: bạn là một minh họa của lớp “SinhViên”, con chó của bạn là một minh họa của lớp “Chó” Lớp  Các đối tượng của cùng một lớp • Có cùng một tập các thuộc tính và các phương thức  Ví dụ: mỗi sinh viên có thuộc tính “MãSốSV”, mỗi con chó có thuộc tính “Màu sắc” • Có thể có các giá trị thuộc tính khác nhau  Ví dụ: các sinh viên khác nhau có thể có giá trị mã số sinh sinh viên khác nhau, các con chó khác nhau có thể có màu sắc khác nhau Lớp & Đối tượng Lớp & Đối tượng Lớp & Đối tượng Daria Jane BrittanyJodie girlclassobject Lớp & Đối tượng Daria Jane BrittanyJodie girlclassobject Lớp & Đối tượng  Trừu tượng (Abstraction)  Đóng gói (Encapsulation)  Thừa kế (Inheritance)  Đa hình (Polymophism) Các đặc trưng cơ bản của LTHĐT  Trích những tính chất cần thiết của đối tượng và bỏ qua những tính chất không cần thiết • Xác định một cách nhìn một đối tượng  Ví dụ: xe hơi • Người bán hàng quan tâm giá, thời gian bảo hành, màu sắc, … • Người bảo hành quan tâm đến: kích thước đầu bơm xăng, kiểu bugi, .. Sự trừu tượng Sự trừu tượng  Một đối tượng đóng gói cả các thuộc tính và các phương thức của nó  Các gắn liền: • Một thuộc tính/phương thức gắn liền với một đối tượng • Khi đề cập đến một thuộc tính/phương thức, phải chỉ rõ thuộc tính/phương thức của đối tượng nào • Tại sao đóng bao ?  Khi có một đối tượng, cũng là có được các thành phần dữ liệu và hành vi của nó  Rất tốt cho dùng lại Sự đóng gói G E T A G E M E T H O D C H A N G E JO B M E T H O D NAME: MARK DOB: 14/02/64 JOB: LECTURER GET AGE CHANGE JOB OBJECT Sự đóng gói Sự đóng gói  Một đối tượng có thể che giấu các chi tiết bên trong của nó • Ta không thể biết cách làm việc bên trong của ĐTDĐ của mình ngoài các chức năng trên bàn phím  Có thể hiện một vài chi tiết nào đó ra thế giới bên ngoài • Hiển thị số điện thoại của mình khi gọi tới máy khác  Xác định một giao tiếp (interface) để tương tác với thế giới bên ngoài • ĐTDĐ tương tác với bạn thông qua bàn phím và màn hình Sự che dấu thông tin  Một đối tượng có thể có bên trong nó phức tạp nhưng có giao tiếp đơn giản • Làm cho giao tiếp với thế giới bên ngoài dễ hơn  Không cần biết bên trong của đối tượng • Chỉ có giao tiếp mới là quan trọng • Nghĩa là làm thế nào để tương tác với nó  Thuận tiện cho việc dùng lại code Manufacture A Manufacture B Manufacture C Sự che dấu thông tin • Sự thừa kế các thuộc tính, phương thức từ các lớp Cơ sở (base)/Cha (super) của các lớp Dẫn xuất (Derived)/ Con (sub) Sự thừa kế •Sự thừa kế hình thành nên phân cấp các lớp •Sự thừa kế mang đến: • Chia sẻ các thuộc tính và phương thứa (tránh viết lại code) • Mô hình hóa sự tổng quát hóa và chuyên biệt hóa trong thế giới thực • Viết các thành phần phần mềm chung, tổng quát (lớp cha/ lớp cơ sở), sau đó mở rộng/ dẫn xuất ra các lớp con/ dẫn xuất cần thiết Sự thừa kế Cùng một phương thức được sử dụng ở lớp cha/cơ sở có thể được định nghĩa lại trong các lớp con/dẫn xuất để đáp ứng với các đối tượng thuộc các lớp khác Sự đa hình Manufacturer A Manufacturer B Manufacturer C Khả năng che giấu nhiều cài đặt khác nhau đằng sau một giao tiếp Sự đa hình Cổ phiếu Trái phiếu Qũi chung Get Current Value getCurrentValue() getCurrentValue() getCurrentValue() Sự đa hình 38/25 Ưu điểm của Lập trình hướng đối tượng • Tạo ra sự gần gũi giữa bài toán thực tế và việc cài đặt chương trình • Đẩy mạnh việc chia sẻ trong phạm vi một ứng dụng • Đẩy mạnh sự sử dụng lại của các đối tượng khi cài đặt những ứng dụng mới • Về lâu dài, giảm đáng kể chi phí khi phát triển các ứng dụng mới • Giảm lỗi và sự phức tạp trong bảo trì • Sửa đổi nhanh hơn 39/25 Các ngôn ngữ OOP  Ngôn ngữ OOP đầu tiên là Smalltalk, do trung tâm nghiên cứu Palo Alto (PARC) của hãng XEROR tập trung 10 năm nghiên cứu để hoàn thiện từ tư tưởng của ngôn ngữ SIMULA67  Sau đó các ngôn ngữ OOP lần lượt ra đời như Eiffel, Clos, Loops, Flavors, Object Pascal, Object C, C++, Delphi, Java ... Tổng quan về java 40/25 41/39 Tổng quan về Java  James Gosling and Sun Microsystems  Oak  Java, May 20, 1995, Sun World  Khắc phục một số hạn chế của C++  JAVA là ngôn ngữ hướng đối tượng  JDK Versions • JDK 1.02 (1995) • JDK 1.1 (1996) • JDK 1.2 (1998) • JDK 1.3 (2000) • JDK 1.4 (2002) • JDK 1.5 (2004) a. k. a. JDK 5 or Java 5 • JDK 1.6 (2006) a. k. a. JDK 6 or Java 6 • JDK 1.7 (2011) a. k. a. JDK 7 or Java 7 42/25 Tổng quan về Java 43/25 Các đặc điểm của ngôn ngữ Java  Simple  Object-oriented  Distributed  Interpreted  Robust  Secure  Architecture-neutral  Portable  Performance  Multithreaded  Dynamic  đơn giản  hướng đối tượng  phân tán  thông dịch  mạnh mẽ  bảo mật  kiến trúc trung tính  khả chuyển  hiệu quả cao  đa tuyến  linh động 44/39 Tổng quan về Java Các ứng dụng Java  Ứng dụng Console: Ứng dụng nhập xuất ở chế độ văn bản tương tự màn hình Console của MS-DOS.  Ứng dụng Applet: Ứng dụng có thể nhúng và chạy trong trang web của một trình duyệt web.  Ứng dụng Desktop dùng giao diện đồ họa: Phát triển các ứng dụng đồ họa được giải quyết bằng thư viện AWT và JFC.  Ứng dụng Web: Java hỗ trợ mạnh mẽ đối với việc phát triển các ứng dụng Web thông qua công nghệ J2EE (Java 2 Enterprise Edition).  Ứng dụng nhúng: Java Sun đưa ra công nghệ J2ME hỗ trợ phát triển các phần mềm nhúng.  Java Standard Edition (J2SE) • J2SE để phát triển các ứng dụng hay applet phía client  Java Enterprise Edition (J2EE) • J2EE để phát triển các ứng dụng phía server như Java servlets và Java ServerPages.  Java Micro Edition (J2ME). • J2ME để phát triển các ứng dụng cho mobile 45/25 Các phiên bản JDK 46/25 Dịch và thực thi chương trình Java 47/39 Dịch và thực thi chương trình Java  Viết mã nguồn: Dùng một chương trình soạn thảo để viết mã nguồn, lưu lại với file tên có đuôi “.java”. Tên của file phải đặt giống tên của lớp chính trong chương trình.  Biên dịch ra mã máy ảo: Dùng trình biên dịch javac để biên dịch mã nguồn “.java” thành mã của máy ảo (java bytecode) có đuôi “.class”  Thông dịch và thực thi: Việc thông dịch và thực thi dùng lệnh “java”. 48/25 Dịch và thực thi chương trình Java 49/25 Dịch và thực thi chương trình Java Cài đặt  Tải Java tại website .html  Cài đặt JDK hoặc JRE  Thiết lập biến môi trường 50/25 Chương trình “Hello Java”  Viết mã nguồn bằng Notepad class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); // Display the string. } } 51/25  Lưu chương trình với đuôi .java 52/25 Chương trình “Hello Java”  Biên dịch chương trình javac HelloWorldApp.java 53/25 Chương trình “Hello Java”  Chạy chương trình 54/25 Chương trình “Hello Java” Giới thiệu Eclipse  Tải Eclipse tại trang  Chọn Eclipse IDE for Java Developers  Giải nén và chạy file eclipse.exe 55/25  Giao diện ban đầu 56/25 Giới thiệu Eclipse  Màn hình welcome 57/25 Giới thiệu Eclipse  Tạo 1 project 58/25 Giới thiệu Eclipse  Chọn Java Project, rồi next 59/25 Giới thiệu Eclipse  Nhập tên Project 60/25 Giới thiệu Eclipse  Tạo class 61/25 Giới thiệu Eclipse  Đặt tên class 62/25 Giới thiệu Eclipse