Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
253,5 KB
Nội dung
Bài tập lớn môn lậptrìnhJava Đề số LỜI NÓI ĐẦUJava công nghệ xây dựng ứng dụng phần mềm có vị trí lớn năm cuối kỉ 20, đầu kỉ 21 Nó coi công nghệ mang tính cách mạng khả thi việc tạo ứng dụng có khả chạy thống nhiều tảng mà cần biên dịch lần Lần xuất vào năm 1992 ngôn ngữ dùng nội tập đoàn Sun Microsystems để xây dựng ứng dụng điều khiển xử lý bên máy điện thoại cầm tay, lò vi sóng, thiết bị điện tử dân dụng khác Không ngôn ngữ, Java tảng phát triển triển khai ứng dụng máy ảo Java, thông dịch có vai trò trung tâm Sun, công ty phát minh ngôn ngữ Java, thức ban hành Java Development Kit 1.0 vào năm 1996 hoàn toàn miễn phí để nhà phát triển tải về, học Java, xây dựng ứng dụng Java triển khai chúng hệ điều hành có hỗ trợ Java Khi nhắc đến Java người ta không nhắc đến Java ngôn ngữ mà nhắc đến Java công nghệ hay tảng phát triển Cũng nhiều trường Đại học khác, Viện Đại Học Mở Hà Nội từ lâu đưa Java vào chương trình giảng dạy cho sinh viên Bài tập lớn nhằm mục đích giúp sinh viên tìmhiểubướcđầulàmquenvớilậptrìnhJava Xin chân thành cảm ơn thầy Dương Thăng Long hướng dẫn giúp đỡ em thực tập này! Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long Bài tập lớn môn lậptrìnhJava Đề số MỤC LỤC I.Giới thiệu tổng quan Java……………………………………………… …1 1.Nền tảng thiết lập cho Java…………………………………… … … 2.Ngôn ngữ lậptrình Java……………………………………………….…….2 3.Sự đời Java…………………………………………………………… 4.Triết lý Java……………………………………………………………….3 5.Một số đặc điểm Java……………………………………………… ……4 6.Ứng dụng…………………………………………………………………… 7.Một vài khái niệm…………………………………………………………….7 II Giới thiệu tổng quan J2ME……………………………………………….9 Lịch sử phát triển…………………………………………………………… Tại chọn J2ME………………………………………………….9 Kiến trúc J2ME…………………………………………………………9 Giới thiệu MIDP…………………………………………………………….12 III Bài tập thực hành………………………………………………………… 13 Đề bài……………………………………………………………………… 13 Nội dung mã nguồn (source code)………………………………………… 14 Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long Bài tập lớn môn lậptrìnhJava Đề số I.GIỚI THIỆU TỔNG QUAN VỀ JAVA Ngôn ngữ lậptrìnhJava chủ đề nói đến nhiều giới nay, logo Java - tách cà phê bốc khói, applet Java, tràn ngập khắp nơi World Wide Web Vậy, tượng Java có đặc biệt, lại làm thay đổi mặt giới điện toán? Tuy nhiên, Java ngôn ngữ lậptrình có khác biệt Để thực hiểu sức mạnh Java nguyên nhân làm cho nhanh chóng ưa chuộng, bạn phải xem xét hoàn cảnh khai sinh bầu không khí mà sống để nắm bắt lấy khả nǎng sáng tạo công nghiệp máy tính Dưới nhìn tổng quan ngôn ngữ lậptrìnhJava công nghệ Java 1.Nền tảng thiết lập cho Java Vào cuối thập niên 80 đầu thập niên 90, ngôn ngữ lậptrình hướng đối tượng C++ sử dụng phổ biến Dường lậptrình viên tìm ngôn ngữ lậptrình hoàn hảo Bởi C++ pha trộn tính hiệu cao yếu tố phong cách C với mô hình hướng đối tượng Tuy nhiên, khứ, lần thay đổi phát triển ngôn ngữ máy tính Chỉ vòng vài năm, World Wide Web Internet đến với số đông Điều chuẩn bị cho cách mạng ngôn ngữ lập trình, dẫn đến đời JavaJava công nghệ xây dựng ứng dụng phần mềm có vị trí lớn năm cuối kỉ 20, đầu kỉ 21 Nó coi công nghệ mang tính cách mạng khả thi việc tạo ứng dụng có khả chạy thống nhiều tảng mà cần biên dịch lần Ngày nay, Java tảng tất yếu ứng dụng quy mô lớn doanh nghiệp nhờ vào khả mở rộng tảng vô phong phú mà cung cấp Sun Microsystem (SUN viết tắt Stanford University Network), công ty phát minh ngôn ngữ Java, thức ban hành Java Development Kit 1.0 vào năm 1996 hoàn toàn miễn phí Java trải qua bước phát triển quan trọng: Java 1.0 gắn liền với JDK đầu tiên, Java gắn với JDK 1.2 Java gắn với J2SDK 1.5 Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long Bài tập lớn môn lậptrìnhJava Đề số 2.Ngôn ngữ lậptrìnhJava Ngôn ngữ lậptrìnhJava ngôn ngữ hướng đối tượng (tựa C++) SUN đưa vào thập niên 90 Khác với phần lớn ngôn ngữ lậptrình thông thường, thay biên dịch mã nguồn thành mã máy thông dịch mã nguồn chạy, Java thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau môi trường thực thi (runtime environment) chạy Bằng cách này, Java thường chạy nhanh ngôn ngữ lậptrình thông dịch khác Python, Perl, PHP, khả chuyển ngôn ngữ lậptrình biên dịch C++ Không nên lẫn lộn Javavới JavaScript, ngôn ngữ giống tên loại cú pháp C Ngày nay, Java người ta không nhắc đến ngôn ngữ lậptrình mà nhắc đến công nghệ hay tảng phát triển, bao gồm phận: * Máy ảo Java: JVM * Bộ công cụ phát triển: J2SDK * Các đặc tả chi tiết kĩ thuật (specifications) * Ngôn ngữ lậptrình (programming language) * Các công nghệ kèm JSP, Servlet, EJB, JDBC, JNDI, JMX, RMI … framework Struts, Spring, JSF, Hibernate, JavaFX 3.Sự đời Java Ngôn ngữ lậptrìnhJava James Gosling cộng nhóm Green Team Công ty Sun Microsystem phát triển Được thai nghén kiểu ngôn ngữ dùng cho thiết bị tiêu dùng, SUN giới thiệu Java năm 1995 thứ ngôn ngữ lậptrình dành cho trình duyệt Web Java nhanh chóng áp dụng để xây dựng công cụ hàng đầu cho doanh nghiệp ứng dụng tối quan trọng Đáng ngạc nhiên thúc đẩy ban đầuJava Internet Thay vào động cần thiết ngôn ngữ có tảng độc lập (hay kiến trúc trung lập) dùng để tạo phần mềm nhúng nhiều thiết bị tiêu dùng điện tử khác Ta đoán được, nhiều kiểu CPU dùng điều khiển Vấn đề rắc rối C C++ (hay hầu hết ngôn ngữ khác) chúng thiết kế để biên dịch cho Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long Bài tập lớn môn lậptrìnhJava Đề số đối tượng định Mặc dù biên dịch chương trình C++ cho loại CPU nào, để làm điều đòi hỏi trình biên dịch C++ đầy đủ cho CPU Vấn đề trình biên dịch đắt đỏ nhiều thời gian để tạo Vì cần giải pháp dễ dàng hiệu Trong nỗ lực để tìm giải pháp đó, Gosling đồng nghiệp bắt đầulàm việc ngôn ngữ linh động độc lậpvới tảng, dùng để sinh mã thực thi CPU khác môi trường khác Sau 18 tháng để phát triển phiên đầu tiên, nhóm đặt tên cho ngôn ngữ Oak (có nghĩa sồi, bên quan ông Gosling có trồng nhiều loại này) Sau Gosling biết tên Oak sử dụng cho ngôn ngữ lậptrình từ trước nên đổi tên Java - tên gọi đảo Indonexia, nơi nhóm nghiên cứu phát triển chọn để đặt tên cho ngôn ngữ lậptrình chuyến tham quan làm việc đảo Hòn đảo Java nơi tiếng với nhiều khu vườn trồng cafe, lý thường thấy biểu tượng ly café nhiều sản phẩm phần mềm, công cụ lậptrìnhJava Sun số hãng phần mềm khác đưa Java có vô số tính hấp dẫn người phát triển mô hình hướng đối tượng, cấu trúc mã dễ hiểu dựa C/C++ có tính liên kết logic quán cao hơn, có cấu trúc không an toàn, tính xử lý cấp thấp hơn, chế “dọn dẹp” nhớ tự động tích hợp sẵn đặc biệt có khả chạy nhiều phần cứng khác 4.Triết lý Java Write Once, Run Anywhere Tất chương trình muốn thực thi phải biên dịch mã máy Mã máy kiến trúc CPU máy tính khác (tập lệnh mã máy CPU Intel, CPU Solarix, CPU Macintosh … khác nhau), trước chương trình sau biên dịch xong chạy kiến trúc CPU cụ thể Đối với CPU Intel chạy hệ điều hành Microsoft Windows, Unix,Linux, OS/2, … Chương trình thực thi Windows biên dịch dạng file có đuôi EXE Linux biên dịch dạng file có đuôi ELF, Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long Bài tập lớn môn lậptrìnhJava Đề số trước chương trình chạy Windows muốn chạy hệ điều hành khác Linux chẳng hạn phải chỉnh sửa biên dịch lại Ngôn ngữ lậptrìnhJava đời, nhờ vào máy ảo Java mà khó khăn nêu khắc phục Một chương trình viết ngôn ngữ lậptrìnhJava biên dịch mã máy ảo java (mã java bytecode) Sau máy ảo Java chịu trách nhiệm chuyển mã java bytecode thành mã máy tương ứng Sun Microsystem chịu trách nhiệm phát triển máy ảo Java chạy hệ điều hành kiến trúc CPU khác Để đánh giá nghĩa tính độc lậpvới hệ máy này, tưởng tượng bạn nhà biên soạn phần mềm, bạn đưa trình duyệt Web dùng cho Windows 3.1 Do yêu cầu, bạn phải phát triển sản phẩm giống dành cho người sử dụng hệ điều hành khác Mac OS, Unix hay version khác Windows (ví dụ 95 NT) Để tiếp cận thị trường đó, bạn phải sửa lại chương trình sở hệ không muốn nói bạn soạn thảo lại toàn Nhưng vớiJava phải biên soạn lần hoạt động hệ thống, hệ điều hành, miễn bạn có trình thông dịch Java hoạt động lúc chạy 5.Một số đặc điểm Java Đơn giản (simple): Java đơn giản vì, dựa sở C++ Sun cẩn thận lược bỏ tính khó C++ để làm cho ngôn ngữ dễ sử dụng Là ngôn ngữ lậptrình hoàn toàn mới, buộc phải có dáng vẻ cảm nhận tương tự ngôn ngữ phổ biến hành đồng thời đòi hỏi khoảng thời gian huấn luyện lại tối thiểu thân thiện với người dùng Do đơn giản, ngôn ngữ nhỏ - nên nhớ từ đầu xây dựng để dùng cho điện tử dân dụng đầu chạy video hộp điều khiển từ xa, thiết bị có không gian lưu trữ hạn chế Hướng đối tượng (Object Oriented): Hướng đối tượng Java tương tự C++ Java ngôn ngữ lậptrình hướng đối tượng hoàn toàn Tất thứ đề cập đến Java liên quan đến đối tượng định nghĩa trước, chí hàm chương trình viết Java (đó hàm main) phải đặt bên lớp Hướng đối tượng Java tính đa kế thừa (multi inheritance) Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long Bài tập lớn môn lậptrìnhJava Đề số C++ mà thay vào Java đưa khái niệm interface để hỗ trợ tính đa kế thừa Vấn đề bàn chi tiết phần sau Hiểu mạng (network-savvy): Javalập để hoạt động mạng có thủ tục để quản lý giao thức mạng TCP/IP, FTP HTTP Nói cách khác, Java xây dựng để thực hoàn toàn thích hợp Internet Chương trìnhJava chí xâm nhập vào đối thượng khác thông qua Internet cách sử dụng URL (địa Web) để định vị chúng Mạnh mẽ (robust): Khả mạnh phải phù hợp với thiết kế ngôn ngữ, hướng vào việc khắc phục hư hỏng nhớ đảm bảo tính toán vẹn liệu Ví dụ, Java có tính "automatic garbage collection" (tự động thu gom rác) - có nghĩa nhớ giải phóng cách tự động - nên lậptrình viên bận tâm việc quản lý nhớ nhờ có xu hướng làm việc gây hỏng nhớ An toàn (secure): Khả hướng mạng Java tự động đưa yêu cầu an toàn Đặc tính an toàn ngôn ngữ lậptrình bắt nguồn từ việc có phần hạn chế cài sẵn nhằm đề phòng chương trìnhJava thực chức ghi vào ổ cứng người dùng hay cho phép virus từ mạng từ môi trường phân tán thâm nhập vào Độc lậpvới cấu trúc (architecture neutral): Đây thuộc tính đặc sắc JavaJava tạo với tiêu chí "Viết (code) lần, thực thi khắp nơi" ("Write Once, Run Anywhere" (WORA)) Tính biên dịch lần chạy nhiều đạt nhờ just-in-time compiler (JIT), chuyển mã bytecode Java sang mã máy chương trình chạy Chương trình phần mềm viết Java chạy tảng (platform) khác thông qua môi trường thực thi với điều kiện có máy ảo java thích hợp hỗ trợ tảng Môi trường thực thi Sun Microsystems hỗ trợ Sun Solaris, Linux, Mac OS, FreeBSD, Windows nhiều hệ thống cài đặt thiết bị di động Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long Bài tập lớn môn lậptrìnhJava Đề số Di động (portable): Đối với phạm vi rộng, Java loại di chuyển nhờ khả độc lậpvới hệ máy Đồng thời, loại liệu, giao diện, dáng vẻ cảm nhận Java giống hệ máy Hệ thống thành phần java có tính di động cao - viết Java Thông dịch (Interpreter): Java ngôn ngữ lậptrình vừa biên dịch vừa thông dịch Chương trình nguồn viết ngôn ngữ lậptrìnhJava có đuôi *.java biên dịch thành tập tin có đuôi *.class sau trình thông dịch thông dịch thành mã máy Để chạy Java bytecode, cần cài đặt JRE (Java Runtime Environment) JRE cung cấp thư viện bản, Java Virtual Machine, plugin cho trình duyệt, thứ khác Tốc độ cao (high performance): Khi Sun Microsystems mô tả Java có tốc độ cao, có lẽ họ muốn nói mã bytecode thông dịch hiệu ( Java thường chạy nhanh ngôn ngữ lậptrình thông dịch khác Python, Perl, PHP ) Về tốc độ applet hay chương trìnhJava nói chung chậm chương trìnhJava nói chung chậm chương trình biên dịch viết C+ +, chương trình tối ưu hoá từ trước cho hệ máy định Java phải trả giá hiệu suất cho tính không phụ thuộc hệ Đa luồng (multithreaded): Đa luồng có nghĩa ngôn ngữ Java cho phép xây dựng trình ứng dụng, đo, nhiều trình xảy đồng thời Tính đa luồng cho phép nhà lậptrình biên soạn phần mềm đáp ứng tốt hơn, tương tác tốt hơn, thực theo thời gian thực Tính động (dynamic): Java động thiết kế để đáp ứng với môi trường tác nghiệp tình trạng thay đổi Khi có yêu cầu xuất thị trường, loại đối tượng bổ sung vào Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long Bài tập lớn môn lậptrìnhJava Đề số 6.Ứng dụng Ban đầu, Java chủ yếu dùng để phát triển applet, ứng dụng nhúng vào trình duyệt, góp phần làm sinh động trang web tĩnh vốn tẻ nhạt hồi dó Tuy nhiên, với phát triển công nghệ thông tin nhu cầu xã hội, Java applet dần vị trí thay vào đó, công ty, cộng đồng ủng hộ Java phát triển theo hướng khác Hiện nay, công nghệ Java chia làm ba phận hỗ trợ cho việc phát triển nhiều loại hình ứng dụng khác cụ thể như: J2SE (Java Standard Edition)Gồm đặc tả, công cụ, API nhân Java giúp phát triển ứng dụng desktop định nghĩa phần thuộc nhân Java: platform cho phát triển thực thi ứng dụng Java desktop server, thiết bị nhúng, môi trường thời gian thực J2EE (Java Enterprise Edition) Gồm đặc tả, công cụ, API mở rộng J2SE để phát triển ứng dụng qui mô doanh nghiệp, chủ yếu để chạy máy chủ (server) Bộ phận hay nhắc đến công nghệ công nghệ Servlet/JSP: sử dụng Java để làm ứng dụng web J2ME (Java Micro Edition) Gồm đặc tả, công cụ, API mở rộng để phát triển ứng dụng Java chạy điện thoại di động, thẻ thông minh, thiết bị điện tử cầm tay, robo ứng dụng điện tử khác 7.Một vài khái niệm SDK (Software Development Kit) thường khái niệm công cụ lập trình, tiện ích, tài liệu thư viện API JDK hay J2SDK sdk dùng cho Java Sun Microsystems phát triển JDK cung cấp tiện ích command line dùng để biên dịch chạy ứng dụng java (lệnh javac, java ), công cụ lập trình, trình biên dịch tìm lỗi, javadoc hệ thống thư viện java class API JVM (Java virtual machine) máy ảo java Các class java sau build sinh file java byte code (các file class jar) Các file có JVM hiểu mà Và JVM đọc file sinh mã tương ứng với hệ điều hành (window, linux, mac ) Đây lý làm cho java "write one run anywhere" Để dễ hình dung, bạn nghĩ JVM Windows jre\bin\java.exe jre\bin\javaw.exe DLL file exe Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long Bài tập lớn môn lậptrìnhJava Đề số JRE (Java Runtime Environment) - môi trường thực thi Java, cung cấp Java API, máy ảo Java (Java Virtual Machine hay JVM) thành phần cần thiết khác để chạy applet ứng dụng viết ngôn ngữ lậptrìnhJava Môi trường thực thi Java công cụ tiện ích trình biên dịch hay trình gỡ lỗi để phát triển applet ứng dụng Java Runtime library thư viện class compiled sẵn đặt file jre\lib\rt.jar Các class java.lang.String, java.lang.Object, nằm gói jar JRE = JVM + Java Runtime library: bạn thấy java.exe, javaw.exe rt.jar thư mục cài đặt jre JDK = JRE + tools (javac.exe, keytool.exe, ) + document (help, samples, ) + src.zip Người cài gói JDK chủ yếu lậptrình viên Java, họ muốn dùng tools JDK để compile mã nguồn sau chạy chương trìnhJava compile (dùng JRE JDK) JDK có tích hợp sẵn private JRE, bạn người sử dụng muốn thực thi chương trìnhjava cần cài Public JRE không cần cài JDK II GIỚI THIỆU TỔNG QUAN VỀ J2ME Có lẻ nhắc đến J2ME tất đểu biết làm tảng lậptrình Sun dùng để phát triển ứng dụng game cho thiết bị di động Để tìmhiểu J2ME trước tiên tìmhiểu từ khái niệm Lịch sử phát triển a) J2ME phát triển từ kiến trúc Java Card, Embeded Java Personal Java phiên Java 1.1 Đến đời Java Sun định thay Personal Java đươc gọi với tên Java Micro Edition, hay viết tắt J2ME Đúng với tên gọi, J2ME tảng cho thiết bị có tính chất nhỏ, gọn: Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long Bài tập lớn môn lậptrìnhJava Đề số Tại chọn J2ME Java ban đầu thiết kế dành cho máy với tài nguyên nhớ hạn chế b) Thị trường J2ME mở rộng cho nhiều chủng loại thiết bị như: • Các lọai thẻ cá nhân Java Card • Máy điện thoại di động • Máy PDA (Personal Digital Assistant - thiết bị trợ giúp cá nhân) • Các hộp điều khiển dành cho tivi, thiết bị giải trí gia dụng … Kiến trúc J2ME Phần trình bày kiến trúc tổng quát tảng Java Giới thiệu thành phần tảng J2ME: a) Định nghĩa Configuration (Cấu hình): đặc tả định nghĩa môi trường phần mềm cho dòng thiết bị phân loại tập hợp đặc tính, ví dụ như: • Kiểu số lượng nhớ • Kiểu tốc độ vi xử lý • Kiểu mạng kết nối Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long Bài tập lớn môn lậptrìnhJava Đề số Do đặc tả nên nhà sản xuất thiết bị Samsung, Nokia …bắt buộc phải thực thi đầy đủ đặc tả Sun qui định để lậptrình viên dựa vào môi trường lậptrình quán thông qua quán này, ứng dụng tạo mang tính độc lập thiết bị cao Ví dụ lậptrình viên viết chương trình game cho điện thoại Samsung sửa đổi chương trình cách tối thiểu để chạy điện thọai Nokia Hiện Sun đưa dạng Configuration: • CLDC (Connected Limited Device Configuration-Cấu hình thiết bị kết nối giới hạn): thiết kế để nhắm vào thị trường thiết bị cấp thấp (low-end), thiết bị thông thường máy điện thọai di động PDA với khoảng 512 KB nhớ Vì tài nguyên nhớ hạn chế nên CLDC gắn vớiJava không dây (Java Wireless ), dạng cho phép người sử dụng mua tải ứng dụng Java, ví dụ Midlet • CDC- Connected Device Configuration (Cấu hình thiết bị kết nối): CDC đưa nhắm đến thiết bị có tính mạnh dòng thiết bị thuộc CLDC yếu hệ thống máy để bàn sử dụng J2SE Những thiết bị có nhiều nhớ (thông thường 2Mb) có xử lý mạnh Các sản phẩm kể đến máy PDA cấp cao, điện thoại web, thiết bị gia dụng gia đình … Cả dạng Cấu hình kể chứa máy ảo Java (Java Virtual Machine) tập hợp lớp (class) Java để cung cấp môi trường cho ứng dụng J2ME Tuy nhiên, bạn ý thiết bị cấp thấp, hạn chế tài nguyên nhớ xử lý nên yêu cầu máy ảo hổ trợ tất tính với máy ảo J2SE, ví dụ, thiết bị thuộc CLDC phần cứng yêu cầu phép tính toán dấu phẩy động, nên máy ảo thuộc CLDC không yêu cầu hỗ trợ kiểu float double b) Định nghĩa Profile: Profile mở rộng Configuration cách thêm vào class để bổ trợ tính cho thiết bị chuyên biệt Cả Configuration có profile liên quan từ profile dùng class lẫn Đến ta nhận thấy profile định nghĩa tập hợp class khác nhau, nên thường ta chuyển ứng dụng Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long 10 Bài tập lớn môn lậptrìnhJava Đề số Java viết cho profile chạy máy hỗ trợ profile khác Cũng với lý đó, bạn lấy ứng dụng viết J2SE hay J2EE chạy máy hỗ trợ J2ME Sau profile tiêu biểu: • Mobile Information Device Profile (MIDP): profile bổ sung tính hỗ trợ kết nối, thành phần hỗ trợ giao diện người dùng … vào CLDC Profile thiết kế chủ yếu để nhắm vào điện thọai di động với đặc tính hình hiển thị hạn chế, dung lượng chứa có hạn Do MIDP cung cấp giao diện người dùng đơn giản tính mạng đơn giản dựa HTTP Có thể nói MIDP profile tiếng kiến thức cho lậptrìnhJava máy di động (Wireless Java) • PDA Profile: tương tự MIDP, với thị trường máy PDA với hình nhớ lớn • Foundation Profile: cho phép mở rộng tính CDC với phần lớn thư viện Core Java2 1.3 Ngoài có Personal Basis Profile, Personal Profile, RMI Profile, Game Profile Giới thiệu MIDP a) Định nghĩa: Đây Profile định nghĩa dành riêng cho thiết bị di động thành phần J2ME MIDP cung cấp chức cho hầu hết dòng thiêt bị di động phổ biến máy điện thoạI di động máy PDA Tuy nhiên MIDP đũa thần cho lậptrình viên biết, MIDP thiết kế cho máy di động có cấu hình thấp b) Những chức MIDP không thực được: • Phép tính dấu phẩy động (floating point): Phép tính đòi hỏi nhiều tài nguyên CPU phần lớn CPU cho thiết bị di động không hỗ trợ phép tính này, MIDP • Bộ nạp class (Class Loader) • Hỗ trợ từ khóa finalize() J2SE: Việc “dọn dẹp“ tài nguyên trước bị xóa đẩy phía lậptrình viên • Không hỗ trợ JNI • Hỗ trợ hạn chế thao tác bắt lỗi Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long 11 Bài tập lớn môn lậptrìnhJava Đề số • Phần lớn thư viện API cho Swing AWT sử dụng MIDP • Không hỗ trợ tính quản lý file thư mục: Đây làm bạn ngạc nhiên thực tế thiết bị J2ME hỗ trợ thiết bị lưu trữ thông thường ổ cứng v.v Tuy nhiên, điều nghĩa bạn phải liệu quan trọng tắt máy, Sun cung cấp chức khác tương đương gọi Record Management system (RMS) để cung cấp khả lưu trữ cho thiết bị c) Những chức MIDP cung cấp • Các lớp kiểu liệu: Phần lớn lớp mà lậptrình viên Javaquen thuộc giữ lại ví dụ lớp gói java.util Stack, Vector Hastable Enumeration • Hỗ trợ đối tượng Display: Đúng tên gọi chương trình MIDP hỗ trợ đối tượng Display đối tượng quản lý việc hiển thị liệu hình điện thoại • Hỗ trợ Form giao diện người dùng • Hỗ trợ Timer Alert • Cung cấp tính Record Management System (RMS) cho việc lưu trữ liệu Ngoài vào tháng 11 năm 2003 Sun tung MIDP 2.0 với hàng loạt tính khác cung cấp thêm so với 1.0 Những cải tiến bật so với MIDP 1.0 • Nâng cấp tính bảo mật o Download qua mạng an toàn qua việc hỗ trợ giao thức HTTPS o Kiểm soát việc kết nối máy di động server: ví dụ chương trình kết nối tới server thiếu chấp thuận người sử dụng • Thêm API hỗ trợ Multimedia Một cải tiến hấp dẫn MIDP 2.0 tập API media Các API tập hỗ trợ âm Mobile Media API (MMAPI) Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long 12 Bài tập lớn môn lậptrìnhJava Đề số • Mở rộng tính Form Nhiều cải tiến đưa vào API javax.microedition.lcdui MIDP 2.0, thay đổi lớn (ngoài API cho game) Form Item • Hỗ trợ lậptrình viên Game cách tung Game API: Có lẽ Sun kịp nhận thị trường đầy tiềm thiết bị di động lĩnh vực Game Với MIDP 1.0 lậptrình viên phải tự viết code để quản lý hành động nhân vật quản lý đồ họa Việc làm tăng kích thước file sản phẩm việc xuất đoạn mã bị lỗi Được hưởng lợi từ Game API MIDP 2.0 không lậptrình viên Game mà lậptrình viên cần sử dụng tính đồ họa cao cấp Ý tưởng Game API việc giả định hình game tập hợp layer (lớp) Ví dụ như: game đua xe hình layer, đường layer xe xem nằm layer khác Với Game API nhà phát triển cung cấp tính quản lý thao tác bàn phím • Hỗ trợ kiểu ảnh RGB: cải tiến hấp dẫn cho nhà phát triển MIDP việc biểu diễn hình ảnh dạng mảng số nguyên, cho phép MIDlet thao tác với liệu hình ảnh cách trực tiếp Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long 13 Bài tập lớn môn lậptrìnhJava Đề số III.BÀI TẬP THỰC HÀNH Đề Đề số 8: Lậptrình MIDlet thực • Vẽ bóng (màu xanh chẳng hạn) chuyển động phản xạ hình, • Vẽ bong khác màu (ví dụ đỏ) có kích thước vào vị trí bất kỳ, di chuyển xử lý phím mũi tên, • Xử lý phím FIRE (chọn) để tự động di chuyển bóng đến vị trí bóng chuyển động, • Có nút lệnh bên trái hình: đếm lên hình số lần hai bóng chạm (có khoảng cách hai tâm nhỏ hai lần bán kính) Nội dung mã nguồn (source code) package de8; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.lcdui.game.*; class VE1 extends GameCanvas implements Runnable{ int x1=0,y1=0,dx=2,dy=1,x2=10,y2=50; public void run(){ while(true){ veHT1(); try{ Thread.sleep(100); Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long 14 Bài tập lớn môn lậptrìnhJava Đề số }catch(Exception e){} XoaHT1(); x1 = x1 + dx; y1 = y1 + dy; if(x1getWidth()-30) dx = dx * (-1); if(y1getHeight()-30) dy = dy * (-1); veHT2(); } } VE1(){ super(false); veHT1();new Thread(this).start(); veHT2(); } void veHT1(){ Graphics g=getGraphics(); g.setColor(0, 0, 255); g.fillArc(x1, y1, 30, 30, 0, 360); flushGraphics(); } void XoaHT1(){ Graphics g=getGraphics(); g.setColor(255, 255, 255); g.fillArc(x1, y1, 30, 30, 0, 360); flushGraphics(); } Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long 15 Bài tập lớn môn lậptrìnhJava Đề số void veHT2(){ Graphics g=getGraphics(); g.setColor(255, 0,0); g.fillArc(x2, y2, 30, 30, 0, 360); flushGraphics(); } void XoaHT2(){ Graphics g=getGraphics(); g.setColor(255, 255, 255); g.fillArc(x2, y2, 30, 30, 0, 360); flushGraphics(); } public void keyPressed(int k){ int k1=getGameAction(k); XoaHT2(); if(k1==LEFT) x2-=10; if(k1==RIGHT)x2+=10; if(k1==UP) y2-=10; if(k1==DOWN) y2+=10; veHT2(); } } public class Bong extends MIDlet { public void startApp() { Display.getDisplay(this).setCurrent(new VE1()); } Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long 16 Bài tập lớn môn lậptrìnhJava Đề số public void pauseApp() { } public void destroyApp(boolean unconditional) { } } 3.Hình ảnh mà hình chạy Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long 17 Bài tập lớn môn lậptrìnhJava Đề số Nhóm – Lớp 0310B1 GVHD: Thầy Dương Thăng Long 18 ... lập trình Java công nghệ Java 1.Nền tảng thiết lập cho Java Vào cuối thập niên 80 đầu thập niên 90, ngôn ngữ lập trình hướng đối tượng C++ sử dụng phổ biến Dường lập trình viên tìm ngôn ngữ lập. .. Bài tập lớn môn lập trình Java Đề số 2.Ngôn ngữ lập trình Java Ngôn ngữ lập trình Java ngôn ngữ hướng đối tượng (tựa C++) SUN đưa vào thập niên 90 Khác với phần lớn ngôn ngữ lập trình thông thường,... dụng java (lệnh javac, java ), công cụ lập trình, trình biên dịch tìm lỗi, javadoc hệ thống thư viện java class API JVM (Java virtual machine) máy ảo java Các class java sau build sinh file java