Ngôn ngữ lập trình Java

MỤCLỤC

Chơng 1: GIỚITHIỆUTỔNG QUANVỀ NGÔN NGỮLẬP

TRÌNH JAVA . 7

1.1.Mở đầu . 7

1.2. Giới thiệuvề ngôn ngữlập trình Java . 7

1.2.1. Java l à gì? . 7

1.2.2. Lịchsử phát tri ểncủa ngôn ngữlập trình Java . 7

1.2.3. Mộtsố đặc đi ểmnổi bậccủa ngôn ngữl ập trì nh Java

. 8

1.3. Các ứngdụng Java . 10

1.3.1. Java và ứngdụng Consol e . 10

1.3.2. Java và ứngdụng Applet . 11

1.3.3. Java và phát tri ển ứngdụng Desktop dùng AWT và

JFC . 12

1.3.4. Java và phát tri ển ứngdụng Web . 13

1.3.5. Java và phát tri ển các ứngdụng nhúng . 14

1.4.Dịch và thực thi một chơng trình viếtbằng Java . 14

1.5. Chơng trình Java đầu ti ên. 15

1.5.1. Tạo chơng trình nguồn Hell oWordApp . 15

1.5.2. Bi êndịchtập tin nguồn Hell oWordApp. 16

1.5.3. Chạy chơng trình Hell oWordApp . 16

1.5.4. Cấu trúc chơng trình Hell oWordApp . 17

Sửdụng phơng thức/biếncủalớp . 17

1.6. Côngcụl ập trình và chơng trìnhdị ch. 17

1.6.1. J2SDK . 17

1.6.2. Côngcụ soạn thảo mã nguồn Java. . 18

Chơng 2: . 21

HẰNG, BIẾN, KIỂUDỮ LIỆU, . 21

TOÁNTỬ, BIỂU THỨC VÀ CÁC . 21

CẤUTRÚC ĐIỀU KHIỂN TRONG JAVA . 21

2.1. Biến . 21

2.2. Các kiểudữ liệucơsở . 23

2.2.1. Kiểusố nguyên . 24

2.2.2. Kiểudấu chấm động. 26

2

2.2.3. Kiểu kýtự (char) . 26

2.2.4. Kiểu luận lý (bool ean) . 27

2.3.Hằng: . 27

2.4.Lệnh, khối lệnh trong j ava. 28

2.5. Toántử và biểu thức . 29

2.5.1. Toántửsốhọc. 29

2.5.2. Toántử trên bi t . 29

2.5.3. Toántử quanhệ & l ogi c . 29

2.5.4. Toántử ép kiểu . 30

2.5.5. Toántử đi ều kiện . 30

2.5.6. Thứtự ưu ti ên . 30

2.6.Cấu trúc đi ều khiển . 31

2.6.1. Cấu trúc đi ều kiện if else . 31

2.6.2. Cấu trúc swi tch case . 32

2.6.3. Cấu trúcl ặp . 32

2.6.4. Cấu trúcl ệnh nhảy (jump) . 33

2.7.Lớp bao kiểudữ liệucơsở (Wrapper Cl ass) . 33

2.8. Kiểudữ liệumảng. 34

2.8.1. Khái niệmmảng . 34

2.8.2. Khai báomảng . 34

2.8.3. Cấp phátbộ nhớ chomảng . 35

2.8.4. Khởi tạomảng. 35

2.8.5. Truycậpmảng . 35

2.9.Mộtsố ví dụ minhhọa: . 36

Chơng 3:HƯỚNG ĐỐITƯỢNG TRONG JAVA . 47

3.1.Mở đầu . 47

3.2.Lớp (Cl ass) . 48

3.2.1. Khái niệm . 48

3.2.2. Khai báo/định nghĩalớp . 48

3.2.3. Tạo đối tợngcủalớp . 49

3.2.4. Thuộc tínhcủalớp . 49

3.2.5. Hàm - Phơng thứclớp (Method). 50

3.2.6. Khởi tạomột đối tợng (Constructor). 52

3.2.7. Biến this . 53

3

3.2.8. Khai báo chồng phơng thức (overl oadi ng method)

. 54

3.3. Đặc điểmhớng đối tợng trong j ava . 54

3.3.1. Đóng gói (encapsulati on) . 55

3.3.2. Tí nh đa hình (polymorphism): . 55

3.3.3. Tí nhkế thừa (inheri tance) . 57

3.4. Gói (packages) . 62

3.5. Giao diện (interface) . 63

