Bài giảng Lập trình Java - Bài 2: Cú pháp cơ bản của ngôn ngữ Java

ppt 58 trang phuongnguyen 5230
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình Java - Bài 2: Cú pháp cơ bản của ngôn ngữ Java", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_lap_trinh_java_bai_2_cu_phap_co_ban_cua_ngon_ngu_j.ppt

Nội dung text: Bài giảng Lập trình Java - Bài 2: Cú pháp cơ bản của ngôn ngữ Java

  1. LẬP TRÌNH JAVA Bài 2: Cú pháp cơ bản của ngôn ngữ Java
  2. Mục tiêu ◼ Kết thúc bài học bạn có thể: ◼ Biết cách định nghĩa 1 tên trong java ◼ Biết các từ khóa của java. ◼ Hiểu các kiểu dữ liệu cơ bản của java. ◼ Nhận biết được cú pháp java gần hoàn toàn giống C. ◼ Giải thích được cơ chế điều khiển chương trình ◼ Biết các đặc tính về mảng với java ◼ Sử dụng được các hàm toán trong gói java.lang ◼ Sử dụng được các hàm nhập xuất dữ liệu cơ bản. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 2
  3. Nội dung ◼ 2.1- Chú thích trong java ◼ 2.2- Từ khóa của java- Cách đặt tên ◼ 2.3- Kiểu cơ bản trong java ◼ 2.4- Biến: Gán trị và khởi tạo. ◼ 2.5- Toán tử- Operators ◼ 2.6- Gói java.lang ◼ 2.7- Cấu trúc điều khiển – Phát biểu ◼ 2.8- Mảng – Array ◼ 2.9- Nhập xuất dữ liệu. ◼ 2.10- Tóm tắt dạng trắc nghiệm ◼ 2.11- Bài tập 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 3
  4. 2.1- Chú thích trong java // Chú thích đến cuối dòng /* Chú thích nhiều dòng */ ◼ Cách viết chú thích giống C++ ◼ Chú thích là công cụ: ◼ Giải thích chương trình. ◼ Lập tài liệu cho chương trình: Tác gỉa, version, những đặc điểm của chương trình 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 4
  5. 2.2- Từ khóa- Cách đặt tên ◼ Từ khóa cho các kiểu dữ liệu cơ bản : byte, short, int, long, float, double, char, boolean ◼ Từ khóa cho phát biểu lặp: do, while, for, break, continue ◼ Từ khóa cho phát biểu rẽ nhánh: if, else, switch, case, default, break ◼ Từ khóa đặc tả đặc tính một method: private, public, protected, final, static, abstract, synchronized, volatile, strictfp ◼ Hằng (literal): true, false, null ◼ Từ khóa liên quan đến method: return, void ◼ Từ khoá liên quan đến package: package, import 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 5
  6. 2.2- Từ khóa- Cách đặt tên ◼ Từ khóa cho việc quản lý lỗi: try, catch. finally, throw, throws ◼ Từ khóa liên quan đến đối tượng: new, extends, implements, class, instanceof, this, super ◼ Cách đặt tên (identifier): ◼ Bắt đầu bằng ký tự, ký tự gạch dưới (underscore ‘_’ ) hay ký tự ‘$’ ◼ Sau đó là các ký tự ký số hay ‘_’, ‘$’ , không dùng các ký tự khác như: khoảng trống, ký hiệu phép toán ◼ Một tên không thể là true, false, hoặc null. ◼ Một tên không thể là một từ khóa. ◼ Một tên có thể có độ dài bất kỳ. ◼ Từ khóa và tên có tính chất case-sensitive ◼ Nhận xét: Gần như y hệt C++ 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 6
  7. 2.3- Kiểu dữ liệu cơ bản trong java Type Default Size Range Description (bytes) byte 0 1 -128 127 số nguyên short 0 2 -32768 32767 số nguyên int 0 4 -2 tỉ mốt 2 tỉ mốt số nguyên long 0 8 - 9 tỉ tỉ 9 tỉ tỉ số nguyên float 0.0 4 +/- 1.45 E-45 +/-3.4 số thực E+38, +/- infinity, +/-0, (Not A Number NAN double 0.0 8 +/- 1.79E-324 +/-3.4 số thực E+308, +/- infinity, +/-0, NAN char \u0000 2 \u0000 \uFFFF ký tự Unicode 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 7
  8. 2.3- Kiểu dữ liệu cơ bản trong java ◼ Thí dụ ◼ Dùng các ký tự đặc tả việc buộc phải xem xét trị thuộc 1 kiểu nào đó: i, I, l, L, f, F, d, D ◼ nhưng L thường dùng thay cho l vì sợ nhầm với 1. ◼ 178 → int (default) 45.62 → double (default) ◼ 178L → long 44.21f → float ◼ 11.19e8 → double (default) ◼ ‘z’ → char , hằng klý tự để trong cặp nhát đơn (single quote character) ◼ Nhận xét: Gần như C++ 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 8
  9. 2.4- Biến- Định nghĩa, khởi tạo ◼ Biến = Trị có thay đổi theo thời gian ◼ 3 đặc điểm của biến: Tên biến, Trị khởi tạo, tầm vực (scope) ◼ Scope của biến: khối chương trình mà biến có ý nghĩa (tham khảo được) ◼ Cú pháp định nghĩa biến: DataType [[identifier [ = InitValue]], ] ; DataType variableName; ◼ int count , age1= 21, age2= 2*age1; ◼ char ch1=‘z’, ch2; ➔ Giống C 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 9
  10. 2.4- Biến- Định nghĩa, khởi tạo ◼ Ví dụ: int x; // Khai báo x là một // biến nguyên (integer); double bankinh char a; // Tinh dien tich thu nhat bankinh = 1.0; dientich = bankinh*bankinh*3.14159; System.out.println("Dien tich bang " + dientich + " voi ban kinh la " + bankinh); 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 10
  11. 2.4- Biến- Định nghĩa, khởi tạo ◼ Lệnh gán và biểu thức gán ◼ Dạng thức: variable = expression; ◼ Ví dụ: x = 1; // Gán 1 cho x; bankinh = 1.0; // Gán 1.0 cho bankinh; a = 'A'; // Gán 'A' cho a; x = x + 1; dttg = Math.sqrt(p*(p-a)*(p-b)*(p-c)) ; 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 11
  12. 2.4- Biến- Định nghĩa, khởi tạo ◼ Hằng - Constants ◼ Dạng thức: final datatype CONSTANTNAME = VALUE; ◼ Ví dụ: ◼ final double PI = 3.14159; ◼ final int SIZE = 3; 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 12
  13. 2.5- Toán tử- Operators ◼ Ký hiệu mô tả phép toán ◼ Arithmetic ops: +, -, *, /, %, ++, ◼ Relational ops : =, >, != ◼ Logical ops: && || ◼ Bitwise ops: ~, &, |, ^ (xor), >>, >=, <<= ◼ Assignment ops : = , +=, -=, *=, /=, %= ◼ Ternary op: ◼ Condition ? TrueExp : FalseExp ◼ Giống C 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 13
  14. 2.5- Toán tử- Operators ◼ + - * / % ◼ int i1 = 5/2 ; kết quả là số nguyên i1 = 2 ◼ float i2 = 5.0/2 ; kết quả là số thực i2 = 2.5 ◼ byte i3 = 5 % 2; i3 = 1 (số dư của phép chia) 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 14
  15. 2.5- Toán tử- Operators ◼ CHÚ Ý ◼ Các phép tính với số dấu chấm động được lấy xấp xỉ vì chúng được lưu trữ không hoàn toàn chính xác. Ví dụ: System.out.println(1 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1); hiển thị0.5000000000000001 , không phải 0.5 System.out.println(1.0 - 0.9); hiển thị0.09999999999999998 , không phải 0.1. ◼ Các số nguyên được lưu trữ chính xác nên các phép tính với chúng cho kết quả chính xác. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 15
  16. 2.5- Toán tử- Operators ◼ Biểu thức toán học ◼ Được chuyển thành công thức Java như sau: (3+4*x)/5 – 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y) 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 16
  17. 2.5- Toán tử- Operators ◼ Các toán tử gán tắt Operator Example Equivalent += i+=8 i = i+8 -= f-=8.0 f = f-8.0 *= i*=8 i = i*8 /= i/=8 i = i/8 %= i%=8 i = i%8 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 17
  18. 2.5- Toán tử- Operators ◼ Các toán tử tăng và giảm suffix x++; // Same as x = x + 1; prefix ++x; // Same as x = x + 1; suffix x––; // Same as x = x - 1; prefix ––x; // Same as x = x - 1; 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 18
  19. 2.5- Toán tử- Operators ◼ Các toán tử tăng và giảm int i=10; Equivalent to int newNum = 10*i; int newNum = 10*i++; i = i + 1; int i=10; Equivalent to i = i + 1; int newNum = 10*(++i); int newNum = 10*i; 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 19
  20. 2.5- Toán tử- Operators ◼ Các toán tử tăng và giảm ◼ Sử dụng các toán tử tăng và giảm giúp các biểu thức ngắn gọn hơn, nhưng cũng làm cho chúng phức tạp và khó đọc hơn. ◼ Nên tránh sử dụng các toán tử này trong những biểu thức làm thay đổi nhiều biến hoặc sử dụng cùng một biến nhiều lần như sau: int k = ++i + i. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 20
  21. 2.5- Toán tử- Operators ◼ Biểu thức gán và Câu lệnh gán ◼ Trước Java 2, tất cả các biểu thức có thể được sử dụng như câu lệnh. Kể từ Java 2, chỉ những loại biểu thức sau có thể là câu lệnh: ◼ variable op= expression; // Với op là +, -, *, /, % ◼ ++variable; ◼ variable++; ◼ variable; ◼ variable ; 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 21
  22. 2.5- Toán tử- Operators ◼ instanceof : toán tử kiểm tra 1 đối tượng có thuộc 1 lớp ? → true | false ◼ Ví dụ: class InstanceOfDemo { public static void main (String args[]) { InstanceOfDemo t = new InstanceofDemo(); if ( t instanceof InstanceOfDemo) System.out.println(“ t la 1 doi tuong thuoc lop nay”); else System.out.println(“ t KHONG la 1 doi tuong thuoc lop nay”); } } 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 22
  23. 2.5- Toán tử- Operators ◼ Chuyển đổi dữ liệu kiểu số (Ép kiểu) ◼ Khi thực hiện một phép tính nhị phân chứa 2 toán hạng khác kiểu, Java tự động chuyển kiểu toán hạng theo luật sau: ◼ Nếu một toán hạng kiểu double, toán hạng khác được chuyển đổi thành kiểu double. ◼ Nếu không thì, nếu một toán hạng kiểu float, toán hạng khác được chuyển đổi thành kiểu float. ◼ Nếu không thì, nếu một toán hạng kiểu long, toán hạng khác được chuyển đổi thành kiểu long. ◼ Nếu không thì, cả hai toán hạng được chuyển đổi thành kiểu int. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 23
  24. 2.5- Toán tử- Operators ◼ Mức ưu tiên Ép kiểu ◼ double ◼ float ◼ long ◼ int ◼ short ◼ byte 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 24
  25. 2.5- Toán tử- Operators ◼ Ép kiểu mở rộng và thu hẹp ◼ Ép kiểu mở rộng double d = 3; (mở rộng kiểu) ◼ Ép kiểu thu hẹp int i = (int)3.0; (thu hẹp kiểu) 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 25
  26. 2.5- Toán tử- Operators ◼ Các ký tự đặc biệt Description Escape Sequence Unicode Backspace \b \u0008 Tab \t \u0009 Linefeed \n \u000a Carriage return \r \u000d Backslash \\ \u005C Single Quote \' \u0027 Double Quote \" \u0022 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 26
  27. 2.5- Toán tử- Operators ◼ Ép kiểu giữa kiểu ký tự và kiểu số ◼ int i = 'a'; // tương tự int i = (int)'a'; ◼ char c = 97; // tương tự char c = (char)97; 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 27
  28. 2.5- Toán tử- Operators ◼ Kiểuboolean và các toán tử ◼ boolean a1 = true; ◼ boolean a2 = false; ◼ boolean b = (1 > 2); ◼ boolean b2 = (1 == 2); ◼ Kết quả của phép so sánh là một giá trị logic Boolean: true hoặc false 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 28
  29. 2.5- Toán tử- Operators ◼ Các toán tử so sánh Operator Name greater than >= greater than or equal to == equal to != not equal to 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 29
  30. 2.5- Toán tử- Operators ◼ Các toán tử Boolean Operator Name Example ! not !b && and (1<x) && (x<100) || or a1 || a2 ^ exclusive or a1 ^ a2 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 30
  31. 2.5- Toán tử- Operators ◼ Bảng chân lý của toán tử ! p !p Example true false !(1 > 2) là true, vì (1 > 2) là false. false true !(1 > 0) là false, vì (1 > 0) là true. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 31
  32. 2.5- Toán tử- Operators ◼ Bảng chân lý của toán tử ! p1 p2 p1 && p2 F F F F T F T F F T T T Ví dụ: (3 > 2) && (5 >= 5) là true, vì cả (3 > 2) và (5 >= 5) đều là true. (3 > 2) && (5 > 5) là false, vì (5 > 5) là false. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 32
  33. 2.5- Toán tử- Operators ◼ Bảng chân lý của toán tử ! p1 p2 p1 || p2 F F F F T T T F T T T T Ví dụ: (2 > 3) || (5 > 5) là false, vì cả (2 > 3) và (5 > 5) đều là false. (3 > 2) || (5 > 5) là true, vì (3 > 2) là true. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 33
  34. 2.5- Toán tử- Operators ◼ Bảng chân lý của toán tử ! p1 p2 p1 ^ p2 F F F F T T T F T T T F Ví dụ: (2 > 3) ^ (5 > 1) là true, vì (2 > 3) là false và (5 > 1) là true. (3 > 2) ^ (5 > 1) là false, vì cả (3 > 2) và (5 > 1) đều là true. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 34
  35. 2.5- Toán tử- Operators ◼ Xác định năm nhuận? ◼ Một năm là năm nhuận nếu nó chia hết cho 4, nhưng không chia hết cho 100 hoặc nó chia hết cho 400. ◼ Source code xác định năm nhuận như sau: boolean NamNhuan = ((nam % 4 == 0) && (nam % 100 != 0)) || (nam % 400 == 0); 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 35
  36. 2.5- Toán tử- Operators ◼ Thứ tự ưu tiên các toán hạng ◼ Biểu thức sau được tính như thế nào? 3 + 4 * 4 > 5 * (4 + 3) - ++i ◼ Tất nhiên phải ưu tiên trong ngoặc trước, ngoài ngoặc sau ◼ Chỉ dùng ngoặc tròn ◼ Nhiều tầng ngoặc thì thứ tự ưu tiên ngoặc từ trong ra ngoài 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 36
  37. 2.5- Toán tử- Operators ◼ Thứ tự ưu tiên các toán hạng 1. var++, var 2. +, - (dấu dương, âm), ++var, var 3. (type) Casting (ép kiểu) 4. ! (Not) 5. *, /, % (nhân, chia thường, chia lấy phần dư) 6. +, - (cộng, trừ) 7. , >= (so sánh) 8. ==, !=; (đẳng thức) 9. & (AND không có điều kiện) 10. ^ (Exclusive OR) 11. | (OR không có điều kiện) 12. && (AND có điều kiện) 13. || (OR có điều kiện) 14. =, +=, -=, *=, /=, %= (toán tử gán) 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 37
  38. 2.5- Toán tử- Operators ◼ Sự kết hợp toán tử ◼ Khi tính toán với 2 toán hạng có cùng mức ưu tiên, sự kết hợp toán tử sẽ xác định thứ tự các phép tính. Tất cả các toán tử nhị phân, ngoại trừ toán tử gán, là kết hợp trái (left-associative). ◼ a – b + c – d là tương đương với ((a – b) + c) – d ◼ Các toán tử gán là kết hợp phải. Do đó biểu thức ◼ a = b += c = 5 tương đương với a = (b += (c = 5)) 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 38
  39. 2.5- Toán tử- Operators ◼ Luật tính biểu thức ◼ Luật 1: Tính bất kỳ biểu thức con nào có thể tính được từ trái sang phải. ◼ Luật 2: Các toán hạng được áp dụng theo thứ tự ưu tiên của chúng. ◼ Luật 3: Luật kết hợp áp dụng cho 2 toán hạng cạnh nhau có cùng mức ưu tiên. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 39
  40. 2.5- Toán tử- Operators ◼ Luật tính biểu thức ◼ 3 + 4 * 4 > 5 * (4 + 3) - 1 (1) Trong ngoặc trước ◼ 3 + 4 * 4 > 5 * 7 - 1 (2) Nhân ◼ 3 + 16 > 5 * 7 - 1 (3) Nhân ◼ 3 + 16 > 35 - 1 (4) Cộng ◼ 19 > 35 – 1 (5) Trừ ◼ 19 > 34 (6) Lớn hơn ◼ false 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 40
  41. 2.5- Toán tử- Operators ◼ Khi các toán hạng có hiệu ứng lề (side effects), thứ tự tính toán của các toán hạng rất cần quan tâm. ◼ Ví dụ, x sẽ bằng 1 trong đoạn lệnh sau, vì a được tính bằng 0 trước khi ++a tăng nó lên thành 1. int a = 0; int x = a + (++a); // 0 + 1 ◼ Nhưng x sẽ bằng 2 trong đoạn lệnh sau, vì ++a tăng nó lên thành 1, rồi cộng với chính nó. int a = 0; int x = ++a + a; // 1 + 1 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 41
  42. 2.5- Toán tử- Operators ◼ 3 + 4 * 4 > 5 * (4 + 3) - 1 (1) Biểu thức con đầu tiên có thể được tính từ bên trái ◼ 3 + 16 > 5 * (4+3) - 1 (2) Cộng ◼ 3 + 16 > 5 * (4+3) - 1 (3) Cộng trong ngoặc ◼ 19 > 5 * 7 - 1 (4) Nhân ◼ 19 > 35 – 1 (5) Trừ ◼ 19 > 34 (6) Lớn hơn ◼ false 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 42
  43. 2.6- Kiểu chuỗi ký tự ◼ Kiểu char chỉ biểu diễn 1 ký tự. Để biểu diễn một chuỗi ký tự, sử dụng kiểu dữ liệu String. Ví dụ: String message = "Welcome to Java"; ◼ String là một lớp được định nghĩa trước trong thư viện Java giống như System class và JOptionPane class. ◼ Kiểu String không phải là kiểu cơ sở mà là một kiểu tham chiếu (reference type). Bất kỳ lớp Java nào cũng có thể được sử dụng như một kiểu tham chiếu thay cho một biến. ◼ Hiện tại, bạn chỉ cần hiểu cách khai báo một biến String, cách gán một chuỗi ký tự cho một biến, và cách ghép các chuỗi. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 43
  44. 2.6- Kiểu chuỗi ký tự ◼ Ghép chuỗi: ◼ String message = "Welcome " + "to " + "Java"; // message = "Welcome to Java" ◼ String s = "Chuong" + 2; // s trở thành Chuong2 ◼ String s1 = "Hello" + 'B'; // s1 trở thành HelloB 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 44
  45. 2.6- Kiểu chuỗi ký tự ◼ Chuyển ký tự thành số nguyên: ◼ Dữ liệu trả về từ input dialog box là một chuỗi ký tự. Nếu bạn nhập vào một giá trị số 123, nó trả về chuỗi “123”. Để nhận được dữ liệu là một số, bạn phải chuyển đổi. ◼ Để chuyển đổi một chuỗi ký tự thành một giá trị int, bạn có thể sử dụng phương thức tĩnh parseInt trong lớp Integer như sau: int intValue = Integer.parseInt(intString); trong đó intString là một chuỗi số nguyên như “123”. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 45
  46. 2.6- Kiểu chuỗi ký tự ◼ Chuyển đổi ký tự thành số thực: ◼ Để chuyển đổi một chuỗi ký tự thành một giá trị double, bạn có thể sử dụng phương thức tĩnh parseDouble trong lớp Double như sau: double doubleValue = Double.parseDouble(doubleString); trong đó doubleString là một chuỗi số thực như “123.45”. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 46
  47. 2.7 Nhập dữ liệu từ Command Prompt ◼ Sử dụng MyInput.java ◼ hoặc sử dụng lớp Scanner (JDK 1.5) import java.util.*; public class readint{ static Scanner s=new Scanner(System.in); public static void main(String[] abc){ System.out.print("Doc vao mot so nguyen: "); int a=readInt(); System.out.println("So nguyen la: " + a); } public static int readInt(){ return s.nextInt(); } } 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 47
  48. 2.8 Programming Style ◼ Chú thích ◼ Quy ước đặt tên ◼ Thụt đầu dòng và khoảng cách dòng ◼ Khối 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 48
  49. Chú thích ◼ Đặt một chú thích đầu chương trình để giải thích chương trình làm việc gì, các đặc điểm của CT, các cấu trúc dữ liệu mà CT hỗ trợ và các kỹ thuật đặc biệt mà CT sử dụng. ◼ Đặt trong chú thích tên và mô tả rõ ràng về bạn ở đầu chương trình. ◼ Đặt chú thích thích hợp giải thích các lớp, các đoạn lệnh 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 49
  50. Quy ước đặt tên ◼ Chọn các tên mô tả và có ý nghĩa. ◼ Tên biến và phương thức: ◼ Sử dụng chữ thường. Nếu tên có chứa một vài từ, hãy viết liền nhau, sử dụng chữ thường ở từ thứ nhất và viết hoa ký tự đầu tiên của các từ tiếp theo. ◼ Ví dụ, các biến radius và area, phương thức computeArea. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 50
  51. Quy ước đặt tên ◼ Tên lớp: ◼ Viết hoa ký tự đầu tiên của mỗi từ trong tên. Ví dụ ComputeArea. ◼ Tên hằng: ◼ Viết hoa tất cả các ký tự. Ví dụ hằng PI. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 51
  52. Thụt đầu dòng và khoảng cách dòng ◼ Thụt đầu dòng ◼ Thụt vào 2 khoảng trống. ◼ Cả 2 phía của mỗi toán tử nên có 1 khoảng trống ◼ boolean b = 3 + 4 * 4 > 5 * (4 + 3) - ++i; ◼ Khoảng cách dòng ◼ Sử dụng dòng trống để ngăn cách các đoạn code. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 52
  53. Block Styles ◼ Sử dụng end-of-line style cho các dấu ngoặc nhọn. Next-line public class Test style { public static void main(String[] args) { System.out.println("Block Styles"); } } End-of-line style public class Test { public static void main(String[] args) { System.out.println("Block Styles"); } } 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 53
  54. 2.9- Nhập xuất dữ liệu ◼ Nhập xuất dữ liệu là tác vụ mức hệ thống ◼ Gói java.io chứa các lớp cho việc xuất nhập. ◼ Cần tham khảo gói này. ◼ Java cung cấp class System mô tả hệ thống ◼ System.out là đối tượng xuất mặc định (màn hình) ◼ System.in là đối tượng nhập mặc định ( bàn phím) Methods xuất dữ liệu ra màn hình: System.out.print(Dữ liệu xuất); System.out.println(Dữ liệu xuất); Dữ liệu xuất có thể là : ký tự, số, chuỗi, 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 54
  55. 2.9- Nhập xuất dữ liệu 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 55
  56. 2.9- Nhập xuất dữ liệu ◼ Nhập dữ liệu từ bàn phím khá phức tạp vì với mỗi dữ liệu có cách nhập khác nhau: ◼ Ký tự thì chỉ cần 1 phím, ◼ số nguyên, số thực có thể nhập với nhiều phím nên các phím gõ cần giữ lại (đệm, buffer), ◼ có thể cần kiểm tra phím gõ (nhập số mà gõ phím chữ → sai). ◼ Tham khảo tài liệu về gói java.io ◼ Nếu viết ứng dụng hướng giao diện của sổ, không xuất nhập trực tiếp mà thông qua các đối tượng trong giao diện người sử dụng. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 56
  57. Minh họa xuất nhập import java.io.*; // file InOutDemo.java class InOutDemo { public static void main(String args []) throws java.io.IOException { Reader inputChar_Obj = new InputStreamReader(System.in); System.out.print("Input a character:"); char c = (char)inputChar_Obj.read() ; System.out.println(" character read :" + c); BufferedReader input_Obj= new BufferedReader(new InputStreamReader(System.in)); System.out.print("Input an Integer:"); Input a character:r int n= Integer.valueOf(input_Obj.readLine()).intValue() ; System.out.println("integer read :" + n); character read :r System.out.print("Input a Double:"); Input an Integer:123 double x= Double.valueOf(input_Obj.readLine()).doubleValue() ; integer read :123 System.out.println("Double read :" + x); System.out.print("Input a string:"); Input a Double:12.908 String s = input_Obj.readLine(); Double read :12.908 System.out.println("String read :" + s); System.out.print("Input a character:"); Input a string:Hello int m = System.in.read(); String read :Hello System.out.println(“Code of this character :" + m); Input a character:A } } Code of this character:65 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 57
  58. 2.11- Bài tập Viết các chương trình sau: (1) Xuất bảng cửu chương từ 2 đến 9. (2) Xuất trị bình phương , lập phương từ 1 đến 10. (3) Tạo 1 mảng số int dạng in-line 10 phần tử, xuất mảng này tăng dần. (4) Nhập 1 mảng int các số mang trị là mã của các ký tự nhập từ bàn phím. Xuất mảng này dạng chữ rồi xuất mã của chúng. (5) Xuất 100 số Fibonacci đầu tiên. Dãy Fibonacci : 1,1,2,3,5,8, 2 số đầu là 1, các số sau bằng tổng 2 số trước nó. 23/05/2021 Bộ Môn CNPM - ĐHBK Hà Nội 58