1 Chương 3 NGÔN NGỮ LẬP TRÌNH JAVA Th.S Nguyễn Thị Mai Trang Chương 3: Ngôn ngữ lập trình Java 2 NỘI DUNG l Cấu trúc một chương chương trình Java l Dịch v thực thi chương chương trình Ja
Trang 11
Chương 3 NGÔN NGỮ LẬP TRÌNH JAVA
Th.S Nguyễn Thị Mai Trang
Chương 3: Ngôn ngữ lập trình Java
2
NỘI DUNG
l Cấu trúc một chương chương trình Java
l Dịch v thực thi chương chương trình Java
l Cú pháp v ngữ nghĩa
l Hằng, biến và các kiểu dữ liệu cơ bản
l Toán tử và biểu thức
l Nhập xuất dữ liệu
l Cấu trúc điều khiển
Cấu trúc một chương trình Java
l Phần đầu của một chương trình Java xác định thông tin
môi trường
– Chương trình được chia thành các lớp hoặc các gói riêng biệt
Những gói này sẽ được chỉ dẫn trong chương trình qua phát biểu
“import” Ví dụ:
import java awt.*;
l Tất cả các biến, phương thức được khai báo trong phạm
vi một lớp
l Mỗi phát biểu đều được kết thúc bởi dấu chấm phảy “;”
l Chương trình còn có thể bao gồm các ghi chú, chỉ dẫn
Khi dịch, chương trình dịch sẽ tự loại bỏ các ghi chú này
Dịch và thực thi chương trình Java
l Viết mã nguồn: Dùng một chương trình
soạn thảo để viết mã nguồn, lưu lại với file tên có đuôi “.java” Tên của file phải đặt giống tên của lớp chính trong chương trình.
l Biên dịch ra mã máy ảo: Dùng trình biên
dịch javac để biên dịch mã nguồn “.java”
thành mã của máy ảo (java bytecode) có đuôi “.class”
l Thông dịch và thực thi: Việc thông dịch và
thực thi dùng lệnh “java”.
Trang 2Chương 3: Ngôn ngữ lập trình Java
5
Dịch và thực thi chương trình Java(tt)
l Ví dụ minh họa: Tạo chương trình nguồn
/*Chương trình xuất dòng HelloWorld ra Console*/
import java.util.*;
class HelloWorldApp{
public static void main(String[] args){
//Xuat dong chu “HelloWorld”
System.out.println(“HelloWorld”);
}
}
l Lưu lại với tên HelloWorldApp.java
Chương 3: Ngôn ngữ lập trình Java
6
l Dòng đầu tiên khai báo nạp các lớp sử dụng.
l Khai báo lớp HelloWordApp phạm vi toàn cục
l Phương thức main() là điểm bắt đầu thực thi một ứng dụng.
l Lời chú thích: Ngôn ngữ Java hỗ trợ ba kiểu chú thích sau:
– /* text */: Viết chú thích trên nhiều dòng
– // text: Viết chú thích trên một dòng
– /** documentation */: Tự động phát sinh tài liệu
l Dấu “{“ và “}”: bắt đầu và kết thúc một khối lệnh.
l Dấu chấm phẩy “;” để kết thúc một lệnh
Dịch và thực thi chương trình Java(tt)
Cú pháp và ngữ nghĩa
l Cú pháp: tập các luật xác định chính xác
cách kết hợp của các chữ cái, các chữ số,
và các ký hiệu.
– Các luật cú pháp được viết ở dạng đơn giản,
xác định ngôn ngữ hình thức, gọi là siêu ngôn
ngữ (metalanguage).
l Ngữ nghĩa: tập các luật xác định ý nghĩa
các lệnh viết trong một ngôn ngữ lập trình
NỘI DUNG
l Cấu trúc một chương trình Java
l Dịch và thực thi chương trình Java
l Cú pháp và ngữ nghĩa
l Nhập xuất dữ liệu
l Cấu trúc điều khiển
Trang 3Chương 3: Ngôn ngữ lập trình Java
9
Biến
l Biến là vùng nhớ dùng để lưu trữ các giá trị của
chương trình Mỗi biến gắn liền với một kiểu dữ
liệu và một định danh duy nhất gọi là tên biến.
l Tên biến thông thường là một chuỗi các ký tự
(Unicode), ký số
– Bắt đầu bằng một chữ cái, một dấu gạch dưới hay dấu
dollar
– Khôngđược trùng với các từ khóa
– Không có khoảng trắng ở giữa
– Có phân biệt chữ hoa, chữ thường
l Trong java, biến có thể được khai báo ở bất kỳ
nơi đâu trong chương trình.
Chương 3: Ngôn ngữ lập trình Java
10
Biến (tt)
– <kiểu dữ liệu> <tên biến>;
– <kiểu dữ liệu> <tên biến> = <giá trị>;
xuất ở khắp nơi trong chương trình, thường được khai báo dùng từ khóa public, hoặc đặt chúng trong một class
l Biến cục bộ: là biến chỉ có thể truy xuất trong
khối lệnh nó được khai báo.
Các từ khóa của Java
Các kiểu dữ liệu cơ bản
Trang 4Chương 3: Ngôn ngữ lập trình Java
13
Các kiểu dữ liệu cơ bản (tt)
Chương 3: Ngôn ngữ lập trình Java
14
Các kiểu dữ liệu cơ bản (tt)
l Kiểu số nguyên:byte, short, int, long M ặc định là int.
l Lưu ý đối với các phép toán trên số nguyên:
– Nếu hai toán hạng kiểu long → kết quả kiểu long
– Một trong hai toán hạng không phải long thì được chuyển
thành long trước khi thực hiện phép toán.
– Nếu hai toán hạng đầu không phải kiểu long thì phép tính
sẽ thực hiện với kiểu int
– Các toán hạng kiểu byte, short sẽ được chuyển sang kiểu int trước khi thực hiện phép toán
– Không thể chuyển biến kiểu int và kiểu boolean
Các kiểu dữ liệu cơ bản (tt)
l Kiểu số thực: float và double
l Không có giá trị nhỏ nhất và lớn nhất Chúng có thể
âm, dương, vô cực âm, vô cực dương.
l Lưu ý đối với các phép toán:
– Mỗi toán hạng đều có kiểu chấm động thì phép toán
chuyển thành phép toán dấu chấm động
– Nếu có một toán hạng là double thì các toán hạng còn lại
→ double trước khi thực hiện phép toán.
– Biến kiểu float và double có thể ép chuyển sang kiểu dữ
liệu khác trừ kiểu boolean
Các kiểu dữ liệu cơ bản (tt)
l Kiểu ký tự (char):
– Có kích thước là hai bytes
– Chỉ dùng để biểu diễn các ký tự trong bộ mã Unicode.
– Như vậy kiểu char trong java có thể biểu diễn tất
cả 216= 65536 ký tự khác nhau.
– Giá trị mặc định cho một biến kiểu char là null
Trang 5Chương 3: Ngôn ngữ lập trình Java
17
Các kiểu dữ liệu cơ bản (tt)
l Kiểu luận lý (boolean):
– Kiểu boolean chỉ nhận một trong hai giá trị: true
hoặc false.
– Trong java kiểu boolean không thể chuyển thành
kiểu số nguyên và ngược lại.
– Giá trị mặc định của kiểu boolean là false
Chương 3: Ngôn ngữ lập trình Java
18
Chuyển đổi kiểu dữ liệu
l Các hàm thuộc gói java.lang
Hằng
l Hằng là một giá trị bất biến trong chương trình
l Tên hằng được đặt theo qui ước giống như tên
biến.
– Hằng số nguyên: trường hợp giá trị hằng ở dạng long
ta thêm vào cuối chuỗi số chữ “l” hay “L” (ví dụ: 1L)
– Hằng số thực: truờng hợp giá trị hằng có kiểu float ta
thêm tiếp vĩ ngữ “f” hay “F”, còn kiểu số double thì ta
thêm tiếp vĩ ngữ “d” hay “D”
– Hằng Boolean: java có 2 hằng boolean là true, false
– Hằng ký tự: là một ký tự đơn nằm giữa nằm giữa 2
dấu nháy đơn
lVí dụ: ‘a’: hằng ký tự a
Hằng
l Khai báo hằng:
Cú pháp: final kiểu_dữ_liệu tên_hằng = giá trị;
l Ví dụ:
final char CH = ‘a’;// Khai báo h ằng CH kiểu char, có giá
trị là ‘a’
public final int ID = 6;// Khai báo h ằng ID kiểu int, có
phạm vi toàn cục
Trang 6Chương 3: Ngôn ngữ lập trình Java
21
Hằng (tt)
l Một số hằng ký tự đặc biệt
Chương 3: Ngôn ngữ lập trình Java
22
Chuỗi
l Một chuỗi là một dãy các ký tự đặt giữa hai dấu ngoặc kép Ví dụ: “Today and tomorrow”, “A”, “”
l Khai báo chuỗi:
– Khai báo chuỗi rỗng
Ví dụ: String str1=new String( );
– Khai báo và khởi tạo
Ví dụ: String str2=new String( Hello word );
– Khai báo và khởi tạo chuỗi từ một mảng kí tự
Ví dụ:
char ch[ ]={ a , b , c , d , e };
String str3=new String[ch];
String str4=new String[ch,0,2];
Chuỗi (tt)
l Nối chuỗi:
– Sử dụng toán tử +
– ví dụ: String s = “Today” + “and tomorrow”;
– Sử dụng phương thức concat
String str1,str2,str3;
str1 = “Welcome” ;
str2 = ” to Java” ;
str3=str1.concat(str2);
l Đổi một giá trị số thành chuỗi:
– Phương thức valueOf của lớp String
– Ví dụ: String s = String.valueOf(123);// kết quả s = “123”
Chuỗi (tt)
l Đổi một chuỗi thành số
– Sử dụng phương thức parseXXX của lớp tương ứng
– Ví dụ int n = Integer.parseInt(“123”);
l Trích chuỗi con từ một chuỗi
– Phương thức substring String str1=new String( ”Hello Java” );
String str2=str1.substring(0,3);
l Lấy độ dài chuỗi
– Phương thức length String str1=new String( ”Hello” );
int n=str1.length( );
Trang 7Chương 3: Ngôn ngữ lập trình Java
25
Chuỗi (tt)
l Trích ký tự tại một vị trí cho trước
– Phương thức charAt
String str1=new String( ”Hello”);
char ch=str1.charAt(3);
l So sánh hai chuỗi
– Sử dụng phương thức equals của lớp String
String s = new String(“ABC”);
boolean x = s.equals(“ABC”); //(x = true)
– Sử dụng phương thức compareTo
int a=str1.compareTo(str2);
a>0: st1 > str2
a= 0: str1 = str2
a<0: str1 < str2
Chương 3: Ngôn ngữ lập trình Java
26
Chuỗi (tt)
l Đổi chuỗi thành mảng ký tự
– Phương thức toCharArray String str1==new String( itop.vn );
char [ ] ch=str1.toCharArray( );
l Tìm vị trí chuỗi con trong một chuỗi
– Phương thức indexOf int n=str1.indexOf(str2);
Tìm vị trí chuỗi str2 trong chuỗi str1, nếu không tìm thấy
sẽ trả về -1
l Trả về chuỗi chữ thường: toLowerCase
l Trả về chuỗi chữ hoa: toUpperCase
Chuỗi (tt)
l Kiểm tra chuỗi bắt đầu của một chuỗi
– Phương thức startsWith
String str1= “Hello”;
String str2= “He” ;
boolean k=str1.startsWith(str2); //k = true
l Kiểm tra chuỗi kết thúc của một chuỗi
– Phương thức endsWithf
l Trích một chuỗi từ mảng ký tự
– Phương thức copyValueOf
char ch[ ]={ a , b , c , d , e );
String str1=String.copyValueOf(2,2);
Mảng
– Mảng là tập hợp nhiều phần tử có cùng tên, cùng kiểu
dữ liệu
– Mỗi phần tử trong mảng được truy xuất thông qua chỉ số
Trang 8Chương 3: Ngôn ngữ lập trình Java
29
Mảng
– <kiểu dữ liệu> <tên mảng>[];
– <kiểu dữ liệu>[] <tên mảng>;
– Ví dụ:
l int arrInt[];
l hoặc int[] arrInt;
l int[] arrInt1, arrInt2, arrInt3;
Chương 3: Ngôn ngữ lập trình Java
30
Mảng
l Cấp phát bộ nhớ cho mảng
– Để cấp phát bộ nhớ cho mảng trong Java ta cần dùng từ khóa
new (Tất cả trong Java đều thông qua các đối tượng)
– Ví dụ: int arrInt = new int[100];
l Khởi tạo mảng
– Có thể khởi tạo giá trị ban đầu cho các phần tử của khi khai báo.
– Ví dụ:
lint arrInt[] = {1, 2, 3};
lchar arrChar[] = {‘a’, ‘b’, ‘c’};
lString arrStrng[] = {“ABC”, “EFG”, ‘GHI’};
Mảng
– Phần tử đầu tiên có chỉ số là 0, phần tử thứ n có chỉ số
là n-1
– Các phần tử của mảng được truy xuất thông qua chỉ
số của nó đặt giữa cặp dấu ngoặc vuông ([])
– Ví dụ:
lint arrInt[] = {1, 2, 3};
lint x = arrInt[0]; // x sẽ có giá trị là 1.
lint y = arrInt[1]; // y sẽ có giá trị là 2.
lint z = arrInt[2]; // z sẽ có giá trị là 3.
NỘI DUNG
l Cấu trúc một chương trình Java
l Dịch và thực thi chương trình Java
l Cú pháp và ngữ nghĩa
l Hằng, biến và các kiểu dữ liệu cơ bản
l Toán tử v biểu thức
l Nhập xuất dữ liệu
l Cấu trúc điều khiển
Trang 9Chương 3: Ngôn ngữ lập trình Java
33
Toán tử số học
Chương 3: Ngôn ngữ lập trình Java
34
Toán tử so sánh
l Ép kiểu rộng (widening conversion): từ kiểu nhỏ sang kiểu lớn (không mất mát thông tin)
l Ép kiểu hẹp (narrow conversion): từ kiểu lớn sang kiểu nhỏ (có khả năng mất mát thông tin)
– <tên biến> = (kiểu_dữ_liệu) <tên_biến>;
Ví dụ:
– float fNum = 2.2;
– int iCount = (int) fNum; // (iCount = 2)
Trang 10Chương 3: Ngôn ngữ lập trình Java
37
Toán tử điều kiện
l Cú pháp: < điều kiện> ? <biểu thức 1> : < biểu
thức 2>
Ví dụ:
– int x = 10;
– int y = 20;
– int Z = (x<y) ? 30 : 40;
– // Kết quả z = 30 do biểu thức (x < y) là đúng
Chương 3: Ngôn ngữ lập trình Java
38
NỘI DUNG
l Cấu trúc một chương trình Java
l Dịch và thực thi chương trình Java
l Cú pháp và ngữ nghĩa
l Hằng, biến và các kiểu dữ liệu cơ bản
l Toán tử và biểu thức
l Nhập xuất dữ liệu
l Cấu trúc điều khiển
Nhập xuất dữ liệu
l Lệnh xuất một chuỗi ra màn hình: phương thức
print, cú pháp như sau:
l System.out.print(StringValue);/* Xuất chuỗi
StringValue ra màn hình và không xuống dòng */
l System.out.println(StringValue); /* Xuất chuỗi
StringValue ra màn hình và xuống dòng */
l Ví dụ:
System.out.print(“The answer is, ”);//Xuất ra chuỗi “The
answer is, ”
Nhập xuất dữ liệu (tt)
l Lệnh nhập một giá trị vào từ bàn phím:
– Tạo các đối tượng của các lớp từ các lớp nguyên thuỷ hơn
– Sử dụng phương thức nhập dữ liệu
Trang 11Chương 3: Ngôn ngữ lập trình Java
41
Nhập xuất dữ liệu (tt)
l Ví dụ: /* Khai báo inStream của lớp InputStreamReader*/
InputStreamReader inStream;
/* Nhập dữ liệu vào đối tượng inStream */
inStream = new InputStreamReader(System.in);
BufferedReader inData = new BufferedReader(inStream);
/* Nhập dữ liệu vào đối tượng inData */
inData = new BuffredReader(new
InputStreamReader(System.in));
// Lưu trữ một dòng văn bản vào biến oneLine
String oneLine = inData.readLine();
Chương 3: Ngôn ngữ lập trình Java
42
Nhập xuất dữ liệu (tt)
l Sử dụng đối tượng Scanner: Ví dụ nhập hai số nguyên a và b và xuất ra tổng
import java.util.Scanner;
public class InTong{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
int a = s.nextInt(); int b = s.nextInt();
int c = a + b;
System.out.print(“Tong la:” + c);
} }