3.5.1. Khái niệm interface: . 63

3.5.2. Khai báo interface: . 64

3.5.3. Ví dụ minhhọa. 65

Chơng 4:THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG . 82

4.1.Mở đầu . 82

4.2. Giới thiệu thư viện awt. 83

4.3. Các khái niệmcơbản . 83

4.3.1. Component . 83

4.3.2. Container . 84

4.3.3. Layout Manager . 85

4.4.Thiếtkế GUI cho chơng trình . 86

4.4.1. Tạo khung chứacửasổ chơng trình . 86

4.4.2. Tạohệ thống thực đơn. 87

4.4.3. Gắn Component vào khung chứa . 89

4.4.4. Trình bày các Component trong khung chứa . 90

4.4.5. Các đối tợng khung chứa Container . 101

4.5.Xử lý biếncố/sự kiện . 105

4.5.1. Mô hìnhxử lýsự kiện (Event-Handling Model ) . 105

4.5.2. Xử lýsự kiện chuột . 108

4.5.3. Xử lýsự kiện bàn phím . 111

4.6.Mộtsố ví dụ minhhọa . 115

Chơng 5: LUỒNG VÀTẬPTIN . 128

5.1.Mở đầu . 128

5.2. Luồng (Streams) . 129

5.2.1. Khái niệm luồng . 129

5.2.2. Luồng byte (Byte Streams) . 129

5.2.3. Luồng kýtự (Character Streams) . 131

4

5.2.4. Những luồng đợc định nghĩ a trớc (The Predef i ned

Streams) . 132

5.3.Sửdụng luồng Byte . 133

5.3.1. Đọcdữ liệutừ Consol e . 134

5.3.2. Xuấtdữ liệu ra Consol e . 135

5.3.3. Đọc và ghi file dùng luồng Byte . 136

5.3.4. Đọc và ghi dữ liệu nhị phân. 141

5.4. File truycập ngẫu nhiên (Random Access Files) . 145

5.5.Sửdụng luồng kýtự . 147

5.5.1. Nhập Console dùng luồng kýtự . 149

5.5.2. Xuất Console dùng luồng kýtự . 151

5.5.3. Đọc/ghi File dùng luồng kýtự . 152

5.6.Lớp File . 155

Chơng 6:LẬPTRÌNHCƠSỞDỮ LIỆU . 158

6.1. GIỚITHIỆU. 158

6.2. KIẾNTRÚC JDBC. 158

6.3. Các khái niệmcơbản . 160

6.3.1. JDBC Driver . 160

6.3.2. JDBC URL . 162

6.4.KẾT NỐI CSDLVỚI JDBC . 163

6.4.1. Đăng ký trình đi ều khiển . 163

6.4.2. Thực hiệnkếtnối . 163

6.4.3. Ví dụ . 164

6.5. KIỂUDỮ LIỆU SQL VÀ KIỂUDỮ LIỆU JAVA. 168

6.6. CÁCTHAOTÁCCƠBẢNTRÊN CSDL . 170

6.6.1. Cáclớpcơbản . 170

6.6.2. Ví dụ truyvấn CSDL . 171

6.6.3. Ví dụcập nhật CSDL . 174

Tài liệu tham khảo: . 176

Phụl ục A:Trắc nghiệm kiến thức. 177

PhụLục B:Đáp án trắc nghiệm kiến thức . 205

pdf206 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 2187 | Lượt tải: 1download
Tóm tắt nội dung Ngôn ngữ lập trình Java, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ter: 2 
b. Kết quả trên màn hình là: Before: 0 After: 1 
c. Lỗi biên dịch ở dòng 4 của lớp Nightingale vì không thể 
overidde thành viên static 
d. Lỗi biên dịch ở dòng 10 của lớp Nightingale vì phương thức 
fly() là protected trong lớp cha. 
59. Chọn phát biểu đúng 
a. Chỉ kiểu dữ liệu cơ sở mới được chuyển đổi kiểu tự động; 
để chuyển đổi kiểu dữ liệu của biến tham chiểu phải sử dụng 
phép ép kiểu 
b. Chỉ biến tham chiếu mới được chuyển đổi kiểu tự động; để 
chuyển kiểu của 1 biến kiểu cơ sở phải sử dụng phép toán ép 
kiểu 
c. Cả kiểu dữ liệu cơ sở và kiểu tham chiếu đều có thể chuyển 
đổi tự động và ép kiểu 
d. Phép ép kiểu đối với dữ liệu số có thể cần phép kiểm tra khi 
thực thi 
60. Dòng lệnh nào sau đây sẽ không thể biên dịch: 
1 : byte b = 5; 
2 : char c = ‘5’; 
3 : short s = 55; 
4 : int i = 555; 
5 : float f = 555.5f; 
6 : b = s; 
7 : i = c; 
8 : if (f > b) 
9 : f = i; 
a. Dòng 3 
b. Dòng 4 
c. Dòng 5 
d. Dòng 6 
61. Chọn dòng phát sinh lỗi khi biên dịch 
 196
