Bài 2: Một số thành phần cơ bản trong Java
Một số qui định
Bảng chữ cái và Định danh
Từ khóa
Kiểu dữ liệu
Thứ tự ưu tiên các phép toán
Biến
Lớp Math
Nhập xuất dữ liệu
Cấu trúc điều khiển
Mảng
Bài tập trắc nghiệm và thực hành
14 trang |
Chia sẻ: candy98 | Lượt xem: 546 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng Lập trình hướng đối tượng (OOP) - Chương 1: Làm quen với Java - Bài 2- Văn Thị Thiên Trang, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1Chương 1: LÀM QUEN
VỚI JAVA
Bài 2: Một số thành phần cơ bản trong Java
Mục đích & Yêu cầu
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 nhập xuất dữ liệu cơ bản.
Nội dung
Một số qui định
Bảng chữ cái và Định danh
Từ khóa
Kiểu dữ liệu
Thứ tự ưu tiên các phép toán
Biến
Lớp Math
Nhập xuất dữ liệu
Cấu trúc điều khiển
Mảng
Bài tập trắc nghiệm và thực hành
1. Một số qui định
Chú thích:
• Trên 1 dòng: //Chú thích
• Nhiều dòng:
/*
Các dòng chú thích
*/
Lệnh đơn: kết thúc bằng ;
Khối lệnh: { }. Các khối lệnh có thể lồng
nhau.
21. Một số qui định
Ví dụ:
1. Một số qui định
Khai báo lớp
l Si hVi
Biến
Si hc ass n en
Giao diện
interface Nguoi
Phương thức
diHoc([tham số])
ngay n
Hằng
NAM
NU
2. Bảng chữ cái & Định danh
Bảng chữ cái:
• Các chữ cái: A, B, .., Z, a, , z.
• Các chữ số: 0, 1, , 9.
• Các ký tự khác: +, -,
2. Bảng chữ cái và Định danh
Định danh
ế• Là tên của một bi n, lớp, hoặc phương thức.
• Bắt đầu bằng kí tự hoặc dấu gạch dưới _ hoặc dấu đôla $.
• Trong định danh, có thể dùng chữ cái, chữ số, dấu _.
• Không hạn chế chiều dài.
Ví dụ:
• SoNguyen
• _phanSo
• $tongtien
Chú ý: không viết tắt. Không đặt tên trùng với từ khóa.
33. Từ khóa 3. Từ khóa
Cho các kiểu dữ liệu cơ bản : byte, short, int, long,
float, double, char, boolean
Phát biểu lặp: do, while, for, break, continue
Phát biểu rẽ nhánh: if, else, switch, case, default,
break
Đặc tả đặc tính một method: private, public,
protected, final, static, abstract, synchronized,
volatile, strictfp
3. Từ khóa
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
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
4. Kiểu dữ liệu
Số nguyên:
ểKi u Kích thước Phạm vi
byte 1 byte -128->127
short 2 bytes -32768->32767
int 4 bytes -2 147 483 648 ->
long 8 bytes -9 223 372 036 854 775 808, , , , , ,
Các phép toán:
+, -, *, /, %, ++, --
44. Kiểu dữ liệu
Ký tự:
• char
• 2bytes (dùng bảng mã unicode)
Hằng ký tự: đặt giữa ‘’
Các ký tự đặc biệt:
• \b xóa lùi
• \t tab
• \n xuống dòng
\”“•
• \’ ‘
• \\ \
• \uxxxx ký tự unicode
Ví dụ: ‘a’, ‘\n’, ‘\\’, ‘\’’
4. Kiểu dữ liệu
Logic:
• boolean
• Giá trị: true, false.
Các phép toán:
! && ||• , ,
Ví dụ: 3> 5 có giá trị false
4. Kiểu dữ liệu
Số thực:
Kiểu Kích thước Phạm vi
float 4 bytes 1.40129846432481707e-45
3.40282346638528860e+38
double 8 bytes 4.94065645841246544e-324
1.79769313486231570e=308
Các phép toán:
• +,-,*,/,++,--
5. Thứ tự ưu tiên các phép
toán
56. Biến
Khai báo biến:
• Kiểu dữ liệu ;
• Ví dụ: int x, y;
Phép gán:
• biến = ;
• Kết quả phép gán trả về giá trị biểu thức.
• Được phép gán: a = b = c;
Các phép gán mở rộng:
• +=, -=, *=, /=, %=
6. Biến
6. Biến
Phạm vi giá trị của biến
ố ế có phạm vi trong kh i khai báo bi n đó.
ví dụ:
6. Biến
66. Biến
Chương trình này có lỗi không? vì sao?
6. Biến
Lỗi không tìm thấy khai báo biến j
6. Biến
Giá trị khởi tạo ban đầu của biến
6. Biến
Chương trình này chạy có lỗi không? Vì sao?
76. Biến
Chương trình có lỗi. Biến i, b chưa thiết lập.
Î Để cho chặt chẽ, Java buộc người lập trình
phải thiết lập giá trị trước khi sử dụng.
6. Biến
Chuyển đổi kiểu dữ liệu:
• Hằng xác định kiểu dữ liệu:
1.2 double
1.2f float
123l long
• Chuyển đổi kiểu tự động:
byte->short->int->long->float->double.
• Ép kiểu:
(kiểu)
Ví dụ: int x = (int) 123.45; //x=123
7. Lớp Math
Thuộc gói lang, chứa các hàm toán học:
• import java lang *;. .
Một số hàm toán học
abs(TrịSố) : lấy trị tuyệt đối
Nếu trị số kiểu byte, short thì kết qủa là kiểu int
int n= -5, m ; m = Math.abs(n); // m=5
Î Để ý cách dùng hàm toán: Math TênHàm(thamSố).
Hàm ceil(x)Æ Số tròn sát trên <=x (trần)
Math.ceil(8.02)Æ 9.0 Math.ceil(-1.3)Æ -1.0
Math.ceil(100)Æ 100.0
7. Lớp Math
Hàm floor(x) Æ Số tròn chận dưới (sàn)
Math.ceil( -5.63 )Æ -6.0 Math.ceil(100) Æ 100.0
Hàm max(x,y) Æ Trị lớn trong 2 số
Hàm min(x,y)
Hàm random() Æ trả về 1 số ngẫu nhiên từ 0.0
đến 1.0
Hàm round (sốthực) Math.round(34.5) Æ 35
sqrt(x)Æ trả lại căn bân 2 của x
88. 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.
• import java.io.*;
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)
8. Nhập xuất dữ liệu
Xuất dữ liệu ra màn hình:
• con trỏ không xuống dòng
System.out.print(Dữ liệu xuất);
• con trỏ xuống dòng
System.out.println(Dữ liệu xuất);
Dữ liệu xuất có thể là : ký tự, số, chuỗi,
VD:
System.out.println(“Gia tri cua bien a la:” + a);
8. Nhập xuất dữ liệu
Minh họa
8. Nhập xuất dữ liệu
Nhập vào dạng số nguyên hoặc mảng byte
ể ễ ủ ỗbi u di n giá trị c a chu i nhập vào.
Nhập một ký tự
System.in.read();Æ trả lại giá trị mã accii
Nhập nhiều ký tự
System.in.read(byte[],int,int);
Mỗi phần tử mảng biểu diễn nhị phân của
một ký tự nhập vào
98. Nhập xuất dữ liệu
Æ System.in.read: Chỉ nhập được dạng kí tự
8. Nhập xuất dữ liệu
8. Nhập xuất dữ liệu
Import java.util.*;
Nhập xét:
Nhập dữ liệu từ bàn phím khá phức tạp
Mong muốn nhập dữ liệu kiểu byte, int, String, ...
Lớp Scanner cho phép ta nhập theo kiểu này.
Khai báo:
Scanner x = new Scanner(System.in);
Đọc dữ liệu
int i; i = x.nextInt();
byte b; b = x.nextByte();
String c; c = x.nextLine();
8. Nhập xuất dữ liệu
Ví dụ: Chương trình nhập vào:
• Tên bạn
• Tuổi
• Năm sinh
• Điểm trung bình năm 1
ấXu t các thông tin này ra màn hình
10
8. Nhập xuất dữ liệu
Nhập xuất sử dụng hộp thoại
Lớp: javax.swing.JOptionPane
8. Nhập xuất dữ liệu
Kết quả
9. Cấu trúc điều khiển
Rẽ nhánh:
if (điều kiện)
Công việc 1;
[else
Công việc 2;]
ế ề• N u đúng thì thực hiện <Công việc
1>, ngược lại thực hiện (nếu có).
9. Cấu trúc điều khiển
Lưu ý:
Sai!
if( i == j )
if ( j == k )
System.out.print(
“i == k”);
Đúng!
if( i == j) ){{
if ( j == k )
System.out.print(
“i == k”);
else
System.out.print(
“i != j”);
}]}
else
System.out.print(
“i != j”);
11
9. Cấu trúc điều khiển
Lựa chọn:
switch ()
{
case gt1: CV1;
case gt2: CV2;
case gtn: CVn;
d f lt CV 1e au : n+ ;
}
• Nếu giá trị trùng với giá trị (gt) nào thì thực
hiện các công việc (CV) từ đó đến hết khối.
• Để dừng khi thực hiện 1 CV thì dùng lệnh break;
9. Cấu trúc điều khiển
Ví dụ: Chương trình đọc số từ 0..9 thành chữ. Số được nhập
vào từ bàn phím.
class DocSo
{
public static void main(String args[])
{
byte so = Byte.parseByte(args[0]);
switch (so)
{
case 0: System.out.println(“Khong”);break;
case 9: System.out.println(“Chin”);break
}
}
}
9. Cấu trúc điều khiển
Lặp for:
ềfor (;;)
;
1. Thực hiện
2. Nếu đúng thì thực hiện <Công việc
lặp>
3. Thực hiện
4. Quay lại kiểm tra
5. Lặp bước 2 đến khi sai.
9. Cấu trúc điều khiển
Ví dụ: Chương trình tính tổng các số đưa vào từ
tham số.
class TinhTong
{
public static void main(String args[])
{
int tong=0,i;
for(int i=0; i<args.length; i++)
tong+=Integer.parseInt(args[i]);
System.out.println(“Tong = ”+tong);
}
}
Thực hiện: java TinhTong 1 3 4 5 2
12
9. Cấu trúc điều khiển
Lặp while:
while()
;
• Thực hiện khi còn đúng.
do .. while:
do
{
;
} while ();
9. Cấu trúc điều khiển
Lệnh break:
• Ra khỏi 1 cấu trúc chuyển đến lệnh ngay sau cấu
trúc đó.
Lệnh continue:
• Quay lại đầu vòng lặp.
Đặt biệt
continue label; //nhảy tới label
10. Mảng
Khai báo biến mảng:
• KiểuDữLiệu tênBiếnMảng[];
• KiểuDữLiệu[] tênBiếnMảng;
• Ví dụ: int m[];
• Hoặc int[] m;
ấ C p phát ô nhớ cho mảng:
• tênBiếnMảng = new KiểuDữLiệu[sốPT];
• Ví dụ: m = new int[10];
10. Mảng
Khai báo và khởi tạo:
• KiểuDữLiệu tênBiếnMảng[]={ds các gt};
• Ví dụ: int m[]={1,2,3,4};
Thao tác với biến mảng:
• Thao tác từng phần tử: tênBiếnMảng[i]
• Chỉ số bắt đầu từ 0.
• Ví dụ: m[0]=1; m[1]=10;
13
10. Mảng
Ví dụ: Sinh ngẫu nhiên mảng số nguyên. Sắp
xếp in lên màn hình, .
class SapXep
{
public static void main(String
args[])
{
int a[] = new int[100],i,j;
for(i=0;i<100;i++)
a[i]=(int)(Math.random()*100);
10. Mảng
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
if(a[i]>a[j])
{
int tg=a[i];
a[i]=a[j];
a[j]=tg;
}
System.out.println("Mang ngauhi ")n en: ;
for(i=0;i<100;i++)
System.out.print(a[i]+ " ");
}
}
10. Mảng
Mảng 2 chiều:
• Là mảng của mảng 1 chiều.
• Khai báo:
Kiểu biến[][];
Cấp phát ô nhớ: biến=new kiểu[m][n];
Khởi tạo: int m[][]={{1,2,3},{4,5,6}};
• Thao tác:
biến[i][j]
11. Bài tập thực hành
1. Chương trình giải phương trình bậc hai ax2 + bx + c =0
ể ế ể2. Nhập vào đi m, cho bi t đi m này thuộc loại gì?
ví dụ: 6 : loại trung bình
3. Chương trình tính n! với n là tham số đưa vào từ dòng
lệnh.
4 Viết chương trình nhập vào một số n xuất ra màn hình. ,
các số nguyên tố trong khoảng [0,n]. Với n nhập vào từ
bàn phím
5. Viết chương trình tính tổng sau: s = 12+32+.. +(2n+1)2
14
11. Bài tập thực hành
7. Nhập m,n nguyên (0<m,n<20). In lên màn
hình tam giác cân có chiều cao m, và hình
chữ nhật có chiều rộng là n.
* **************
* * * *
* * * *n
* * * *
* * * * * * * **************
m
11. Bài tập thực hành
8. Tìm ước số chung lớn nhất (USCLN).
ấ9. Nhập vào một dãy b t kỳ:
• in dãy đảo ngược dãy đó, ví dụ: dãy 1 5 3 8, in ra 8 3 5 1
• Sắp xếp dãy tăng dần, in dãy
• Sắp xếp giảm dần, in dãy
10. Nhập vào một ma trận Am,n
• Tìm số nhỏ nhất và số lớn nhất trong ma trận
• Tính tổng của tất cả các phần tử trong ma trận
• Đểm trong ma trận có bao nhiêu số dương, 0, số âm