Bài giảng Giới thiệu về lập trình hướng đối tượng với Java

6. javah: Bộ tạo lập header của C và cho phép chương trình C gọi các phương thức (hàm) của Java và ngược lại 7. Javap: Trình dịch ngược. Hiển thị các phương thức, dữ liệu truy nhập được bên trong của tệp tin .class đã được dịch và hiển thị nghĩa của bytecode. Ngoài ra còn một số chương trình hỗ trợ để thực hiện những chức năng như thiết lập tệp chính sách (policy) – policytool. exe, tạo ra khoá- keytool. exe, chữ ký số - jarsigner. exe, nén và gộp nhiều tệp chương trình thành một gói – jar. exe, thực hiện triệu gọi từ xa rmiregistry. exe, v.v.

ppt19 trang | Chia sẻ: haohao89 | Lượt xem: 2429 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Bài giảng Giới thiệu về lập trình hướng đối tượng với Java, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Giới thiệu chung Môi trường lập trình Java Các loại chương trình Java: + Chương trình ứng dụng độc lập + Chương trình nhúng Applet. + Chương trình hỗn hợp CHƯƠNG II Giới thiệu về lập trình HĐT với Java 2.1. Giới thiệu chung Java là một ngôn ngữ lập trình hướng đối tượng Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun Microsystems năm 1990. Tên ban đầu là Oak (cây sồi) Java được phát hành vào năm 1994, rồi nó trở nên nổi tiếng khi Netscape tuyên bố tại hội thảo SunWorld năm 1995 là trình duyệt Navigator của họ sẽ hỗ trợ Java Sun Microsystems còn đưa ra hàng loạt công cụ hỗ trợ người lập trình phát triển các ứng dụng bằng Java như Java Developer Kit, JavaBeans, HotJava Java được tạo ra với tiêu chí "Viết một lần, chạy khắp nơi" ("Write Once, Run Anywhere" (WORA)). Chu trình phát triển chương trình với Java Tạo: Soạn thảo chương trình (Notepade, Wordpad, Jcreator, Netbeans…) Ghi tệp vói tên Welcome.java Biên dịch: Trên cửa sổ lệnh (cmd.exe) javac Welcome.java  Chạy: java Welcome  Ví dụ: Các đặc điểm của Java đơn giản (simple) hướng đối tượng (object-oriented) phân tán (distributed) thông dịch (interpreted) mạnh mẽ (robust) bảo mật (secure) khả chuyển (portable) đa luồng (multithreaded) linh động (dynamic) 2.2 Môi trường Java Java có thể dịch và thực hiện trong mọi môi trường điều hành, miễn là ở đó có chương trình thông dịch (máy Java ảo - JVM). Hiện nay có nhiều môi trường hỗ trợ để phát triển phần mềm với Java như: Visual J++, Symatec’s Café, Borland Jbuilder, JDK, v.v. Bộ JDK do Sun cung cấp bao gồm các chương trình sau: 1. javac: Chương trình dịch chuyển mã nguồn sang mã byte 2. java: Bộ thông dịch, thực thi các ứng dụng độc lập. 3. appletviewer: Bộ thông dịch, thực thi các ứng dụng nhúng (java applet). 4. javadoc: Bộ tạo tài liệu dạng HTML từ mã nguồn. 5. jdb: Bỗ gỡ lỗi (java debuger) cho phép thực hiện từng dòng lệnh, đặt điểm dừng, xem giá trị của các biến, v.v. 6. javah: Bộ tạo lập header của C và cho phép chương trình C gọi các phương thức (hàm) của Java và ngược lại 7. Javap: Trình dịch ngược. Hiển thị các phương thức, dữ liệu truy nhập được bên trong của tệp tin .class đã được dịch và hiển thị nghĩa của bytecode. Ngoài ra còn một số chương trình hỗ trợ để thực hiện những chức năng như thiết lập tệp chính sách (policy) – policytool. exe, tạo ra khoá- keytool. exe, chữ ký số - jarsigner. exe, nén và gộp nhiều tệp chương trình thành một gói – jar. exe, thực hiện triệu gọi từ xa rmiregistry. exe, v.v. 2.3 Các dạng chương trình ứng dụng của Java Có ba loại chương trình có thể phát triển với Java: 1. Các chương trình ứng dụng độc lập, 2. Các chương trình ứng dụng nhúng (applet), 3. Các chương trình kết hợp cả 2 loại trên. 1/ Chương trình ứng dụng độc lập + Chương trình ứng dụng độc lập là một chương trình nguồn mà sau khi dịch có thể thực hiện trực tiếp. + Chương trình độc lập bắt đầu và kết thúc thực hiện ở main() giống như trong chương trình C/C++. Ví dụ 2.1 Chương trình ứng dụng độc lập. Bài toán: Xây dựng lớp CharStack là cấu trúc Stack và ứng dụng để đảo ngược các xâu. // StandaloneApp.java public class StandaloneApp{ public static void main(String args[]){ CharStack stack = new CharStack(80);// Tạo ra đối tượng st String str = “maN teiV ,ioN aH”; // Tạo ra 1 xâu int leng = str.length(); // Số ký tự trong xâu System.out.println(“Dao nguoc day ky tu”); for(int k = 0; k class CharStack { private char[] stackArray; // Mảng các ký tự private int topOfStack; // Đỉnh của stack private static int counter; // (1) // Toán tử tạo lập đối tượng public CharStack(int capacity){ // (2) stackArray = new char[capacity]; topOfStack = -1; counter++; } public void push(char e){stackArray[++topOfStack]= e;} public char pop(){return stackArray[topOfStack--];} public char peek(){return stackArray[topOfStack];} public boolean isEmpty() {return topOfStack Dịch và thực hiện chương trình StandaloneApp.java javac StandaloneApp.java Kết quả của lệnh dịch trên là hai tệp StandaloneApp.class, CharStack.class chứa mã byte code của hai lớp tương ứng. java StandaloneApp Lưu ý: Khi thực hiện với Java thì chỉ cần viết tên lớp chứa hàm main() và không cần đưa thêm đuôi .class, Khi soạn thảo chương trình nên tạo ra một thư mục riêng, ví dụ c:\users\Lan để ghi chương trình nguồn (StandaloneApp). Tất cả những tệp lớp (.class) đều được tạo ra ở thư mục chứa chương trình nguồn, Phải chỉ rõ thư mục chứa các chương trình dịch, thông dịch javac.exe, java.exe. Thường các chương trình này được cài đặt và được lưu ở thư mục, ví dụ c:\jdk1.3\bin\java. Mọi lớp trong Java đều mặc định xem là lớp con của lớp Object được xây dựng sẵn trong gói java.lang và gói này cũng được xem là mặc định sử dụng mà không cần nhập (import) vào như các gói khác khi sử dụng các lớp chứa trong đó. 2/ Chương trình ứng dụng nhúng Applet Applet là loại chương trình Java đặc biệt mà khi thực hiện phải được nhúng vào chương trình ứng dụng khác như các trình duyệt Web Browser , hoặc appletviewer Ví dụ 2.2 Java Applet thực hệntương tự như bài toán ở ví dụ 2.1 import java.applet.Applet; // Nhập thư viện chứa lớp Applet import java.awt.Graphics; // Nhập thư viện chứa lớp Graphics // Mọi chương trình applet đều phi mở rộng (extends), kế thừa từ lớp Applet public class AppletApp extends Applet{ CharStack stack; String dayGoc, dayNguoc; public void init(){ // Nạp chồng lại hàm init() stack = new CharStack(80); dayGoc = new String("maN teiV ,ioN aH"); int leng = dayGoc.length(); // Số ký tự trong xâu // Đặt các ký tự của dayGoc vào stack để sau đó lấy ra theo thứ tự ngược lại for(int k = 0; k   // Nạp chồng hàm paint() để hiển thị (vẽ) các thông báo của applet public void paint(Graphics g){ // (2) g.drawString("Day ky tu dao nguoc:", 25, 25); g.drawString(dayNguoc, 25, 45); } }// class AppletApp   class CharStack{ // Như trên } Lớp Applet (tên đầy đủ java.applet.Applet) trong thư viên các lớp Java chuẩn (ở gói java.applet) cung cấp khuôn dạng và các chức năng chính để phát triển các applet. . Trong lớp AppletApp có hai hàm thành phần: init(), paint() được kế thừa từ lớp Applet nhưng được nạp chồng để thực hiện việc đảo ngược xâu và hiển thị thông tin của applet được tạo ra trên màn hình. Chú ý thấy ở đây hàm main() là không cần thiết đối với applet. Dịch và chạy chương trình AppletApp + Dịch chương trình AppletApp javac AppletApp.java + Kết quả chúng ta cũng có 2 tệp lớp AppletApp.class và CharStack.class. + Chương trình applet phải được đưa vào trang tư liệu theo dạng HTML để sau đó được nạp xuống thông qua Web Browser hoặc appletviewer. Tệp HTML chứa các thông tin tương ứng về tên tệp lớp ứng dụng applet và những thông tin khác cần nạp applet xuống để thực hiện. Tên của tệp lớp applet, kích cỡ của applet tính theo pixel. Tệp này được soạn bằng hệ soạn thảo bất kỳ và được ghi với tên gọi AppletApp.html. appletviewer AppletApp.html Chu trình hoạt động của applet Chương trình ứng dụng applet được thực hiện như sau: Khi một applet được nạp và chạy bởi Web Browser thì nó sẽ gửi thông điệp init() cùng với các dữ liệu, kích thước của Window để chương trình applet khởi động. Khi bắt đầu thực hiện, Web Browser thông báo cho applet bắt đầu bằng cách gọi phương thức start(). Khi rời khỏi trang Web có chứa applet thì chương trình applet này nhận được thông điệp stop() để dừng chương trình. Hoạt động của chương trình applet: + init(): Phương thức này được gọi khi applet được nạp lần đầu và được xem như là toán tử tạo lập cho applet, + start(): Được gọi khi applet bắt đầu thực hiện, xuất hiện khi: - applet được nạp xuống, - applet được duyệt lại. + stop(): Được gọi khi applet dừng thực hiện, nhưng chưa bị xoá + destroy(): Được gọi ngay trước khi applet kết thúc, khi trình duyệt Web Browser tự đóng lại và applet bị xóa khỏi bộ nhớ. Web Browser tìm chương trình applet 3/ Chương trình ứng dụng ở dạng Applet lẫn dạng độc lập Java cho phép xây dựng chương trình chạy được cả ở Web Browser lẫn như một ứng dụng độc lập. Định nghĩa lớp ứng dụng mở rộng, kế thừa từ lớp Applet, Trong lớp ứng dụng phải có hàm main(). Ví dụ 2.3 Chương trình chạy được cả với Web Browser và chạy độc lập import java.awt.Graphics; // XinChao.java import java.awt.Frame; import java.applet.Applet; public class XinChao extends Applet{ public void init(){ resize(200,160); // Đặt lại kích thước } public void paint(Graphics g){ g.drawString(“Xin chao cac ban!”, 60, 25); } // Hàm main() đảm bảo chương trình sẽ chạy được độc lập public static void main(String args[]){ XinChao h = new XinChao(); h.init(); Frame f = new Frame(“Chao Mung va Applet”); f.resize(200, 160); f.add(“Center”, h); f.show(); } }   Lưu ý: Tất nhiên để chương trình XinChao chạy được với Web Browser thì phải đưa vào tệp HTML (tệp XinChao.html).
Tài liệu liên quan