Bài giảng Cú pháp cơ bản của ngôn ngữ Java

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

pdf58 trang | Chia sẻ: vietpd | Lượt xem: 1725 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng Cú pháp cơ bản của ngôn ngữ Java, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
L P TRÌNH JAVAẬ Bai 2̀̀ : Cu phap c ban cua ́ ́ ơ ̉ ̉́ ́ ̉ ̉ ngôn ng Javaữ̃ 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 2 Muc tiêụ̣  Kêt thuc bai hoc ban co 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.ử ụ ượ ậ ấ ữ ệ ơ ả 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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ậ 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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ữ ặ ể ủ ươ 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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++ậ ầ ư ệ 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 7 2.3­ Kiểu dữ liệu cơ bản trong java Type Default Size (bytes) Range Description 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 E+38, +/- infinity, +/-0, NAN s th cố ự (Not A Number double 0.0 8 +/- 1.79E-324 .. +/-3.4 E+308, +/- infinity, +/-0, NAN s th cố ự char \u0000 2 \u0000 .. \uFFFF ký t Unicodeự 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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++ậ ầ ư 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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ố 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 10 2.4­ Biến­ Định nghĩa, khởi tạo  Vi du:́ ̣ 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); 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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)) ; 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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; 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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ố 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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) 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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. ớ ế ả 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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) 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 18 2.5­ Toán tử­ Operators  Các toán t tăng và gi mử ả x++; // Same as x = x + 1; ++x; // Same as x = x + 1; x––; // Same as x = x - 1; ––x; // Same as x = x - 1; suffix prefix suffix prefix 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 19 2.5­ Toán tử­ Operators  Các toán t tăng và gi mử ả int i=10; int newNum = 10*i++; int newNum = 10*i; i = i + 1; Equivalent to int i=10; int newNum = 10*(++i); i = i + 1; int newNum = 10*i; Equivalent to 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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. 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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--; 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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  Vi du:́ ̣ 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”); } } 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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.ổ ể 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 24 2.5­ Toán tử­ Operators  M c u tiên Ép ki uứ ư ể  double  float  long  int  short  byte 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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)ẹ ể 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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;ươ ự 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 28 2.5­ Toán tử­ Operators  Ki u ể boolean 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 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 29 2.5­ Toán tử­ Operators  Các toán t so sánhử Operator Name < less than <= less than or equal to > greater than >= greater than or equal to == equal to != not equal to 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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. 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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. 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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. 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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.ả ề 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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); 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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)ử 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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))ươ ươ ớ 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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.ạ ạ ứ ư 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 40 2.5­ Toán tử­ Operators  Lu t tính bi u th cậ ể ứ  3 + 4 * 4 > 5 * (4 + 3) ­ 1  3 + 4 * 4 > 5 * 7 ­ 1  3 + 16 > 5 * 7 ­ 1  3 + 16 > 35 ­ 1  19 > 35 – 1  19 > 34  false (1) Trong ngo c tr cặ ướ (2) Nhân (3) Nhân (4) C ngộ (5) Trừ (6) L n h nớ ơ 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 41 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 2.5­ Toán tử­ Operators 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 42  3 + 4 * 4 > 5 * (4 + 3) ­ 1  3 + 16 > 5 * (4+3) ­ 1  3 + 16 > 5 * (4+3) ­ 1  19 > 5 * 7 ­ 1  19 > 35 – 1  19 > 34  false (1) Bi u th c con đ u tiên có ể ứ ầ th đ c tính t bên tráiể ượ ừ (2) C ngộ (3) C ng trong ngo cộ ặ (4) Nhân (5) Trừ (6) L n h nớ ơ 2.5­ Toán tử­ Operators 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 43  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. 2.6­ Kiêu chuôi ky tử ̃ ́ ̣̉ ̃ ́ ̣ 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 44  Ghep 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 2.6­ Kiêu chuôi ky tử ̃ ́ ̣̉ ̃ ́ ̣ 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 45 Chuyên ky tư thanh 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”.  2.6­ Kiêu chuôi ky tử ̃ ́ ̣̉ ̃ ́ ̣ 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 46  Chuyên đôi ky tư thanh 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”.  2.6­ Kiêu chuôi ky tử ̃ ́ ̣̉ ̃ ́ ̣ 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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(); } } 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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… 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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.  19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 51  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. Quy ước đặt tên 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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. 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 53 Block Styles  Sử  dụng  end­of­line  style  cho  các  dấu  ngoặc  nhọn. • public class Test { public static void main(String[] args) { System.out.println("Block Styles"); } } public class Test { public static void main(String[] args) { System.out.println("Block Styles"); } } End-of-line style Next-line style 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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,… 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 55 2.9­ Nhập xuất dữ liệu 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 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. 19/11/09 Bộ Môn CNPM ­ ĐHBK Hà Nội 57 Minh họa xuất nhập import java.io.*; // file InOutDemo.java class InOutDemo { public static vo