Tham khảo tài liệu ''phần 1: cơ bản về lập trình java - gv. ngô công thắng'', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Chương 1: Giới thiệu Java Lịch sử hình thành phát triển Các đặc điểm Java Các phiên Java Các bước viết chạy thử chương trình Java Các thành phần chương trình Java Cấu trúc chung chương trình Java PHẦN I CƠ BẢN VỀ LẬP TRÌNH JAVA GV Ngơ Cơng Thắng Bộ mơn Cơng nghệ phần mềm Khoa Công nghệ thông tin Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Các đặc điểm Java Lịch sử hình thành phát triển l Java ngôn ng lập trình hướng đối được ưa chuộng Java ngôn ngữ mạnh ngang tầm với C++ So với C++, Java “mềm dẻo tao nhã” Java công bố vào năm 1990, tác giả James Gosling Sun Microsystems Tên ban đầu Oak (cây sồi) l Java, 20/05/1995, Sun World l HotJava: Trình duyệt Web hỗ trợ Java l l JDK Evolutions l l J2SE, J2ME, and J2EE l l l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng l l l l l l l l l Java is simple Java is object-oriented Java is distributed Java is interpreted Java is robust Java is secure Java is architecture-neutral Java is portable Java’s performance Java is multithreaded Java is dynamic đơn giản hướng đối tượng phân tán thông dịch mạnh mẽ bảo mật không phụ thuộc HĐH khả chuyển hiệu cao đa luồng linh động Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Các phiên Java l JDK: Java Development Kit l Java l l l JDK Editions l J2SE dùng để phát triển ứng dụng applet độc lập phía client (client-side) JDK 1.02 (1995) JDK 1.1 (1996) l l l l l SDK 1.2 (JDK 1.2, 1998) SDK 1.3 (JDK 1.3, 2000) SDK 1.4 (JDK 1.4, 2002) SDK 5.0 (JDK 1.5, 2004) SDK 6.0 (JDK 1.6, 2007) Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Java Enterprise Edition (J2EE) J2EE dùng để phát triển ứng dụng phía server (server-side) Java servlet Java ServerPages Java l Java Standard Edition (J2SE) l Java Micro Edition (J2ME) J2ME sử dụng để phát triển ứng dụng cho thiết bị di động ĐTDĐ l Các chương trình ví dụ mơn học Lập trình Java viết J2SE Các bước viết chạy thử chương trình Java Bài giảng LT JAVA - Phần 1,Chương GV Ngơ Cơng Thắng Q trình tạo chạy chương trình java Tạo/Sửa Source Code Soạn thảo chương trình trình soạn thảo text IDE l Biên dịch chương trình l Chạy chương trình l Source Code Compile Source Code vd: javac Welcome.java Nếu có lỗi Bytecode bytecode Run Bytecode vd: java Welcome Kết Bài giảng LT JAVA - Phần 1,Chương GV Ngơ Cơng Thắng Nếu có lỗi kết Bài sai giảng LT JAVA - Phần 1,Chương GV Ngơ Cơng Thắng Tạo, biên dịch, chạy chương trình DOS Một chương trình Java đơn giản // Chuong trinh dua dong chu Welcome to Java! package ch01; public class Welcome { public static void main(String[] args) { System.out.println("Welcome to Java!"); } } l l l l l l l l l Thiết lập biến môi trường l Trên cửa sổ DOS cd\ ↵ cd javapro ↵ javac Welcome.java ↵ Chạy: l Soạn thảo chương trình (Notepad, Wordpad…) Ghi tệp với tên có java Ví dụ: Ghi tệp Welcome.java vào thư mục C:\javapro Biên dịch: l Chú ý: Đặt tên tệp phải trùng với tên lớp, gõ lệnh biên dịch từ DOS tên tệp phải giống hệt tên lớp (cả hoa thường) Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Soạn thảo chương trình: java Welcome ↵ Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 10 Thiết lập biến môi trường Để biên dịch chạy chương trình Java từ thư mục DOS ta phải thiết lập biến môi trường PATH sau: Kích phải chuột vào My Computer -> Properties -> Advanced -> Environment Variables l Chọn biến Path -> Edit -> Gõ thêm đường dẫn tới thư mục Bin JDK Ví dụ: C:\Program Files\Java\jdk1.6.0_02\bin l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 11 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 12 Các thành phần chương trình Java Thiết lập biến mơi trường l l l l l l l l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Comments (Chú giải, C++) Reserved words (Từ khóa) Modifiers (Như C++, ví dụ: public, private, static) Statements (Câu lệnh, C++) Blocks (Khối lệnh, C++) Classes (Lớp, C++) Methods (Phương thức, hàm thành viên C++) main method (Phương thức chính, hàm main() C++) 13 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Cấu trúc chung chương trình Java main Method main method đóng vai trị chương trình l Mọi chương trình Java phải có main method, điểm khởi đầu thực chương trình l Dạng thức main method: l public static void main(String[ ] args) { // Statements; } Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 14 l l l Trình thơng dịch Java coi chương trình Java lớp Mọi chương trình Java phải có lớp chứa phương thức main Tên lớp chứa phương thức main phải trùng với tên tệp chương trình Cấu trúc chung chương trình Java: import Thư viện lớp (package);//#include C++ public class TenLop //Ten lop la ten tep ctrinh { public static void main(String[] args) { //Các lệnh chương trình Java để } //Dinh nghia cac phuong thuc khac } 15 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 16 Cấu trúc chung chương trình Java l Ví dụ Ví dụ: Import javax.swing.JOptionPane; public class Welcome { Trong ví dụ ta sử dụng phương thức showMessageDialog lớp JOptionPane để hiển thị thông báo hộp hội thoại l JOptionPane nhiều lớp có sẵn hệ thống Java để tái sử dụng l public static void main(String[] args) { //Hien thi chu Welcome to Java! Trong hop thoai JOptionPane.showMessageDialog(null,”Welcome to Java!”,”Chuong trinh vi du”,JOptionPane.INFORMATION_MESSAGE); } } Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 17 Phương thức showMessageDialog JOptionPane.showMessageDialog(null, "Welcome to Java!", "Example 1.2 Output", JOptionPane.INFORMATION_MESSAGE); Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 19 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 18 Chương Các kiểu liệu Chương Các kiểu liệu I Các kiểu liệu II Khai báo biến III Biểu thức IV Chuyển đổi kiểu liệu V Vào/Ra liệu với Java I Các kiểu liệu Các kiểu liệu số Kiểu ký tự Kiểu logic Kiểu xâu ký tự Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng I.1 Các kiểu liệu số l l l l l l byte short int long float double 8 I.1 Các kiểu liệu số byte byte byte byte byte byte l Các phép toán số học giống C++: +, -, *, /, % Hằng số nguyên viết bình thường l Hằng số thực viết theo dạng: l Dạng thập phân: 2.25 l Dạng mũ: 2.5E3 l Giống kiểu liệu số C++ Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng I.2 Kiểu ký tự l l l l l I.2 Kiểu ký tự Giống C++, định nghĩa với từ khóa char Kiểu char có kích thước byte Một biến char chứa ký tự ASCII ký tự Unicode Kiểu char dùng kiểu số Hằng ký tự ký tự đặt dấu phẩy Ví dụ: ‘A’ Hằng xâu ký tự dãy ký tự đặt hai dấu nháy kép Ví dụ: “DHNN1” Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Các ký tự điều khiển: Description Escape Sequence Backspace ‘\b’ Tab ‘\t’ Linefeed ‘\n’ Carriage return ‘\r’ Backslash ‘\\’ Single Quote ‘\’’ Double Quote ‘\”’ l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng I.3 Kiểu logic (boolean) I.4 Kiểu xâu ký tự Khác với C++, Java đưa thêm vào kiểu logic định nghĩa với tên chuẩn boolean, có giá trị true false l Hằng boolean viết true false l Các phép toán logic quan hệ giống C++ l l l Khác với C++, Java đưa vào kiểu liệu xâu ký tự Kiểu xâu ký tự định nghĩa với tên chuẩn String Thực kiểu xâu ký tự lớp đối tượng xâu có sẵn Java Khi khai báo biến xâu ký tự khởi tạo xâu ký tự String st = “DHNN1”; l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Unicode \u0008 \u0009 \u000a \u000d \u005C \u0027 \u0022 Có thể dùng phép tốn + += để ghép nhiều xâu ký tự, ghép xâu ký tự với liệu xâu ký tự (dữ liệu số) Bài giảng LT JAVA - Phần 1,Chương GV Ngơ Cơng Thắng Ví dụ ghép xâu ký tự II Khai báo biến String message = "Welcome "+"to " + "Java"; String s = "Chuong" + 2; // Chuong2 String s1 = "Hello" + 'B'; // s1 trở thành HelloB l Khai báo biến khởi tạo giá trị ban đầu cho biến giống C++ Ví dụ: int a=100; l Khai báo đặt tên cho giá trị cụ thể Cú pháp khai báo sau: final TenKieu TenHang = GiaTri; Ví dụ: final double PI=3.14159; Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng III Biểu thức IV Chuyển đổi kiểu liệu Biểu thức Java giống C++ l Lệnh gán biểu thức gán giống C++ l Thứ tự ưu tiên thứ tự thực phép tốn biểu thức giống C++ Java có khả chuyển đổi kiểu tự động, quy tắc chuyển đổi kiểu tự động giống C++ l Có thể ép kiểu, cú pháp ép kiểu C++ l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 10 l 11 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 12 V Vào/Ra liệu với Java V.1 Lấy liệu vào từ bàn phím Để lấy liệu vào từ bàn phím ta dùng phương thức showInputDialog() lớp JOptionPane, phương thức cho phép ta nhập liệu qua hộp thoại l Dữ liệu nhận từ hội thoại xâu ký tự => dùng biến xâu để chứa liệu nhập vào, sau chuyển xâu ký tự thành kiểu liệu muốn nhập l Cách nhập sau: Lấy liệu vào từ bàn phím Đưa liệu hình Ví dụ: Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng l 13 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng V.1 Lấy liệu vào từ bàn phím 14 V.1 Lấy liệu vào từ bàn phím String st = JOptionPane.showInputDialog( null, “Prompt Message”, “Dialog Title”, JOptionPane.QUESTION_MESSAGE); Để chuyển xâu ký tự biểu diễn số thành giá trị số nguyên ta dùng phương thức parseInt lớp Integer int intV = Integer.parseInt(intString); l Để chuyển xâu ký tự biểu diễn số thành giá trị số thực ta dùng phương thức parseDouble lớp Double l double doubleV = Double.parseDouble(doubleString); Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 15 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 16 V.2 Đưa liệu hình V.2 Đưa liệu hình Để đưa liệu hình ta dùng phương thức showMessageDialog() lớp JOptionPane, phương thức cho phép ta đưa liệu qua hộp thoại l Khi đưa liệu hội thoại ta dùng phép + += để nối xâu ký tự các giá trị kiểu liệu l Các dùng: l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng JOptionPane.showMessageDialog(null, "Welcome to Java!", "Example 1.2 Output", JOptionPane.INFORMATION_MESSAGE); 17 Bài giảng LT JAVA - Phần 1,Chương GV Ngơ Cơng Thắng V.2 Đưa liệu hình l l 18 V.2 Đưa liệu hình Để định dạng liệu đưa hình ta dùng phương thức format() lớp String, phương thức định dạng liệu thành xâu ký tự trả xâu ký tự định dạng %b logic false %c Ký tự ‘a’ String st = String.format ( Hằng xâu chứa tác tử định dạng, Các liệu ); %d Số nguyên 200 %f Số thực 2.45 %e Số thực dạng mũ 2.450E+2 %s Xâu ký tự “Ha Noi” Tác tử định dạng Các tác tử định dạng bắt đầu dấu % theo sau chữ biểu thị loại liệu định dạng Ví dụ: %b định dạng giá trị logic thành false true, %d định dạng số nguyên,… Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 19 Loại liệu định dạng Bài giảng LT JAVA - Phần 1,Chương GV Ngơ Cơng Thắng Ví dụ 20 V.2 Đưa liệu hình l l V.2 Đưa liệu hình Có thể xác định độ rộng độ xác sau dấu %, độ rộng độ xác có dấu chấm Độ rộng số khoảng trống dành cho liệu, khoảng trống chứa ký tự Độ xác số chữ số sau dấu chấm thập phân Ví dụ: l l %8.2f định dạng cho số thực có độ rộng 8, số chữ số sau dấu chấm thập phân %10d định dạng cho số nguyên, có độ rộng 10 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 21 V.3 Ví dụ l Các liệu cần định dạng phải phù hợp với tác tử định dạng l Mặc định liệu phải độ rộng nó, để trái ta thêm dấu trừ sau dấu % Ví dụ %-10d => Số ngun có độ rộng 10, trái l Viết chương trình tính diện tích chu vi hình chữ nhật biết hai cạnh a, b Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 23 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 22 Chương Các lệnh điều khiển chương trình Chương Các lệnh điều khiển chương trình I Lệnh lựa chọn I.1 Lệnh if I.2 Lệnh switch II Lệnh lặp II.1 Lệnh lặp với số lần lặp xác định for II.2 Lệnh với số lần lặp không xác định II.2.1 Lệnh lặp kiểm tra điều kiện trước while II.2.2 Lệnh lặp kiểm tra điều kiện sau do-while III Lệnh break continue Bài giảng LT JAVA - Phần 1,Chương GV Ngô Cơng Thắng Tất lệnh điều khiển chương trình Java giống C++ l Lệnh break continue giống C++, nhiên Java có mở rộng: l Sau break continue có nhãn lệnh l Nhãn lệnh tên theo sau dấu hai chấm Nhãn lệnh đặt trước câu lệnh Người ta thường đánh nhãn cho lệnh lặp l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Chương Các lệnh điều khiển chương trình l Chương Các lệnh điều khiển chương trình Ví dụ lệnh break có nhãn Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng l Ví dụ lệnh continue có nhãn Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Chương Các lệnh điều khiển chương trình l l l Chương Các lệnh điều khiển chương trình Bài tập 1: Viết chương trình nhập vào số, xếp số theo chiều tăng dần Bài tập 2: Viết chương trình nhập vào tháng năm dương lịch Cho biết tháng năm có ngày Bài tập 3: Viết chương trình tính gần số π theo công thức: Bài tập 4: Viết chương trình tìm ước số chung lớn hai số nguyên dương a, b l Bài tập 5: Viết chương trình tìm số nguyên lớn n cho n3 < 12000 l π 1 1 = − + − + L + (−1) n 2n + Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 4.1 Giới thiệu phương thức Chương Phương thức (Method) 4.1 Giới thiệu phương thức 4.2 Tạo phương thức 4.3 Sử dụng phương thức 4.4 Truyền đối số theo giá trị 4.5 Chồng phương thức 4.6 Biến cục 4.7 Các phương thức lớp Math 4.8 Đóng gói lớp Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng l l l l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 4.2 Tạo phương thức l 4.2 Tạo phương thức Cú pháp định nghĩa phương thức khác so với C++ chỗ có thêm từ khóa modifier trước kiểu trả Modifier KieuTraVe TenPThuc(DS cac tham so) { //Than phuong thuc } Bài giảng LT JAVA - Phần 1,Chương GV Ngơ Cơng Thắng Tất chương trình Java thuộc lớp đó, chúng gọi phương thức (hàm thành viên C++) Khác với C++, phương thức Java phải định nghĩa khai báo lớp Cú pháp định nghĩa phương thức giống định nghĩa hàm thành viên C++ Cú pháp gọi phương thức giống cú pháp gọi hàm thành viên C++ l Ví dụ: modifier DS cac tham so public static int max(int num1, int num2) { TenPThuc if (num1 > num2) KieuTraVe return num1; else return num2; } Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 4.3 Sử dụng phương thức 4.3 Sử dụng phương thức Sử dụng phương thức thông qua lời gọi phương thức l Các biến khai báo phần tiêu đề phương thức gọi tham số hình thức hay gọi tắt tham số l Khi gọi phương thức, giá trị truyền cho tham số gọi tham số thực hay đối số l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Nếu phương thức gọi lớp chứa định nghĩa phương thức lời gọi phương thức có tên phương thức đối số đặt ngoặc tròn l Nếu phương thức gọi từ lớp khác cú pháp gọi sau: l TenDoiTuong.TenPThuc(Cac doi so) Hoặc TenLop.TenPThuc(Cac doi so) //nếu PThuc tĩnh Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 4.4 Truyền đối số theo giá trị 4.5 Chồng phương thức Trong Java, việc truyền đối số cho phương thức có kiểu truyền đối số theo giá trị l Các đối số hằng, biến, biểu thức Chồng phương thức giống chồng hàm C++: Các phương thức có tên giống danh sách tham số khác l Khi gọi phương thức chồng, trình biên dịch dựa vào kiểu đối số để xác định hàm gọi l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 4.6 Biến cục 4.7 Các phương thức lớp Math Biến cục biến khai báo bên phương thức (giống biến tự động C++) l Phạm vi sử dụng biến cục từ vị trí khai báo đến hết khối lệnh chứa khai báo biến cục Các hàm số học chuẩn Java phương thức lớp Math l Các phương thức lớp Math phương thức tĩnh (static) nên lời gọi phương thức phải gắn với tên lớp Ví dụ: Math.pow(a,b) cho giá trị ab Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng l l 4.7 Các phương thức lớp Math l 4.7 Các phương thức lớp Math Các hàm lượng giác gồm có: sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) toRadians(degrees) toDegrees(radians) l Các hàm mũ gồm có: exp(x) log(x) pow(y,x) sqrt(x) Cho sinx Cho cosx Cho tgx Cho arcsinx Cho arccosx Cho arctgx Đổi độ sang rad Đổi rad sang độ l round(x) 11 ex lnx yx Căn bậc x Các hàm làm trịn gồm có: ceil(x) floor(x) rint(x) Trong x có đơn vị radian Bài giảng LT JAVA - Phần 1,Chương GV Ngô Cơng Thắng 10 Làm trịn x lên số ngun gần Làm tròn x xuống số nguyên gần Làm tròn x tới số nguyên gần nhất, x hai số ngun làm trịn thành số chẵn Làm tròn x Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 12 4.7 Các phương thức lớp Math l Các hàm min, max abs gồm có: max(a,b) min(a,b) abs(x) l 4.8 Đóng gói lớp Các lớp nhóm lại với thành gói (package) l Có bốn lý cần đóng gói lớp: l Trả giá trị lớn Trả giá trị nhỏ Trả |x| Dễ tìm lớp: Các lớp có chức tương tự đặt gói để dễ tìm l Tránh sung đột tên l Phân tán phần mềm thuận tiện l Bảo vệ thành viên lớp l Hàm ngẫu nhiên random() trả số ngẫu nhiên lớn nhỏ Để có số ngẫu nhiên nằm a a+b (trừ a + b) ta dùng công thức sau: a + Math.random() * b Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 13 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 4.8.1 Quy ước đặt tên gói l l l 4.8.2 Thư mục chứa gói Trong gói lại chứa gói khác Ví dụ: java.lang.Math cho biết lớp Math nằm gói lang, gói lang nằm gói java Tổ chức gói theo kiểu đảm bảo tên gói khơng bị trùng Nếu muốn đóng gói lớp để đưa lên Internet cho người sử dụng phải chọn tên nhất, người ta thường lấy đảo ngược tên miền Internet làm tiền tố tên gói Ví dụ: Tên miền ĐHNN1 hau1.edu.vn đặt tên gói vn.edu.hau1.TenGoi Theo quy ước đặt tên gói dùng chữ thường Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 14 l Java yêu cầu cấu trúc thư mục chứa gói phải tương ứng với tên gói Ví dụ: với tên gói vn.edu.hau1.mypackage phải tạo cấu trúc thư mục \vn\edu\hau1\mypackage l Để Java tìm nơi đặt thư mục gói biến mơi trường classpath phải xác định thư mục chứa cậy thư mục gói Ví dụ: thư mục gói đặt thư mục c:\javapro classpath = ;c:\javapro Dấu xác định thư mục classpath 15 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 16 4.8.3 Đặt lớp vào gói 4.8.3 Đặt lớp vào gói Mỗi lớp Java thuộc gói l Một lớp đặt vào gói biên dịch l Để đặt lớp vào gói cần đặt lệnh sau đầu file chứa lớp l l Các lớp phải khái báo puplic để chương trình khác dùng Nếu muốn chứa nhiều lớp gói phải để lớp file riêng file phép có lớp public l Các file class nén thành file, để sử dụng lớp file nén classpath phải chứa đường dẫn tới file nén l package tengoi; l Ví dụ: package vn.edu.hau1.mypackage; Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Lưu ý: 17 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Bài tập chương 4.8.4 Sử dụng lớp từ gói Sử dụng trực tiếp tên lớp gắn với tên gói, ví dụ javax.swing.JOptionPane l Sử dụng lệnh import l l Bài tập 1: Viết chương trình tính trung bình độ lệch chuẩn n n import lớp xác định, ví dụ: import javax.swing.JOptionPane l import dựa vào khai báo, ví dụ: import javax.swing.* Dấu * xác định import dựa vào khai báo lớp l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 18 ∑x mean = 19 n i x ∑i− i =1 n (∑xi )2 deviation= Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng i=1 i=1 n n −1 20 Bài tập chương l Bài tập 2: Viết chương trình tính tổng chữ số số nguyên Ví dụ: số nguyên 234 có tổng chữ số + + = Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 21 5.1 Khai báo định nghĩa biến mảng Chương Mảng 5.1 Khai báo định nghĩa biến mảng 5.2 Copy mảng 5.3 Truyền mảng cho phương thức 5.4 Trả mảng từ phương thức 5.5 Mảng nhiều chiều Bài tập chương Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 5.1.1 Khai báo biến mảng 5.1.2 Tạo mảng (định nghĩa mảng) 5.1.3 Kích thước giá trị mặc định mảng 5.1.4 Truy nhập phần tử mảng 5.1.1 Khai báo biến mảng l l l l 5.1.2 Tạo mảng (định nghĩa mảng) Cú pháp khai báo biến mảng: KieuDuLieu[ ] TenBienMang; Khác với C++, việc khai báo biến mảng Java không tạo mảng, tức khơng cấp phát vùng nhớ cho mảng, tạo biến mà sau dùng để tham chiếu tới mảng Biến mảng thực chất biến tham chiếu Về chất biến tham chiếu giống trỏ Ví dụ: double[ ] a; Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng l Sau khai báo biến mảng ta dùng toán tử new để tạo mảng (giống cấp phát mảng động C++) theo cú pháp sau: TenBienMang = new KieuDuLieu[KichThuoc]; Ví dụ: a = new double[10]; l Lệnh tạo mảng có KichThuoc phần tử gán tham chiếu tới TenBienMang Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 5.1.2 Tạo mảng (định nghĩa mảng) 5.1.2 Tạo mảng (định nghĩa mảng) Giống C++, toán tử new dùng để cấp phát nhớ động => Mảng Java mảng động l Trong Java khơng có tốn tử delete, việc giải phóng vùng nhớ khơng cịn tham chiếu thực tự động JVM Người lập trình khơng phải lo việc giải phóng vùng nhớ cấp phát động toán tử new l l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Cơng Thắng KieuDuLieu[ ] TenBienMang = new KieuDuLieu[KichThuoc]; Ví dụ: double[ ] myList = new double[10]; 5.1.2 Tạo mảng (định nghĩa mảng) l Ta gộp việc khai báo biến mảng, tạo mảng gán tham chiếu tới biến mảng lệnh: Một mảng tạo giá trị khởi tạo mà không cần đến toán tử new Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 5.1.2 Tạo mảng (định nghĩa mảng) l Khác C++, biến mảng không chứa mảng mà chứa tham chiếu tới mảng double[] myList = new double[5]; reference myList KieuDL[ ] TenBienMang = {Hằng 1, Hằng 2,…, Hằng k}; Ví dụ: double[ ] myList = {12,20,100,89}; => Tạo mảng có phần tử với giá trị ban đầu 12, 20, 100 89 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 5.1.3 Kích thước giá trị mặc định mảng l 5.1.4 Truy nhập phần tử mảng Vì mảng Java mảng động nên có biến cho biết kích thước mảng: TenBienMang.length Ví dụ: myList.length cho biết kích thước mảng myList l Khi mảng tạo, gán giá trị ban đầu mảng số, ‘\u0000’ đối mảng char false mảng boolean Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Sau tạo mảng gán tham chiếu cho biến mảng ta truy nhập trực tiếp phần tử mảng thông qua tên biến mảng số truy nhập đặt ngoặc vuông (giống C++) l Chỉ số phần tử mảng có giá trị từ đến KichThuoc - l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 5.2 Copy mảng 10 5.2 Copy mảng Ta gán hai biến mảng kiểu cho nhau, nhiên gán hai biến mảng có giá trị tham chiếu gán cịn nội dung mảng khơng gán Do đó, sau lệnh gán, hai biến mảng tham chiếu tới mảng l Để copy mảng có cách sau: l l Cách dùng phương thức arraycopy: System.arraycopy(sourceArray,src_pos,targetArray,tar_pos,length); Trong đó, src_pos tar_pos vị trí bắt đầu copy mảng nguồn đích, length số phần tử cần copy Sử dụng lệnh lặp copy phần tử l Sử dụng phương thức arraycopy lớp System l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 11 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 12 5.3 Truyền mảng cho phương thức 5.3 Truyền mảng cho phương thức Giống truyền mảng cho hàm C++ l Định nghĩa phương thức để truyền đối số mảng: l l l KieuTraVe TenPThuc(KieuDL[ ] TenThamSo) l { //Than phuong thuc } Ví dụ: float Average(int[] m) { } Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 13 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 14 5.5 Mảng nhiều chiều 5.4 Trả mảng từ phương thức Phương thức trả mảng thực chất trả tham chiếu tới mảng l Muốn phương thức trả mảng ta định nghĩa phương thức sau: l l KieuTraVe[ ] TenPThuc(DS Cac tham so) { } Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Truyền mảng cho phương thức: TenPThuc(TenBienMang); Để truyền mảng cho phương thức ta dùng tên biến mảng Ví dụ: Average(a); Truyền mảng cho phương thức thực chất truyền tham chiếu cho phương thức => Phương thức thay đổi mảng 15 Khai báo biến mảng nhiều chiều: Kieu[ ][ ] TenBienMang; Trong cặp ngoặc vng xác định chiều, số cặp [ ] số chiều Ví dụ: Khai báo biến mảng hai chiều a có kiểu int sau: int[ ][ ] a; Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 16 5.5 Mảng nhiều chiều l 5.5 Mảng nhiều chiều Tạo mảng nhiều chiều TenBienMang = new Kieu[KT1][KT2]… Trong KT1, KT2 kích thước chiều 1, chiều 2,… Ví dụ: a = new int[3][4]; //Tạo mảng hai chiều có hàng cột Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng l 17 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 5.5 Mảng nhiều chiều 18 Bài tập chương Mảng nhiều chiều mảng mảng l Kích thước mảng nhiều chiều: Bài tập 1: Viết chương trình nhập vào dãy có n số Tính trung bình dãy số, đưa trung bình số lớn trung bình hình l Bài tập 2: Viết chương trình tạo 100 số nguyên ngẫu nhiên nằm Đếm số lần xuất số l l Kích thước mảng nhiều chiều x xác định thông qua x.length l Mỗi phần tử mảng x lại mảng nên xác định kích thước thơng qua x[0].length, x[1].length,… l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Truy nhập phần tử mảng nhiều chiều: TenBienMang[cs1][cs2]… Trong cs1, cs2,… số chiều 1, chiều 2,… Ví dụ: a[2][3] => truy nhập phần tử hàng 2, cột mảng hai chiều a 19 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 20 Bài tập chương Bài tập 3: Viết chương trình nhập vào dãy gồm n số nguyên, lưu dãy số mảng, truyền mảng cho phương thức, phương thức trả mảng chứa số theo thứ tự ngược với dãy số ban đầu l Bài tập 4: Viết phương thức tính tổng số ma trận l Bài tập 5: Viết phương thức cộng hai ma trận Phương thức trả ma trận tổng l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 21 ... C:Program Files Java jdk1.6.0_02in l Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 11 Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 12 Các thành phần chương trình Java Thiết lập biến môi... 1,Chương GV Ngô Công Thắng Soạn thảo chương trình: java Welcome ↵ Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng 10 Thiết lập biến môi trường Để biên dịch chạy chương trình Java từ thư mục... javac Welcome .java Nếu có lỗi Bytecode bytecode Run Bytecode vd: java Welcome Kết Bài giảng LT JAVA - Phần 1,Chương GV Ngô Công Thắng Nếu có lỗi kết Bài sai giảng LT JAVA - Phần 1,Chương GV Ngô