Bài giảng Ngôn ngữ lập trình Java - Bài 2: Cơ bản về ngôn ngữ Java

Bắt đầu là: ký tự, $, _. Theo sau là ký tự, số, $, _. Phân biệt chữ hoa chữ thường.

Ngôn ngữ Java yêu cầu: là một định danh hợp lệ. Không phải từ khóa. Duy nhất trong phạm vi (scope) của nó.

Quy ước đặt tên: tên biến bắt đầu là chữ thường. Tên lớp bắt đầu bằng chữ hoa. Ký tự đầu mỗi từ viết hoa. Ký tự (_) thường chỉ được dùng để ngăn cách những từ trong constants.

 

ppt 35 trang thom 05/01/2024 3380
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Ngôn ngữ lập trình Java - Bài 2: Cơ bản về ngôn ngữ Java", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Ngôn ngữ lập trình Java - Bài 2: Cơ bản về ngôn ngữ Java

Bài giảng Ngôn ngữ lập trình Java - Bài 2: Cơ bản về ngôn ngữ Java
Ngôn ngữ lập trình Java 
Bài 2: Cơ bản về ngôn ngữ Java 
Biến (Variables) 
Variables 
Biến là một mục dữ liệu được đặt tên. 
Cách khai báo một biến: type name [= ]; 
	 //integers 
 byte largestByte = Byte.MAX_VALUE; 
 short largestShort = Short.MAX_VALUE; 
 int largestInteger = Integer.MAX_VALUE; 
 long largestLong = Long.MAX_VALUE; 
 //real numbers 
 float largestFloat = Float.MAX_VALUE; 
 double largestDouble = Double.MAX_VALUE; 
 //other primitive types 
 char aChar = 'S'; 
 boolean aBoolean = true; 