1 : byte b = 2; 
2 : byte b1 = 3; 
3 : b = b * b1; 
a. Dòng 1 
b. Dòng 2 
c. Dòng 3 
d. Tất cả các câu trên đều đúng 
62. Trong đoạn mã sau kiểu dữ liệu của biến result có thể là 
những kiểu nào? 
1 : byte b = 11; 
2 : short s =13; 
3 : result = b * ++s; 
a. byte, short, int, long, float, double 
b. boolean, byte, short, char, int, long, float, double 
c. byte, short, char, int, long, float, double 
d. int, long, float, double 
63. Cho đoạn chương trình sau: 
1 : class Cruncher{ 
2 : void crunch(int i){ 
3 : System.out.println(“int version”): 
4 : } 
5 : void crunch(String s){ 
6 : System.out.println(“String version”); 
7 : } 
8 : 
9 : public static void main(String[] args){ 
10 : Cruncher crun = new Cruncher(); 
11 : char ch = ‘p’; 
12 : crun.crunch(ch); 
13 : } 
14 : } 
a. Dòng 5 sẽ không biên dịch vì phương thức trả về kiểu void 
không thể overridde 
 197
b. Dòng 12 sẽ không biên dịch vì không có phiên bản nào của 
phương thức crunch() nhận vào tham số kiểu char 
c. Đoạn mã biên dịch được nhưng sẽ phát sinh Exception ở 
dòng 12 
d. Chương trình chạy và in ra kết quả: int version 
64. Chọn phát biểu đúng 
a. Tham chiếu của đối tượng có thể được chuyển đổi trong 
phép gán nhưng không thể thực hiện trong phép gọi phương 
thức 
b. Tham chiếu của đổi tượng có thể được ép kiểu trong phép 
gọi phương thức nhưng không thể thực hiện trong phép gán 
c. Tham chiểu của đối tượng có thể được chuyển đổi trong 
phép gọi phương thức và phép gán nhưng tuân theo những quy 
tắc khác nhau 
d. Tham chiếu của đối tượng có thể được chuyển đổi trong 
phép gọi phương thức và phép gán và tuân theo những quy tắc 
giống nhau 
65. Cho đoạn mã như bên dưới. Hãy cho biết dòng nào không 
thể biên dịch 
1 : Object ob = new Object(); 
2 : String stringarr[] = new String[50]; 
3 : Float floater = new Float(3.14f); 
4 : ob = stringarr; 
5 : ob = stringarr[5]; 
6 : floater = ob; 
7 : ob = floater; 
a. Dòng 4 
b. Dòng 5 
a. Dòng 6 
b. Dòng 7 
 198
Hình sau áp dụng cho các câu 66, 67, 68 
66. Cho đoạn mã sau: 
1 :Dog rover, fido; 
2 :Animal anim; 
3 : 
4 :rover = new Dog(); 
5 :anim = rover; 
6 :fido = (Dog)anim; 
Hãy chọn phát biểu đúng 
a. Dòng 5 không thể biên dịch 
b. Dòng 6 không thể biên dịch 
c. Đoạn mã biên dịch thành công nhưng sẽ phát sinh 
Exception tại dòng 6 
d. Đoạn mã biên dịch thành công và có thể thi hành 
67. Cho đoạn mã sau: 
1 :Cat sunflower; 
2 :Washer wawa; 
3 :SwampThing pogo; 
4 : 
5 :sunflower = new Cat(); 
Swamp 
Thing 
Mammal 
Animal 
Dog Cat 
(implements 
Washer) 
Racoon 
(implements 
Washer) 
 199
