Phát triển ứng dụng mã nguồn mở - Bài 4: Core Java

Nội dung • Tổng quan về Java • So sánh Java và C++ • Đặc trưng của Java • Java platform • Nguyên lý hướng đối tượng của Java

pdf34 trang | Chia sẻ: thuychi16 | Lượt xem: 683 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Phát triển ứng dụng mã nguồn mở - Bài 4: Core Java, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Đoàn Thiện Ngân Bài 4 - 1/34 Bài 4 : Core Java GV: ĐOÀN THIỆN NGÂN Đoàn Thiện Ngân Bài 4 - 2/34 Nội dung • Tổng quan về Java • So sánh Java và C++ • Đặc trưng của Java • Java platform • Nguyên lý hướng đối tượng của Java Đoàn Thiện Ngân Bài 4 - 3/34 Tài liệu tham khảo 1. JAVA™ FOR PROGRAMMERS, 2ND EDITION, DEITEL® DEVELOPER SERIES 2. NetBeans IDE 7 Cookbook, 2011, Packt Publishing 3. Java Tutorial, 4. Netbeans Tutorial, Đoàn Thiện Ngân Bài 4 - 4/34 Tổng quan về Java • Java có cấu trúc tương tự C++ • Java đơn giản hơn • Java là một ngôn ngữ lập trình rất mạnh • Java là một công nghệ mới xây dựng ứng dụng trên nhiều nền tảng khác nhau /java/index-jsp-135888.html Đoàn Thiện Ngân Bài 4 - 5/34 Java và C++ C++ Java Object-Oriented Optional Obligatory Variables Globals Function Optional doesn’t exist Multi-Platform Soure Code (sometime) Soure Code bytecode Memory Administration Manual Automatic (Gababe Collector) Multi-Thread No Yes Multi-Inheritance Yes No Đoàn Thiện Ngân Bài 4 - 6/34 Đặc trưng của Java • Hướng đối tượng • Đơn giản • Phân tán • Thông dịch trung gian (bytecode) • An toàn - Bảo mật • Cấu trúc độc lập • Dễ thích ứng • Kiểu dữ liệu mạnh • Xử lý đa luồng (multi-thread) Đoàn Thiện Ngân Bài 4 - 7/34 Đặc trưng của Java • Đặc trưng cơ bản của Java từ C và C++ • Java được dùng nhiều trong ứng dụng: – di động – desktop – web • JVM (Java Virtual Machine) là máy ảo Java để chạy chương trình Java dạng bytecode (JRE - Java Runtime Environment) • JDK (Java Development Kit) là bộ công cụ để biên dịch (bytecode), dò lỗi và thực thi chương trình Java Đoàn Thiện Ngân Bài 4 - 8/34 Đoàn Thiện Ngân Bài 4 - 9/34 • HelloWorldApp.java • javac HelloWorldApp.java • HelloWorldApp.class • java HelloWorldApp Đoàn Thiện Ngân Bài 4 - 10/34 What Can Java Technology Do? The general-purpose, high-level Java programming language is a powerful software platform. Every full implementation of the Java platform gives you the following features. • Development Tools: The development tools provide everything you'll need for compiling, running, monitoring, debugging, and documenting your applications. As a new developer, the main tools you'll be using are the javac compiler, the java launcher, and the javadoc documentation tool. Đoàn Thiện Ngân Bài 4 - 11/34 What Can Java Technology Do? • Application Programming Interface (API): The API provides the core functionality of the Java programming language. It offers a wide array of useful classes ready for use in your own applications. It spans everything from basic objects, to networking and security, to XML generation and database access, and more. The core API is very large; to get an overview of what it contains, consult the Java SE Development Kit (JDKTM) documentation. Đoàn Thiện Ngân Bài 4 - 12/34 What Can Java Technology Do? • Deployment Technologies: The JDK software provides standard mechanisms such as the Java Web Start software and Java Plug-In software for deploying your applications to end users. • User Interface Toolkits: The Swing and Java 2D toolkits make it possible to create sophisticated Graphical User Interfaces (GUIs). Đoàn Thiện Ngân Bài 4 - 13/34 What Can Java Technology Do? • Integration Libraries: Integration libraries such as the Java IDL API, JDBCTM API, Java Naming and Directory InterfaceTM ("J.N.D.I.") API, Java RMI, and Java Remote Method Invocation over Internet Inter-ORB Protocol Technology (Java RMI-IIOP Technology) enable database access and manipulation of remote objects. Đoàn Thiện Ngân Bài 4 - 14/34 How Will Java Technology Change My Life? We can't promise you fame, fortune, or even a job if you learn the Java programming language. Still, it is likely to make your programs better and requires less effort than other languages. We believe that Java will help you: • Get started quickly: Although the Java programming language is a powerful object- oriented language, it's easy to learn, especially for programmers already familiar with C or C++. • Write less code: Comparisons of program metrics (class counts, method counts, and so on) suggest that a program written in the Java programming language can be four times smaller than the same program written in C++. Đoàn Thiện Ngân Bài 4 - 15/34 How Will Java Technology Change My Life? • Write better code: automatic garbage collection helps you avoid memory leaks. Its object orientation, its JavaBeansTM component architecture, and its wide- ranging, easily extendible API let you reuse existing, tested code and introduce fewer bugs. • Develop programs more quickly: is simpler than C++, and as such, your development time could be up to twice as fast when writing in it. Your programs will also require fewer lines of code. Đoàn Thiện Ngân Bài 4 - 16/34 How Will Java Technology Change My Life? • Avoid platform dependencies: You can keep your program portable by avoiding the use of libraries written in other languages. • Write once, run anywhere: Because applications written in the Java programming language are compiled into machine-independent bytecodes, they run consistently on any Java platform. Đoàn Thiện Ngân Bài 4 - 17/34 How Will Java Technology Change My Life? • Distribute software more easily: With Java Web Start software, users will be able to launch your applications with a single click of the mouse. An automatic version check at startup ensures that users are always up to date with the latest version of your software. If an update is available, the Java Web Start software will automatically update their installation. Đoàn Thiện Ngân Bài 4 - 18/34 JAVA Editors • Netbeans • Eclipse • JBuilder • JCreator • JDeveloper • KDeveloper • Đoàn Thiện Ngân Bài 4 - 19/34 The "Hello World!" Application • JDK: Java Development Kit avase/downloads/index.html • Java Compiler: javac • Java Runtime Machine: – java – javaw • JRE: Java Runtime Machine – jre – java, javaw Đoàn Thiện Ngân Bài 4 - 20/34 The "Hello World!" Application • NetBeans IDE • HelloWorldApp.java public class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!\n"); } } • Biên dịch: javac HelloWorldApp.java • Chạy thử: java HelloWorldApp • Netbeans: Build (F11, Shift+F11); Run (F6) • Chú ý: Tên class trùng tên tập tin java Đoàn Thiện Ngân Bài 4 - 21/34 JAR File • Chương trình soạn thảo project trong Java có chức năng đóng gói thành một tập tin có extension là JAR. • Netbeans tạo file *.jar đóng gói chương trình trong thư mục dist của project • Chạy chương trình với file jar java ─jar *.jar Ví dụ: java ─jar HelloWorldApp.jar Đoàn Thiện Ngân Bài 4 - 22/34 What is Swing? • To create a Java program with a graphical user interface (GUI), you'll want to learn about Swing. • The Swing toolkit includes a rich set of components for building GUIs and adding interactivity to Java applications. Swing includes all the components you would expect from a modern toolkit: table controls, list controls, tree controls, buttons, and labels, • Swing is far from a simple component toolkit, however. It includes rich undo support, a highly customizable text package, integrated internationalization and accessibility support. Đoàn Thiện Ngân Bài 4 - 23/34 What is Swing? • Swing supports numerous look and feels, including the ability to create your own look and feel. • Swing wouldn't be a component toolkit without the basic user interface primitives such as drag and drop, event handling, customizable painting, and window management. • Swing is part of the Java Foundation Classes (JFC). The JFC also include other features important to a GUI program, such as the ability to add rich graphics functionality and the ability to create a program that can work in different languages and by users with different input devices. Đoàn Thiện Ngân Bài 4 - 24/34 Swing and JFC • Swing GUI Components: The Swing toolkit includes a rich array of components: buttons, check boxes, tables, text, There are file browsers and dialogs to suit most needs, and if not, customization is possible. If none of Swing's provided components are exactly what you need, you can leverage the basic Swing component functionality to create your own. • Java 2D API: To make your application stand out; convey information visually; or add figures, images, or animation to your GUI, you'll want to use the Java 2D API. Because Swing is built on the 2D package, it's trivial to make use of 2D within Swing components. Adding images, drop shadows, compositing — it's easy with Java 2D. Đoàn Thiện Ngân Bài 4 - 25/34 Swing and JFC • Pluggable Look-and-Feel: Support Any program that uses Swing components has a choice of look and feel. The classes shipped by Oracle provide a look and feel that matches that of the platform. The Synth package allows you to create your own look and feel. The GTK+ look and feel makes hundreds of existing look and feels available to Swing programs. • A program can specify the look and feel of the platform it is running on, or it can specify to always use the Java look and feel, and without recompiling, it will just work. Or, you can ignore the issue and let the UI manager sort it out. Đoàn Thiện Ngân Bài 4 - 26/34 Swing and JFC • Data Transfer : via cut, copy, paste, and drag and drop, is essential to almost any application. Support for data transfer is built into Swing and works between Swing components within an application, between Java applications, and between Java and native applications. • Internationalization: This feature allows developers to build applications that can interact with users worldwide in their own languages and cultural conventions. Applications can be created that accept input in languages that use thousands of different characters, such as Japanese, or Korean, ... Đoàn Thiện Ngân Bài 4 - 27/34 Swing and JFC • Swing's layout managers make it easy to honor a particular orientation required by the UI. For example, the UI will appear right to left in a locale where the text flows right to left. This support is automatic: You need only code the UI once and then it will work for left to right and right to left, as well as honor the appropriate size of components that change as you localize the text. Đoàn Thiện Ngân Bài 4 - 28/34 Java Swing Application • Cộng 2 số Đoàn Thiện Ngân Bài 4 - 29/34 Swing Application • New Project/Java/Java Application. • Addition in the Project Name/path. • Deselect the Create Main Class checkbox • New File/ JFrame Forms/ AdditionUI as the class name. • Package • Jlabel, JTextField, JButton, Jlist, JTextArea, JComboBox, JRadioBox, JCheckBox, JTable, JTree, JMenu, • Set AdditionUI as the main class before running. Đoàn Thiện Ngân Bài 4 - 30/34 Đoàn Thiện Ngân Bài 4 - 31/34 Đoàn Thiện Ngân Bài 4 - 32/34 ActionPerformed Event float firstnum = Float.parseFloat(txtNumber1.getText()); float secondnum = Float.parseFloat(txtNumber2.getText()); float result = firstnum + secondnum; String str = String.valueOf(firstnum); str += " + "; str += String.valueOf(secondnum); str += " = "; str += String.valueOf(result); lblResult.setText(str); txtNumber1.setText(""); txtNumber2.setText(""); Đoàn Thiện Ngân Bài 4 - 33/34 Máy tính • MiniCalc • Chức năng tính toán đơn giản (cộng, trừ, nhân và chia) với các số thập phân (tương tự Calc trong MS Windows) • Sqrt (căn bậc 2) • Bắt lỗi tính toán khi nhập sai Đoàn Thiện Ngân Bài 4 - 34/34 ??? • Java và NetBeans – Java? NetBeans? – Cài đặt JDK, NetBeans – Xem cấu trúc tổ chức một project trong Netbeans – Biên dịch (build) và chạy thử – Xem cấu trúc tổ chức một project trong Netbeans sau khi biên dịch – Gói chương trình *.jar – Swing Application – Viết chương trình máy tính giao diện như trang trước.