Tài liệu Bài giảng Cú pháp cơ bản của ngôn ngữ Java: 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 ...
58 trang |
Chia sẻ: hunglv | Lượt xem: 1065 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng 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
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 endofline 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 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:");
int n= Integer.valueOf(input_Obj.readLine()).intValue() ;
System.out.println("integer read :" + n);
System.out.print("Input a Double:");
double x= Double.valueOf(input_Obj.readLine()).doubleValue() ;
System.out.println("Double read :" + x);
System.out.print("Input a string:");
String s = input_Obj.readLine();
System.out.println("String read :" + s);
System.out.print("Input a character:");
int m = System.in.read();
System.out.println(“Code of this character :" + m);
}
}
Input a character:r
character read :r
Input an Integer:123
integer read :123
Input a Double:12.908
Double read :12.908
Input a string:Hello
String read :Hello
Input a character:A
Code of this character:65
19/11/09 Bộ Môn CNPM ĐHBK Hà Nội 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 inline 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ó.
Các file đính kèm theo tài liệu này:
- CuphapcobancuangonnguJava.pdf