6 :wawa = sunflower; 
7 :pogo = (SwampThing)wawa; 
Hãy chọn phát biểu đú 
a. Dòng 6 không thể biên dịch; cần có một phép ép kiểu để 
chuyển từ kiểu Cat sang kiểu Washer 
b. Dòng 7 không thể biên dịch vì không thể ép từ kiểu 
interface sang kiểu class 
c. Đoạn mã sẽ dịch và chạy nhưng phép ép kiểu ở dòng 7 là 
thừa và có thể bỏ di 
d. Đoạn mã biên dịch thành công nhưng sẽ phát sinh 
Exceptiono ở dòng 7 vì kiểu lớp của đối tượng trong biến wawa 
lúc thi hành không thể chuyển sang kiểu SwampThing 
68. Cho đoạn mã sau 
1 :Racoon rocky; 
2 :SwampThing pogo; 
3 :Washer w; 
4 : 
5 :rocky = new Racooon(); 
6 :w = rocky; 
7 :pogo = w; 
a. Dòng 6 sẽ không biên dịch; cần phải có phép ép kiểu để 
chuyển từ kiểu Racoon sang kiểu Washer 
b. Dòng 7 sẽ không biên dịch; cần có phép ép kiểu để chuyển 
từ kiểu Washer sang kiểu SwampThing 
c. Đoạn mã sẽ biên dịch nhưng sẽ phát sinh Exception ở dòng 
7 vì chuyển đổi kiểu khi thực thi từ interface sang class là 
không được phép 
d. Đoạn mã sẽ biên dịch và sẽ phát sinh Exception ở dòng 7 vì 
kiểu lớp của w tại thời điểm thực thi không thể chuyển sang 
kiểu SwampThing 
69. Cho đoạn mã sau: 
1 : for (int i = 0; i < 2; i++){ 
2 : for (int j = 0; j < 3; j++){ 
 200
3 : if (i == j){ 
4 : continue; 
5 : } 
6 : System.out.println(“i = “ + i + “j = “ + j); 
7 : } 
8 : } 
Dòng nào sẽ là một trong số các kết quả được in ra? 
a. i = 0 j = 0 
b. i = 2 j = 1 
c. i = 0 j = 2 
d. i = 1 j = 1 
70. Cho đoạn mã sau: 
1 : outer: for (int i = 0; i < 2; i++){ 
2 : for (int j =0; j < 3; j++){ 
3 : if (i == j){ 
4 : continue outer; 
5 : } 
6 : System.out.println(“i = “ + i + “j = “ + j); 
7 : } 
8 : } 
Dòng nào sẽ là một trong số các kết quả được in ra? 
a. i = 0 j = 0 
b. i = 0 j = 1 
c. i = 0 j = 2 
d. i = 1 j = 0 
71. Chọn vòng lặp đúng 
a. 
1 : while (int i < 7){ 
2 : i++; 
3 : System.out.println(“i is “ + i); 
4 : } 
b. 
 201
5 : int i = 3; 
6 : while (i){ 
7 : System.out.println(“i is “ + i); 
8 : } 
c. 
1 : int j = 0; 
2 : for(int k = 0; j + k != 10; j++, k++){ 
3 : System.out.println(“j is “ + j + “ k is “ + k); 
4 : } 
d. 
1 : int j = 0; 
2 : do{ 
3 : System.out.println(“j is “ + j++); 
4 : if (j == 3) { continue loop;} 
5 : }while (j < 10); 
72. Cho biết kết xuất của đoạn mã sau 
1 : int x = 0, y = 4, z = 5; 
2 : if ( x > 2){ 
3 : if (y < 5){ 
4 : System.out.println(“message one”); 
5 : } 
6 : else{ 
7 : System.out.println(“message two”); 
8 : } 
9 : } 
10 : else if (z > 5){ 
11 : System.out.println(“message three”); 
12 : } 
13 : else{ 
14 : System.out.println(“message four”); 
15 : } 
a. message one 
b. message two 
c. message three 
 202
