Lập trình Java - Nguyễn Hữu Thể - Java cơ bản
Bé ph¸t triÓn øng dông java gåm:
javac: tr×nh biªn dÞch ng«n ng÷ java thµnh m· byte code
java (m¸y ¶o java - Java Virtual Machine): Th«ng dÞch m·
bytecode cña c¸c chư¬ng tr×nh kiÓu application thµnh m· thùc
thi cña m¸y ®Ých.
appletviewer: Bé th«ng dÞch thùc thi applet.
javadoc: T¹o tµi liÖu tù ®éng.
jdb: Gë rèi.
rmic: T¹o stub cho øng dông kiÓu RMI.
rmiregistry: Phôc vô tªn (Name Server) trong hÖ thèng RMI
i tạo
Java hỗ trợ khởi tạo các giá trị mặc định cho các biến.
15
Chuyển đổi kiểu dữ liệu
Dùng để chuyển từ một kiểu dữ liệu này sang kiểu dữ liệu khác
Có 2 dạng ép kiểu:
Ép kiểu ngầm định
Ép kiểu tường minh
16
Chuyển đổi kiểu dữ liệu (2)
17
Ép kiểu ngầm định
Khi một kiểu dữ liệu được gán cho 1 biến của 1 kiểu khác tự
động chuyển kiểu
Điều kiện:
Hai kiểu phải tương thích
Kiểu đích phải lớn hơn kiểu nguồn
18
Ép kiểu tường minh
Khi cần chuyển sang kiểu có độ chính xác cao hơn
19
Định dạng nhập xuất
Mã định dạng: bất kì một đầu ra được
hiển thị trên màn hình cần phải được
định dạng
20
Định dạng nhập xuất (2)
Hàm printf() trong Java được sử dụng để định dạng kiểu dữ liệu
ở console
Ví dụ:
public static void main(String[] args) {
int i = 10;
System.out.printf("gia tri cua i la %d", i);
}
21
Lớp Scanner
Cho phép người dùng đọc giá trị của một vài kiểu
Một số phương thức của Scanner:
public static void main(String[] args) {
Scanner scaner = new Scanner(System.in);
}
Đối tượng InputStream
22
Dãy Escape
23
Toán tử luận lý
Các biểu thức có kiểu trả về là boolean, có thể kết hợp lại với
nhau bằng các toán tử luận lý như:
AND (& hoặc &&)
OR (| hoặc ||)
XOR (^)
NOT (!)
24
25
Toán tử
26
Toán tử
27
Toán tử
28
Toán tử
29
Các toán tử làm việc với bit
Phép toán trên bit:
& , | , ^ , > ,>>>, ~
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
int c = 0; c = a & b; /* 12 = 0000 1100 */
c = a | b; /* 61 = 0011 1101 */
c = a ^ b; /* 49 = 0011 0001 */
c = ~a; /*-61 = 1100 0011 */
c = a << 2; /* 240 = 1111 0000 */
c = a >> 2; /* 15 = 1111 */
c = a >>> 2; /* 15 = 0000 1111 */
Biểu thức & toán tử
Phép toán trên kiểu chuỗi String:
Java dùng toán tử + để nối hai chuỗi lại với nhau
Độ ưu tiên của các toán tử
System.out.println(name + " is a " + color);
30
Tính kết hợp của các phép toán
31
Từ khóa
Từ khóa Ý nghĩa
abstract Dùng để khai báo lớp, hàm trừu tượng.
boolean Kiểu dữ liệu logic
break Được sử dụng để kết thúc vòng lặp hoặc cấu trúc switch.
byte Kiểu dữ liệu số nguyên.
case Được sử dụng trong lệnh switch.
char Kiểu dữ liệu kí tự.
catch Được sử dụng trong xử lý ngoại lệ.
class Dùng để khai báo lớp.
const Khai báo biến theo sau là biến hằng
continue Được dùng trong vòng lặp để bắt đầu một vòng lặp mới.
default Được sử dụng trong lệnh switch.
do Được sử dụng trong vòng lặp điều kiện sau.
32
Từ khóa (2)
Từ khóa Ý nghĩa
double Kiểu dữ liệu số thực.
else Khả năng lựa chọn thứ 2 trong câu lệnh If.
extends Chỉ rằng một lớp được kế thừa từ một lớp khác.
false Giá trị logic.
final Dùng để khai báo hằng số, phương thức không thể ghi đè,
hoặc lớp không thể kế thừa.
finally Phần cuối của khối xử lý ngoại lệ.
float Kiểu số thực.
for Câu lệnh lặp.
goto Nhảy tới dòng lệnh bất kì đã được đặt nhãn
if Câu lệnh lựa chọn.
implements Chỉ rằng một lớp triển khai từ một giao diện.
import Khai báo sử dụng thư viện.
33
Từ khóa (3)
Từ khóa Ý nghĩa
instance of Kiểm tra một đối tượng có phải là một thể hiện của một lớp
hay không.
int Kiểu số nguyên.
interface sử dụng để khai báo giao diện.
long Kiểu số nguyên.
native Khai báo phương thức được viết bằng ngôn ngữ C++.
new Tạo một đối tượng mới.
null Một đối tượng không tồn tại.
package Dùng để khai báo một gói.
private Đặc tả truy xuất.
public Đặc tả truy xuất.
protected Đặc tả truy xuất.
return Trả giá trị về
short Kiểu số nguyên.
34
Từ khóa (4)
Từ khóa Ý nghĩa
static Dùng để khai báo biến, thuộc tính tĩnh.
super Truy xuất đến lớp cha.
switch Lệnh lựa chọn.
synchronized Một phương thức độc quyền truy xuất trên một đối tượng.
this Ám chỉ chính lớp đó.
throw Ném ra ngoại lệ.
throws Khai báo phương thức ném ra ngoại lệ.
true Giá trị logic.
try Sử dụng để bắt ngoại lệ.
void Dùng để khai báo một phương thức không trả về giá trị.
while Dùng trong cấu trúc lặp.
35
36
java - øng dông kiÓu application (2)
VÝ dô øng dông HelloWorld:
§Þnh nghÜa trong líp HelloWorld
Chøa trong tËp tin HelloWorld.java
Chó gi¶i: System.out.print() : in ra mµn h×nh
37
vÝ dô (1)
In ra mµn h×nh:
Sö dông phư¬ng thøc System.out.print(arg1 + arg2+ ...+argn);
arg1, arg2, argn: c¸c tham sè cã kiÓu tïy ý.
38
vÝ dô (2)
§äc ký tù tõ bµn phÝm:
Sö dông phư¬ng thøc int System.in.read();
Gi¸ trÞ tr¶ vÒ lµ thø tù trong b¶ng m· ascii cña c¸c ký tù nhËn
tõ bµn phÝm.
39
java - cÊu tróc ®iÒu khiÓn
LÖnh if - else
PhÐp to¸n ?
LÖnh switch
While
Do - while
For
Break
Continue
Return
40
LÖnh if - else
if ( condition ) { Task for the true condition; }
else { Task for the false condition; }
41
PhÐp to¸n ?
PhÐp to¸n ?:(condition) ? Operation1 : Operation2;
if ( condition == true ) { return value of Operation1; }
else { return value of Operation2 ;}
42
LÖnh switch
switch ( variable ) {
case value1 : { Task 1; break; }
case value2 : { Task 2; break; }
. . .
default: Task n;
}
43
LÖnh switch
44
while
while (condition == true){
The condition is true, so we have to do this task;
}
45
do - while
do {
Do this task until the condition gets false;
} while (condition ==true) ;
46
for
for (khëi t¹o; ®iÒu kiÖn; bưíc t¨ng/gi¶m){
The condition is true, so we do this task;
operation2;
}
47
LÖnh break
Vßng lÆp sÏ kÕt thóc khi gÆp lÖnh break;
48
LÖnh continue
C¸c lÖnh sau lÖnh continue sÏ bÞ bá qua, mét chu kú lÆp míi
b¾t ®Çu.
49
§æi chuçi thµnh sè
50
Truyền đối số qua dòng lệnh
Đối số của chương trình
C¸c ®èi sè ®a vµo chư¬ng tr×nh c¸ch nhau kho¶ng tr¾ng trªn dòng
lÖnh.
C¸c ®èi sè chøa trong mét m¶ng kiÓu chuçi (String) : args.
Sè lưîng ®èi sè chØ ra bëi thuéc tÝnh length cña m¶ng.
Try-catch-finally
Sử dụng khối try, catch, finally để bắt giữ các ngoại lệ
Khối lệnh có thể ném ngoại lệ
Khối lệnh sẽ thực hiện
nếu ngoại lệ xảy ra
Khối lệnh sẽ thực hiện bất chấp
ngoại lệ xảy ra hay không
51
Chuỗi (String)
Java hỗ trợ Unicode mỗi kí tự dài 16 bit
Ví dụ hằng chuỗi
System.out.println(“Hello world”);
Ghép chuỗi:
Dùng các toán tử + và += để ghép chuỗi.
Ví dụ:
double distance = 45.5;
System.out.println("Distance = "+ distance +" miles.");
Distance = 45.5 miles.
Chuỗi
Khai báo và sử dụng kí tự
char có độ dài 2 bytes và chứa các số nguyên không dấu.
Hằng kí tự được biểu diễn trong dấu nháy đơn (’)
Có thể nhập các kí tự đơn bằng dãy escape sequence \uxxx chỉ
định thứ tự theo thập lục phân.
char c = '\u0a76';
System.out.println("Char = "+ c);
String - Constructor
public String() ;
public String(String original);
public String(char value[]);
public String(char value[], int offset, int count);
public String(int[] codePoints, int offset, int count);
public String(byte bytes[], int offset, int length, String charsetName);
public String(byte bytes[], int offset, int length, Charset charset); (1.6)
public String(byte bytes[], String charsetName);
public String(byte bytes[], Charset charset); (1.6)
public String(byte bytes[], int offset, int length);
public String(byte bytes[])
public String(StringBuffer buffer);
public String(StringBuilder builder);
public String(byte ascii[], int hibyte, int offset, int count);
public String(byte ascii[], int hibyte);
String
Ví dụ:
String s = new String();
Chú ý:
• Kí tự trong Java là kí tự 16bit, không phải ASCII 8 bit
• Các encoding (charset): các chế độ mã hóa kí tự nền được sử
dụng trong hệ thống để chuyển đổi kí tự ASCII thành
Unicode.
– VD: UTF-8, UTF-16, US-ASCII, ISO-8859-1, …
Chiều dài =0
Các phương thức chuỗi String
Demo:
Phương thức kiểm tra lớp String
• length(), charAt(), getChars(..), getBytes(…), hashCode()
Phương thức so sánh lớp String
• equals(…), equalsIgnoreCase(…), compareTo(…),
compareToIgnoreCase (…), regionMatches(…),
startsWith(…), endWith(…)
Phương thức lập chỉ mục lớp String
• indexOf(…), lastIndexOf(…)
Phương thức chuyển đổi lớp String
• substring(…), concat(…), replace(…), toLowerCase(…),
toUpperCase(…), trim(), toCharArray(…), intern()
Các phương thức chuỗi
Demo
Tính dung lượng và chiều dài lớp StringBuffer:
• length(), capacity(), ensureCapacity(…), setLength(…)
Phương thức char của StringBuffer
• charAt(…), getChars(…), setCharAt(…)
Nối thêm lớp StringBuffer
• append(…)
Xóa, thay thế
• delete(…), replace(…)
Chuỗi con
• substring(…)
Chèn lớp
• insert(…)
Khác
• reverse(), toString(), readObject(…)
Lớp Character
Useful Methods in the Character Class
Method Description
boolean isLetter(char ch)
boolean isDigit(char ch)
Determines whether the specified char value is a letter
or a digit, respectively.
boolean isWhiteSpace(char ch)
Determines whether the specified char value is white
space according to the Java platform.
boolean isUpperCase(char ch)
boolean isLowerCase(char ch)
Determines whether the specified char value is upper-
or lowercase, respectively.
char toUpperCase(char ch)
char toLowerCase(char ch)
Returns the upper- or lowercase form of the specified
char value.
toString(char ch)
Returns a String object representing the specified
character value.
int digit(char ch, int radix)
Returns the numeric value of the character in the
specified radix.
58
Ví dụ
Các kí số Character
Character rất hữu ích khi: chuyển đổi kí tự thành số nguyên trong
1 cơ số.
int digit = 12;
char c = Character.forDigit(digit, 16);
System.out.println(digit + " = " + c);
char c = 'F';
int digit = Character.digit(c, 16);
System.out.println(c + " = "+ digit);
File đính kèm:
Lập trình Java - Nguyễn Hữu Thể - Java cơ bản.pdf