Kiểu dữ liệu (1): Primitives 
Keyword 
Description 
Size/Format 
Integers 
byte 
Byte-length integer 
8-bit two’s complement 
short 
Short integer 
16-bit two’s complement 
int 
Integer 
32-bit two’s complement 
long 
Long integer 
64-bit two’s complement 
Real numbers 
float 
Single-precision floating point 
32-bit IEEE 754 
double 
Double-precision floating point 
64-bit IEEE 754 
Other types 
char 
A single character 
16-bit Unicode character 
boolean 
A boolean value (true/false) 
true or false 
Kiểu dữ liệu (2): ví dụ 
Literal Value 
Kiểu dữ liệu 
178 
int 
8864L 
long 
37.266 
double 
37.266D 
double 
87.363F 
float 
26.77e3 
double 
‘c’ 
char 
true 
boolean 
false 
boolean 
Kiểu dữ liệu (3): tham chiếu 
Arrays, classes, interfaces là kiểu tham chiếu (reference). 
reference 
An object/array 
objectName 
Tên biến 
Bắt đầu là: ký tự, $, _. Theo sau là ký tự, số, $, _. Phân biệt chữ hoa chữ thường. 
Ngôn ngữ Java yêu cầu: là một định danh hợp lệ. Không phải từ khóa. Duy nhất trong phạm vi (scope) của nó. 
Quy ước đặt tên: tên biến bắt đầu là chữ thường. Tên lớp bắt đầu bằng chữ hoa. Ký tự đầu mỗi từ viết hoa. Ký tự (_) thường chỉ được dùng để ngăn cách những từ trong constants. 
Phạm vi của biến 
Khởi tạo biến 
type variable = ; 
//integers 
byte largestByte = Byte.MAX_VALUE ; 
short largestShort = Short.MAX_VALUE ; 
int largestInteger = Integer.MAX_VALUE ; 
long largestLong = Long.MAX_VALUE ; 
//real numbers 
float largestFloat = Float.MAX_VALUE ; 
double largestDouble = Double.MAX_VALUE ; 
//other primitive types 
char aChar = 'S' ; 
boolean aBoolean = true ; 
Biến final 
Ta có thể khai báo biến trong bất kỳ phạm vi nào là final. Giá trị của biến final không thể thay đổi được sau khi khởi tạo. 
Khai báo: final type variable [= ]; 
Ví dụ: 
final int aFinalVar = 0; 
final int blankFinal; 
blankFinal = 0; 
Mọi cố gắng thay đổi biến final sau khi đã khởi tạo sẽ phát sinh lỗi compile time.` 
Toán tử (operators) 
Toán tử tính toán (Arithmetic) 
Operator 
Sử dụng 
Mô tả 
+ 
op1 + op2 
Cộng; nối xâu (String) 
- 
op1 – op2 
Trừ 
* 
op1 * op2 
Nhân 
/ 
op1 / op2 
Chia 
% 
op1 % op2 
Phép lấy phần dư của op1 / op2 
Chú ý với phép toán %: 
Dùng cho cả số thực. 
Quy tắc: a % b = (dấu của a) abs(a) % abs(b); 
Ví dụ: -5 % 3 = -2; -5 % -3 = -2; 5 % 3 = 2; 5 % -3 = 2 
Unary Arithmetic Operators 
Operator 
Sử dụng 
Mô tả 
+ 
+op 
Trả về kết quả int nếu op kiểu byte, short, char 
- 
-op 
Trả về kết quả đảo dấu của op 
Shortcut Arithmetic Operators 
Operator 
Sử dụng 
Mô tả 
++ 
op++ 
Tăng op nên 1; trả về giá trị của op trước khi tăng 
++ 
++op 
Tăng op nên 1; trả về giá trị của op sau khi tăng 
-- 
op-- 
Giảm op đi 1; trả về giá trị của op trước khi giảm 
-- 
--op 
Giảm op đi 1; trả về giá trị của op sau khi giảm 
Ví dụ 1: a = 5; b = a++ + ++a + a++; a = ?, b = ?; 
Ví dụ 2: a = 5; b = a-- + ++a + a++; a = ?, b = ?; 
Ví dụ 3: a = 2; array[a] = a = 0; 
Relational Operators 
Operator 
Sử dụng 
Mô tả 
> 
op1 > op2 
Trả về true nếu op1 lớn hơn op2 
>= 
op1 >= op2 
Trả về true nếu op1 lớn hơn hoặc bằng op2 
< 
op1 < op2 
Trả về true nếu op1 nhỏ hơn op2 
<= 
op1 <= op2 
Trả về true nếu op1 nhỏ hơn hoặc bằng op2 
== 
op1 == op2 
Trả về true nếu op1 bằng op2 (hoặc nếu 2 biến đều reference đến 1 object) 
!= 
op1 != op2 
Trả về true nếu op1 khác op2 (hoặc nếu 2 biến reference đến 2 object khác nhau) 
Chú ý: So sánh >, >=, <, <= chỉ áp dụng cho kiểu số. Không áp dụng được với boolean, reference, String Bởi vậy các biểu thức sau không hợp lệ: 
false < true; “abc” < “bcd”; obj1 < obj2; 
Conditional Operators 
Operator 
Sử dụng 
Mô tả 
&& 
op1 && op2 
Trả về true nếu op1 và op2 true. Không lượng giá op2 nếu op1 false 
|| 
op1 || op2 
Trả về true nếu op1 hoặc op2 true. Không lượng giá op2 nếu op1 true 
! 
!op 
Trả về true nếu op false 
& 
op1 & op2 
Trả về true nếu op1và op2 true. Luôn luôn lượng giá op2. Thực hiện bitwise AND với 2 toán hạng số. 
| 
op1 | op2 
Trả về true nếu op1 hoặc op2 true. Luôn luôn lượng giá op2. Thực hiện bitwise OR với 2 toán hạng số. 
^ 
op1 ^ op2 
Trả về true nếu op1 và op2 là khác nhau. 
(XOR logic) 
Shift Operators 
Operator 
Sử dụng 
Mô tả 
<< 
op1 << op2 
Dịch trái op1 op2 bits. 
>> 
op1 >> op2 
Dịch phải op1 op2 bits. Lấp đầy bên bên trái bằng bit dấu (Signed right shift). 
>>> 
op1 >> op2 
Dịch phải op1 op2 bits. Lấp đầy bên trái bằng 0 (Unsigned right shift). 
Ví dụ: 13 >> 1: 6; -13 >> 1: -6; -13 >>> 1: 2147483641; 
Ví dụ: 1 << 31: -2147483648 
Chú ý: trước khi thực hiện các phép toán, các kiểu dữ liệu integer (byte, short, char) được chuyển thành kiểu int. Và kết quả trả về là kiểu int. (trừ các phép toán ++, --, op=). 
Bitwise Logic Operators 
Operator 
Sử dụng 
Mô tả 
& 
op1 & op2 
AND bit. Chỉ áp dụng cho kiểu integeral. 
| 
op1 | op2 
OR bit. Chỉ áp dụng cho kiểu integeral. 
^ 
op1 ^ op2 
XOR bit. Chỉ áp dụng cho kiểu integeral. 
~ 
~op 
Lấy bù bit (complement). (0->1, 1->0). Chỉ áp dụng cho kiểu integral. 
Assignment Operators 
Operator 
Sử dụng 
Mô tả 
= 
op1 = op2 
Gán giá trị op2 cho op1. Trả về giá trị của op1 sau khi gán. 
op = 
op1 op = op2 
Viết tắt của op1 = op1 op op2. Có một lợi thế: không phải ép kiểu. 
op có thể là: +, -, *, /, %, &, |, ^, >, >>> 
Lợi thế không phải ép kiểu: 
byte a = 2; 
a = (byte)(a + 3); 
Viết gọn: 
a += 3; 
Others Operators 
Operator 
Sử dụng 
Mô tả 
?: 
op1 ? op2 : op3 
Nếu op1 true, trả về op2; ngược lại trả về op3. 
[] 
Dùng cho array 
Sử dụng khai báo, khởi tạo, truy cập phần tử mảng. 
. 
Dùng cho đối tượng 
Truy cập variables, methods của đối tượng, class. 
( params ) 
Dùng trong methods 
Khai báo danh sách các biến. 
( type ) 
( type )op 
Ép kiểu 
new 
Tạo đối tượng 
Tạo đối tượng/array mới. 
instanceof 
op1 instanceof op2 
Return true nếu op1 là một thể hiện của op2. (op2 là class type, interface type, array type). 
Biểu thức 
Định nghĩa 
Biểu thức là một chuỗi các biến, toán tử, lời gọi phương thức được tạo thành theo đúng cú pháp của ngôn ngữ. Kết quả trả về một giá trị. 
Ví dụ: aChar = ‘S’, “The string “ + “value”, Character.isUpperCase(aChar). 
Trong Java thứ tự lượng giá các toán hạng trong biểu thức là duy nhất: từ trái -> phải. Sau đó phép toán được thực hiện dựa trên thứ tự tính toán của toán tử. Ví dụ: 
1. int[] a = {4, 4}; 2. int b = 1; 3. a[b] = b = 0; 
Line 3 equivalent: a[1] = b = 0; 
Thứ tự ưu tiên của toán tử 
Nhóm 
Toán tử 
Unary 
++ -- + - ! ~ (type) 
Arithmetic 
* / % 
+ - 
Shift 
> >>> 
Comparison 
 >= instanceof 
== != 
Bitwise 
& ^ | 
Short-circuit 
&& || 
Condition 
?: 
Assignment 
= op= 
Câu lệnh - statement 
Định nghĩa 
Câu lệnh tương đương với một câu trong ngôn ngữ tự nhiên. Câu lệnh tạo nên một đơn vị thực thi đầy đủ. 
Những biểu thức sau đây có thể tạo thành câu lệnh bằng cách bổ xung dấu (;) vào cuối biểu thức: 
Những biểu thức gán: a = ‘S’; 
Biểu thức sử dụng ++, --: a++; 
Những lời gọi phương thức: System.out.println(“String”); 
Biểu thức tạo đối tượng: Integer obj = new Integer(4); 
Câu lệnh khai báo: double aValue = 933.24; 
Câu lệnh điều khiển: for, if, while, do while, switch, return, break, continue. 
Khối lệnh (Blocks) 
Định nghĩa: là một nhóm chứa 0 hoặc nhiều lệnh được đặt trong cặp {}. Nó có thể được sử dụng ở bất ký nơi nào mà lệnh đơn có thể sử dụng. 
Ví dụ: 
if(Character.isUpperCase(aChar)) { 
	System.out.println(“The upper character”); 
	System.exit(0); 
} 
Câu lệnh điều khiển 
while, do - while 
+ while () { 
	statement 
} 
Lặp khi điều kiện còn đúng. Kiểm tra điều kiện trước khi thực hiện lệnh. 
+ do { 
	statement 
} while(); 
Lặp khi điều kiện còn đúng. Kiểm tra điều kiện sau khi thực hiện lệnh. 
? 1. while (i > 0) i--; 2. do i--; while (i > 0); 3. do i--; j--; while (i > 0); 
for 
for (initialization; termination; increment) { 
	statement(s) 
} 
Lặp vô hạn: for ( ; ; ) {} 
Chú ý: phần khởi tạo (initialization) và phần bước nhảy (increment) có thể chứa nhiều biểu thức (khai báo) ngăn cách bởi dấu (,). 
for (int i = 0, j = 1; i < 10; i++, j+=2) {} 
? for (int i = 0, long j = 1; i < 10; i++, j+=2) {} 
? for (int i = 0, long j = 1; ; i++, j+=2) {} 
Enhanced for 
Java 1.5 cung cấp lệnh for mở rộng để lặp qua mảng, collection (Iterable): 
for (var : ) {} 
Ví dụ: 
int[] a = {4, 3, 2, 1}; 
for(int i : a) { System.out.println(i); } 
Collection col = new ArrayList(); 
Integer iobj; 
for(iobj : col) { System.out.println(iobj); } 
if, if/else 
Câu lệnh if rẽ nhánh dựa trên biểu thức logic: 
if () { statement(s) } 
Phần else có thể có hoặc khônng: 
if () { 
	statement(s) 
} 
else { 
	statement(s) 
} 
?: if (aChar = ‘A’) { System.out.println(aChar); } 
Có thể dùng toán tử ? : để thay thế câu lệnh if/else 
switch 
Lệnh rẽ nhánh dựa trên biểu thức dạng int (byte, short, char, int; but not long) hoặc kiểu liệt kê enum (Java 1.5) 
switch() { 
	case : 
	statement(s); 
	break; 
	case : 
	statement(s); 
	break; 
	[default: 
	statement(s); 
} 
Lệnh xử lý exceptiontry catch finally 
try { 
	statement(s) 
} catch(exceptiontype name) { 
	statement(s) 
} finally { 
	statement(s) 
} 
Có thể có nhiều khối catch với exeption type khác nhau. 
Khối finally luôn được thực hiện nếu khối lệnh try được thực hiện (trừ khi ta dùng lệnh System.exit()). 
break, continue, return(branching statements) 
break dùng để kết thúc vòng lặp for, while, do while: break [label]; 
continue dùng để bỏ qua vòng lặp hiện tại: continue [label]; 
return thoát khỏi phương thức và trả về giá trị (nếu có): return []; 
loop1: 
for(i = 0; i < 100; i++) { 
	for(j = 0; j < 1000; j++) { 
	if (j == i * 12 + 7) 
	break loop1; 
	} 
} 

File đính kèm:

  • pptbai_giang_ngon_ngu_lap_trinh_java_bai_2_co_ban_ve_ngon_ngu_j.ppt