Page 1
Tham khảo nhanh về Java goupee.vn Được tạo ra Khi phương thức Khi một đối tượng Khi chương trình So sánh các giá trị nguyên thủy goupee.com Nguồn: Internet | Dịch: KhoaNV khi nào? được sử dụng. của lớp được tạo được nạp. mới. Chú thích (Comment) Được lưu trữ ở Stack Heap Vùng nhớ "Bền Kết quả của các toán tử so sánh là boolean (true hoặc false). đâu? vững" = =, !=, <, <=, >, >= // Mọi nội dung trong dòng này sẽ bị bỏ qua. Đây là loại chú thích được sử dụng phổ biến. /* Các toán tử Lô-gíc Mọi thứ (có thể gồm nhiều dòng) trong khối này sẽ bị bỏ qua */. Khi nào được Khi phương thức trả Khi không còn Khi chương trình Không phổ biến. Sử dụng để chú thích bên ngoài mã nguồn. giải phóng? về kết quả. tham chiếu nào kết thúc. /** Được sử dụng để giúp tự động tạo ra javadoc dưới dạng HTML. */ dành cho đối tượng. Định danh\Đặt tên Các toán hạng phải có kiểu là boolean. Kết quả là boolean. b && c “Và”. Kết quả là true nếu cả hai toán hạng đều là true, trái lại sẽ là false. Đánh giá đoản mạch. VD (false && anything) cho kết quả false. b || c “Hoặc”. Kết quả là true nếu bất cứ toán hạng nào true, trái lại sẽ là false. Các kiểu dữ liệu nguyên thủy Đánh giá đoản mạch. VD(true || anything) cho kết quả là true. • Các định danh phải bắt đầu với ký tự bảng chữ cái Alphabetic (a-z hoặc A-Z), và các ký tự tiếp !b “Phủ định”. Kết quả là true nếu b là false, là false nếu b là true. theo là chữ cái, chữ số (0-9), hoặc dấu gạch dưới (_). Không sử dụng ký tự ‘$’. • Các từ tiếp theo trong định danh (nếu có) nên bắt đầu với ký tự chữ cái in hoa. • Các toán tử Gán Không sử dụng các từ khóa của Java. • Tên lớp và giao tiếp (interface) nên bắt đầu với ký tự chữ cái in hoa boolean (với chỉ hai giá trị true/false) Các kiểu số học: byte, short, char, int, long, float, double (Graphics, String, Car, Motorbike, ... ). Biểu thức = Vế trái bắt buộc phải là một định danh\biến. • Tên biến và phương thức nên bắt đầu với ký tự chữ cái in thường += -= *= ... (repaint(), x, ...). Tất cả các toán tử hai ngôi (ngoại trừ && và || ) đều có thể kết hợp với toán tử gán. VD: a += 1 tương tự như a = a + 1 • Các hằng giá trị nên sử dụng toàn bộ chữ in hoa và dùng dấu gạch dưới (_) để phân cách các từ Ép kiểu (BoxLayout.X_AXIS, Math.PI, ...). Cặp ngoặc tròn () có 3 tác dụng: Biến cục bộ, Biến đối tượng, Biến tĩnh 1. Nhóm để điều khiển thứ tự tính toán, hoặc để biểu thức rõ ràng. VD: (a + b) * (c - d) 2. Đặt sau tên phương thức để chứa các tham số. VD: x = sum(a, b); 3. Chứa tên kiểu dữ liệu khi tiến hành ép kiểu. VD: i = (int)x; Ép kiểu được sử dụng khi “thu hẹp” dải giá trị nào đó. Phạm vi từ hẹp nhất đến rộng nhất của kiểu dữ liệu nguyên thủy là: byte, short, char, int, long, float, double. Các đối tượng có thể được gán mà Độ ưu tiên của các toán tử không cần ép kiểu lên cấp cao hơn trong cây phân cấp kế thừa. Ép kiểu chỉ cần khi ép xuống cấp thấp Biến có thể là biến cục bộ (local), biến đối tượng (instance),hoặc biến tĩnh (static hay còn gọi là biến hơn trong cây phân cấp (ép xuống). lớp). Các tham số được coi là những biến cục bộ, chúng được gán giá trị khi phương thức được triệu (t)x Ép kiểu của x sang kiểu t gọi. Toán tử Đối tượng Biến cục bộ Biến đối tượng Biến tĩnh 1. Toán tử có độ ưu tiên cao hơn sẽ được Chỉ cần nhớ thứ tự sau Nơi khai báo? Trong phương thức. Trong lớp, nhưng Trong lớp và sử thực hiện trước. 1. các toán tử một ngôi không trong dụng thêm từ 2. Thứ tự sẽ từ trái qua phải nếu các toán 2. * / % phương thức. khóa static. tử có cùng độ ưu tiên, ngoại trừ: một 3. + - co.f Thành phần. Thuộc tính hoặc phương thức f của đối tượng hoặc lớp co. x instanceof co Cho kết ngôi, gán, điều kiện. 4. các toán tử so sánh quả true nếu đối tượng tham chiếu bởi x là thể hiện của lớp co. s + t Toán tử cộng chuỗi nếu một 5. && || hoặc cả hai toán tử có kiểu là String. x == y Cho kết quả là true nếu cả x và y cùng tham chiếu tới Giá trị khởi tạo Phải được gán giá trị Kiểu số: 0 Kiểu số: 0 6. = các toán tử gán một đối tượng, trái lại sẽ là false (thậm chí cả khi giá trị của các đối tượng này giống nhau!). trị trước khi sử dụng Đối tượng: null Đối tượng: null Sử dụng cặp ( ) cho tất cả những toán tử x != y Phủ định của toán tử trên. và trình biên dịch sẽ Boolean: false Boolean: false Lưu ý: So sánh các đối tượng sử dụng phương thức .equals() hoặc .compareTo() x = y báo lỗi nếu không làm Hoặc được khởi Hoặc được khởi Sao chép tham chiếu đối tượng chứ không phải sao chép đối tượng. việc này. tạo giá trị trong tạo trong khối hàm khởi tạo tĩnh. Các cấu trúc điều khiển tạo. Phạm vi sử Chỉ trong phương private: Chỉ các Giống với Biến Các toán tử Số học dụng thức chứa nó. phương thức của đối tượng. Không có khả năng lớp. (Mặc định): Tất hiển thị có thể được cả các phương thức Lệnh if khai báo. thuộc các lớp cùng // lệnh if với mệnh đề true gói if(biểu_thức){ (package). Kết quả của các toán tử Số học là double nếu có một toán hạng là double, trái lại là float nếu có một Các lệnh // thực hiện nếu biểu thức cho kết quả true } public: Bất cứ đâu toán hạng là float, trái lại là long nếu có một toán hạng là long, trái lại là int. đều có thể truy // lệnh if với mệnh đề true và false i++ Cộng thêm 1 cho i if(biểu_thức){ xuất. protected: Lớp i-- Bớt 1 từ i Các lệnh // thực hiện nếu biểu thức cho kết quả true chứa nó và tất cả n + m Phép cộng. VD 7 + 5 bằng 12, 3 + 0.14 bằng 3.14 }else{ các lớp con n - m Phép trừ Các lệnh // thực hiện nếu biểu thức cho kết quả false } (subclass). n * m Phép nhân. VD 3 * 6 bằng 18 // Lệnh if với nhiều điều kiện kiểm tra song song n / m Phép chia. VD 3.0 / 2 bằng 1.5, 3 / 2 bfb.com/goupee.vnằng 1 if(biểu_thức_1){ n % m Phép chia lấy phần dư (Mod). VD 7 % 3 bằng 1 Các lệnh // thực hiện nếu biểu thức 1 là true
Page 2
}else if(biểu_thức_2){ . . . // các lệnh để xử lý khi có ngoại lệ s.substring(i, j) trả về một chuỗi con của s tình từ vị trí i đến ngay trước vị trí j. goupee.vnCác lệnh // thực hiện nếu biểu thức 2 là true } goupee.com }else if(biểu_thức_3){ Tạo mới một chuỗi từ chuỗi ban đầu Các lệnh // thực hiện nếu biểu thức 3 là true throw }else{ throw đối_tượng_ngoại_lệ; sl= s.toLowerCase() tạo một chuỗi mới ở dạng in hoa toàn bộ Các lệnh // thực hiện khi các biểu thức trên là false } sl= s.toUpperCase() tạo một chuỗi mới ở dạng in thường toàn bộ Sử dụng nhiều mệnh đề catch và mệnh đề finally sl= s.trim() cắt bỏ các ký tự trắng ở đầu và cuối chuỗi Lệnh switch Thực hiện mệnh đề catch đầu tiên tương ứng với ngoại lệ được chỉ ra bởi lớp ngoại lệ hoặc các lớp sl= s.replace(cs2, cs3) thay thế tất cả các chuỗi con cs2 trong s bằng chuỗi cs3 switch cho phép chọn một trường hợp nào đó phụ thuộc vào giá trị nhận được (thường là số ngoại lệ cha. Mệnh đề finally luôn được thực hiện (bất kể là có hay không có ngoại lệ xảy ra) vì vậy StringBuilder nguyên) từ biến hoặc biểu thức. các tài nguyên sử dụng trước đó có thể được giải phóng (ví dụ, đóng tệp tin): try{ switch(biểu_thức){ . . . // các lệnh có khả năng xảy ra ngoại lệ }catch(kiểu_ngoại_lệ x){ case c1: . . . // cách lệnh xử lý ngoại lệ Các lệnh // thực hiện khi biểu thức = c1 } catch (kiểu_ngoại_lệ x) { break; . . . // cách lệnh xử lý ngoại lệ case c2: }finally{ Khả năng sửa đối nhanh hơn so với String, sử dụng bộ nhớ và CPU hiệu quả hơn. sb Các lệnh // thực hiện khi biểu thức = c2 // các lệnh luôn luôn được thực hiện = new StringBuilder() Tạo một StringBuilder rỗng break; // bất kể có xảy ra ngoại lệ hay không case c3: . . . sb = new StringBuilder(s) Tạo một StringBuilder từ chuỗi s. case c4: } sb = sb.append(x) Thêm x (bất kể kiểu dữ liệu)vào cuối sb. case c5: // các trường hợp cùng chung xử lý. sb = sb.insert(offset, x) Chèn x (bất kể kiểu dữ liệu) vào sb tại vị trí offset. sb = Chuỗi // thực hiện khi biểu thức = c3, c4 hoặc c5 sb.setCharAt(index, c) Thay thế ký tự tại vị trí index bằng ký tự c. sb = Các lệnh sb.deleteCharAt(i) Xóa ký tự tại vị trí i. break; sb = sb.delete(beg, end) Xóa các ký tự từ vị trí beg tới vị trí end. sb default: = sb.reverse() Đảo ngược nội dung. Các lệnh // thực hiện khi mà biểu thức không bằng giá trị nào ở trên sb = sb.replace(beg, end, s) Thay thế các ký tự từ vị trí beg tới vị trí end bằng s. Có } Cộng chuỗi các phương thức indexOf, lastlndexOf, charAt, equals, substring giống như String! Toán tử + cho phép nối hai chuỗi lại với nhau. Nếu một toán hạng là String, toán hạng còn lại sẽ được Mảng Lệnh lặp while chuyển đổi sang kiểu String và sau đó được cộng với nhau. Đây thường là cách dùng để chuyển đổi các số sang String. while(biểu_thức){ Nếu một đối tượng không phải là String khi được cộng với String phương thức toString() của nó sẽ // thực hiện lặp lại các mệnh lệnh cho tới khi được triệu gọi. Một tiện ích dành cho việc ra soát bug đó là viết trong các lớp của bạn phương thức // biểu thức cho kết quả false toString(). } Sửdụng để thao tác với nhiều phần tửdữliệu, có thể là dữ liệu nguyên thủy hoặc các đối tượng. Tất cả các phần tử phải cũng kiểu dữ liệu.Mảng không có khả năng mở rộng! Lệnh lặp for Ví dụ: for(Khởi tạo biến đếm; điều kiện lặp; thay đối biến đếm) { // int [] scores; // Khai báo scores là mảng các số nguyên. scores = new thực hiện lặp lại các mệnh lệnh cho tới khi int[12]; // Khởi tạo vùng nhớ cho mảng với 12 phần tử. int[] scores = // biểu thức điều kiện lặp cho kết quả false new int[12]; // Kết hợp cả khai báo và khởi tạo. } Khởi tạo một mảng while và for có thể thay thế cho nhau: Nếu các phần tử của mảng không được gán giá trị khởi tạo, chúng sẽ được khởi tạo là 0 với các mảng số, null với các mảng tham chiếu đối tượng, và false với các mảng boolean. Tạo mảng vào khởi tạo giá trị cho phần tử mảng với một dòng lệnh: String[] names = {"Mickey", "Minnie", "Donald"}; Hoặc có thể tách thành nhiều dòng lệnh: String[] names = new String[3]; names[0] = "Mickey"; names[1] = "Minnie"; i = s.length() cho phép để xác định độ dài của chuỗi s. names[2] = "Donald"; Truy cập phần tử mảng Những điều khiển lặp khác So sánh chuỗi (sử dụng thay thế cho toán tử == và !=) scores[5] = 86; // Gán cho phần tử có chỉ số là 5 giá trị 86. Tất cả các lệnh lặp đều có thể được đặt nhãn, vì vậy có thể dùng lệnh break và continue cho bất cứ cấp scores[i]++; // Tăng một đơn vị cho phần tử có chỉ số là i. độ lồng nhau nào của vòng lặp. i = s.compareTo(t) được sử dụng để so sánh chuỗi s với t. break; //thoát khỏi vòng lặp hoặc lệnh switch gần nhất chứa nó trả về <0 nếu s < t, 0 nếu s == t, >0 nếu s > t Duyệt lần lượt qua các phần tử mảng break label; // thoát khỏi vòng lặp được đặt nhãn (label) i = s.compareToIgnoreCase(t) tương tự như trên nhưng không phân biệt ký tự in hoa, in continue; //tiến hành lượt lặp tiếp theo thường. continue label; //tiến hành lượt lặp tiếp theo với vòng lặp được Kích thước của một mảng có thể được xác định bằng cách sử dụng thuộc tính length của chúng, VD, đặt nhãn (label). b = s.equals(t) cho kết quả true nếu hai chuỗi có cùng giá trị. scores.length Nhãn được đặt trước vòng lặp cùng dấu hai chấm, ví dụ: b = s.equalsIgnoreCase(t) tương tự như trên nhưng không phân biệt ký tự in hoa, in outer: ử ụ ặ ử ụ ặ thường ẩ for (. . .) { b = s.startsWith(t) cho kết quả true nếu chuỗi s chứa chuỗi t ở đầu b = ở ạ ị . . . ở ạ ị ả ả continue outer; s.endsWith(t) cho kết quả true nếu chuỗi s chứa chuỗi t ở cuối } Tìm kiếm trong chuỗi (tất cả các phương thức "indexOf" đều trả về -1 nếu không tìm thấy kết Ngoại lệ (Exception) quả) i = s.indexOf(t) trả về vị trí đầu tiên xuất hiện chuỗi t trong chuỗi s. i = s.indexOf(t, i) trả về vị đầu tiên trí tính từ i xuất hiện chuỗi t trong chuỗi s. i = s.lastlndexOf(t) trả về vị trí cuối cùng xuất hiện chuỗi t trong chuỗi s. i = s.lastIndexOf(t, i) trả về vị trí cuối cùng tính từ i xuất hiện chuỗi t trong chuỗi s. Sử dụng try...catch cho các ngoại lệ Lấy một phần của chuỗi try{ Mảng hai chiều . . . // các lệnh có thể dẫn tới ngoại lệ c = s.charAt(i) trả về ký tựfb.com/goupee.vntại vị trí i trong chuỗi s. }catch(Kiểu_ngoại_lệ x){ sl= s.substring(i) trả về một chuỗi con của chuỗi s tính từ vị trí i đến cuối. sl=
Page 3
Hầu hết được xử lý với vòng lặp for lồng nhau. Ví dụ: goupee.vnstatic final int ROWS = 2; static goupee.com final int COLS = 4; … int[][] a2 = new int[ROWS][COLS]; // ... Hiển thị các phần tử mảng trong khung hình chữ nhật for(int i =0; i < ROWS; i++){ for(int j = 0; j < COLS; j++){ Systern.out.print(" " + a2[i][j]); } Systern.out.println(""); } Scanner Tác dụng chính của java.util.Scanner là giúp đọc các giá trị từ System.in hoặc từ tệp tin. sc = new Scanner(System.in); Sử dụng để đọc dữ liệu từ System.in sc = new Scanner(s); Sử dụng để đọc giá trị từ chuỗi s. Các phương thức lấy dữ liệu phổ biến nhất s = sc.next() Trả về "token" tiếp theo, nhiều hơn hoặc ít là một "word". s = sc.nextLine() Trả về toàn bộ một dòng dữ liệu dưới dạng một chuỗi. x = sc.nextXYZ() Trả về giá trị có kiểu là XYZ: Int, Double, Boolean, Byte, Float, Short b = sc.hasNext() Trả về true nếu còn “token” để đọc. b = sc.hasNextLine() Trả về true nếu còn dòng dữ liệu để đọc. b = sc.hasNextXYZ() Trả về true nếu loại còn dữ liệu XYZ để đọc. Nhập\Xuất tệp tin Văn bản Ví dụ: ặ ớ ẫ ữ ệ ừ ệ đầ ế ệ Đ ộ đọ ệ Đ để ỏ đố ớ ệ Đ để ỏ đố ớ ệ đẩ ộ ữ ệ ố ổ đĩ fb.com/goupee.vn
Commentaires (0)
Aucun commentaire pour le moment. Soyez le premier !