d. message four 
73. Chọn phát biểu đúng cho đoạn mã sau: 
1 : int j = 2; 
2 : switch (j){ 
3 : case 2: 
4 : System.out.println(“value is two”); 
5 : case 2 + 1: 
6 : System.out.println(“value is three”); 
7 : break; 
8 : default: 
9 : System.out.println(“value is” + j); 
10 : break; 
11 : } 
a. Đoạn mã không hợp lệ bỡi biểu thức ở dòng 5 
b. Biến j trong cấu trúc switch() có thể là một trong các kiểu: 
byte, short, int hoặc long 
c. Kết xuất của chương trình chỉ là dòng: value is two 
d. Kết xuất của chương trình chỉ là dòng: value is two và 
value is three 
74. Cho biết kết quả sau khi dịch và thực thi đoạn chương trình 
sau: 
1. import java.awt.*; 
2. 
3. public class Test extends Frame { 
4. Test() { 
 5. setSize(300,300); 
 6. Button b = new Button(“Apply”); 
 7. add(b); 
 8. } 
 9. 
10. public static void main(String args[]) { 
11. Test f = new Test(); 
12. f.setVisible(true); 
 203
13. } 
14. } 
a) Có lỗi biên dịch tại dòng 11 bởi vì constructor ở dòng 4 
không khai báo public. 
b) Chương trình biên dịch thành công nhưng có sẽ ném ra 
exception khi thực thi câu lệnh ở dòng thứ 7. 
c) Chương trình hiển thị frame trống. 
d) Chương trình hiển thị 1 nút nhấn (Button) sử dụng font chữ 
mặc định cho nhãn của Button. Button chỉ đủ lớn để bao quanh 
nhãn của nó. 
e) Chương trình hiển thị nút nhấn (Button) dùng font chữ mặc 
định cho nhãn nút. Nút nhấn sẽ choán tất cả vùng hiển thị của 
frame. 
75. Nếu 1 frame dùng bộ quản lý trình bày (layout manager) là 
GridLayout và không chứa bất kỳ panel hay container nào khác 
bên trong nó thì tất cả những components khi đưa vào trong 
frame này có cùng kích thước như nhau (ngang, dọc)? 
a) Đúng. 
b) Sai. 
76. Nếu 1 frame dùng bộ quản lý trình bày (layout manager) 
mặc định và không chứa bất kỳ panel nào bên trong thì tất cả 
những components bên trong frame là cùng kích thước (ngang, 
dọc) ? 
a) Đúng. 
b) Sai. 
77. Với bộ quản lý trình bày BorderLayout không nhất thiết các 
vùng phải có chứa các components. 
a) Đúng. 
b) Sai. 
78. Bộ quản lý trình bày mặc định cho 1 khung chứa kiểu Panel 
là: 
 204
a) FlowLayout 
b) BorderLayout 
c) GridLayout 
d) GridBagLayout 
79. Một Container có bộ quản lý trình bày là GridBagLayout thì 
mỗi component sẽ có kích thước bằng nhau khi thêm vào khung 
chứa (container) này? 
a) Đúng 
b) Sai 
80. Bạn có thể tạo ra cửa sổ chính của ứng dụng bằng cách gọi: 
 Frame f = new Frame(“Main Frame”); 
Nhưng khi bạn chạy chương trình thì Frame không hiển thị. 
Dòng nào bên dưới sẽ làm hiển thị Frame. 
a) f.setSize(300, 200); 
b) f.setBounds(10, 10, 500, 400); 
c) f.setForeground(Color.white); 
d) f.setVisible(true); 
81. Đối tượng nào bên dưới có thể chứa 1 menubar (chọn 
những câu đúng) 
a) Panel 
b) ScrollPane 
c) Frame 
d) Menu 
82. Sau khi tạo 1 frame bằng câu lệnh Frame f = new Frame() 
và tạo menu bar bằng câu lệnh MenuBar mb = new MenuBar(), 
làm thế nào để gắn MenuBar tên mb vào f. 
a) f.add(mb) 
b) f.setMenu(mb) 
c) f.addMenu(mb) 
d) f.setMenuBar(mb) 
 205
Phụ Lục B: Đáp án trắc nghiệm kiến thức 
1.c; 2.b; 3.d; 4.c; 5.d; 6.d; 7.c; 8.a; 9.d; 10.a; 11.a; 12.c; 13.b; 
14.d; 15.a; 16.d; 17.a; 18.c; 19.a; 20.c; 21.a; 22.a; 23.a; 24.a; 
25.c; 26.a; 27.a; 28.d; 29.d; 30.c; 31.b; 32.a; 33.b; 34.d; 35.c; 
36.c; 37.d; 38.d; 39.c; 40.c; 41.c; 42.c; 43.d; 44.a; 45.d; 46.d; 
47.a; 48.b; 49.c; 50.b; 51.d; 52.b; 53.a; 54.d; 55.c; 56.d; 57.c; 
58.a; 59.c; 60.d; 61.c; 62.d; 63.d; 64.d; 65.c; 66.d; 67.d; 68.b; 
69.c; 70.d; 71.c; 72.d; 73.d; 74.e; 75.a; 76.b; 77.a; 78.a; 79.b; 
80.d; 81.c; 82.d 

File đính kèm:

  • pdfNgôn ngữ lập trình Java.pdf
Tài liệu liên quan