Bài giảng Lập trình Java - Bài 5: Enumeration, Autoboxing, Static Import và Annotations

Enumeration

 Phương thức ordinal()

Cho biết vị trí của hằng số trong enum.

Vị trí đầu tiên được bắt đầu là 0.

 Phương thức compareTo(contst)

Cho biết hằng số hiện tại là đứng trước hay đứng

sau hay đúng là vị trí của một hằng số cho trước.

pdf 30 trang yennguyen 3780
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình Java - Bài 5: Enumeration, Autoboxing, Static Import và Annotations", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình Java - Bài 5: Enumeration, Autoboxing, Static Import và Annotations

Bài giảng Lập trình Java - Bài 5: Enumeration, Autoboxing, Static Import và Annotations
LẬP TRÌNH JAVA 
Bài 5: Enumeration, 
Autoboxing, Static Import và 
Annotations. 
Điểm danh 
 Khái niệm multitasking và multithreading 
 Khái niệm ‘thread’ – luồng 
 Thread hiện thời 
 Các trạng thái của thread 
 Khởi tạo thread 
 Quản lý thread 
Nhắc lại bài trước 
 Enumerations 
 Autoboxing 
 Static Import 
 Annotations 
Nội dung bài học 
 Các giá trị của 
enumeration được 
mặc định là static và 
final. 
Enumeration là kiểu 
dữ liệu chứa một tập 
các hằng số. 
Enumeration 
Enumeration 
Để tạo enumeration, sử dụng từ khóa enum 
enum Transport{ 
 CAR, TRUCK, AIRPLANE, TRAIN, BOAT 
} 
CAR, TRUCK,  được gọi là các hằng số liệt kê. 
Enumeration 
 Khai báo: 
 Transport tp; 
 Trong phép gán 
 tp = Transport.CAR; 
 Trong phép so sánh 
 if (tp==Transport.TRAIN) 
 Trong câu lệnh switch 
 switch(t){ 
 case CAR: // 
 case TRUCK: // 
Enumeration 
 Phương thức values() 
 Lấy ra một mảng các hằng số 
 Transport tps[] = Transport.values(); 
 Phương thức valueOf(const) 
 Lấy ra hằng số có giá trị là const 
 tp = Transport.valueOf("TRAIN"); 
Enumeration 
Thuộc tính 
Phương thức 
khởi tạo 
Phương 
thức get 
Enumeration 
 Phương thức ordinal() 
Cho biết vị trí của hằng số trong enum. 
Vị trí đầu tiên được bắt đầu là 0. 
 Phương thức compareTo(contst) 
Cho biết hằng số hiện tại là đứng trước hay đứng 
sau hay đúng là vị trí của một hằng số cho trước. 
Autoboxing 
 Autoboxing: Tự động chuyển đổi các kiểu dữ 
liệu nguyên thủy thành kiểu đối tượng. 
 Các kiểu dữ liệu nguyên thủy không phải là đối 
tượng (object) nên có một số hạn chế trong khi 
thao tác và làm giảm hiệu suất làm việc. 
 Chỉ có object thì mới được truyền theo kiểu 
tham chiếu vào method. 
Autoboxing 
Tất cả các class bao bọc (class wrapper) đều được 
kế thừa từ class abstract Number. 
Number 
Byte Short Integer Long Float Double 
Autoboxing 
Mỗi một kiểu 
dữ liệu nguyên 
thủy đều có một 
class wrapper 
tương ứng. 
Primitive Types Type Wrappers 
byte Byte 
short Short 
int Int 
long Long 
float Float 
double Double 
Autoboxing 
 byte byteValue( ) 
 double doubleValue() 
 float floatValue( ) 
 int intValue( ) 
 long longValue( ) 
 short shortValue( ) 
Các phương thức trả về kiểu dữ liệu nguyên 
thủy của các class wrapper là: 
Autoboxing 
 Integer Integer.valueOf(int) 
 Byte Byte.valueOf(byte) 
 Short Short.valueOf(short) 
 Float Float.valueOf(float) 
 Double Double.valueOf(double) 
 Long Long.valueOf(long) 
Các phương thức trả về một đối tượng là 
instance của class wrapper: 
Autoboxing 
 Tạo đối tượng Integer với giá trị là 100: 
 Integer iobj = new Integer(100); 
 Tạo một biến int với giá trị lấy ra từ đối 
 tượng Integer ở trên: 
 int i = iobj.intValue(); 
Autoboxing 
 Tự động chuyển kiểu trong phép gán: 
 Integer iobj = 100; 
 int i = iobj; 
 Tự động chuyển kiểu trong biểu thức 
 iobj++; 
 iobj += 10; 
Autoboxing 
Ưu điểm của việc sử dụng class Number: 
Có nhiều phương thức chuyển đổi 
giá trị kiểu nguyên thủy  kiểu đối 
tượng và chuyển đổi từ dạng string 
sang các dạng số (decimal, octal, 
hexadecimal, binary). 
Làm tham số cho các 
phương thức mà phương 
thức đó bắt buộc tham số 
truyền vào phải là kiểu đối 
tượng. 
Autoboxing 
List li = new ArrayList(); 
for (int i = 1; i < 50; i += 2) 
 li.add(i); Autoboxing 
public static int sumEven(List li) { 
 int sum = 0; 
 for (Integer n: li) 
 if (n % 2 == 0) Unboxing
 sum = sum + n; 
 return sum; 
} 
sum = sum + 
n.intValue(); 
li.add( 
Integer.valueOf(i)); 
Static Import 
 Java sử dụng từ khóa import khi muốn sử 
dụng các class ở package khác. 
 Java 5 cũng đã bổ sung từ khóa ‘static’ 
cùng với từ khóa import để thuận tiện cho 
việc sử dụng các phương thức static có 
trong các class mà không cần phải viết 
tên class. 
Static Import 
 Gói java.lang chứa class Math, trong class 
này có các phương thức tính toán số học 
như: căn bậc 2, tính số mũ, tính e mũ  
 Các phương thức trên đều là static 
 Thông thường, muốn tính căn bậc 2 một 
số ta viết: 
x = Math.sqrt(1000) 
Static Import 
 Sử dụng 
 import static java.lang.Math.sqrt; 
 thì, khi dùng chỉ cần viết: 
 x = sqrt(1000); 
 Hoặc 
import static java.lang.Math.*; 
import static java.lang.System.out; 
thì: 
 y = pow(10,2); 
 out.println(“Hello there !”); 
Annotation 
 Annotation là một dạng metadata – 
siêu dữ liệu được dùng để mô tả một 
đối tượng nào đó (như class, method). 
 Mô tả dữ liệu là một tập giá trị chứa 
những thông tin gắn gọn, cơ bản mô tả 
về đối tượng đó. 
Annotation 
@interface ClassTest { 
 String value(); 
 String owner(); 
} 
@ClassTest(value = "Class scope", owner = “Anna") 
public class AnnocationForClass { 
 public static void main(String[] args) { 
 System.out.println("Test annotation !"); 
 } 
} 
Annotation mô tả một class 
Annotation 
@interface MethodTest { 
 String value(); 
 String owner(); 
} 
... 
@MethodTest(value = "Method scope", owner =“Anna”) 
 public void display() { 
 System.out.println(“Annotation method testing"); 
 } 
Annotation mô tả một phương thức 
Annotation 
A
nn
ot
at
io
n 
m
ô 
tả
 m
ộ
t 
cl
as
s 
và
 f
ie
ld
Annotation 
Annotation Ý nghĩa 
@Deprecated 
Method được đánh dấu không còn 
được sử dụng nữa, nó tồn tại bởi vì tính 
tương thích. 
@Override 
Thông báo cho trình biên dịch biết 
phương thức bên dưới là phương thức 
được viết lại khi kế thừa từ lớp cha. 
@SuppressWarnings Thông báo cho trình biên dịch tắt các 
cảnh báo. 
Annotation 
public class example { 
 @Deprecated 
 public void showSomething() { 
 System.out.println("Method has been 
 depricated'"); 
 } 
 public static void main(String[] args) { 
 example obj = new example (); 
 obj.showSomething(); 
 } 
} 
Annotation 
class Child extends Parent{ 
 @Override 
 public void hi(){ 
 System.out.println("Hello !"); 
 } 
} 
 Enumerations 
 Autoboxing 
 Static Import 
 Annotations 
Tổng kết bài học 

File đính kèm:

  • pdfbai_giang_lap_trinh_java_bai_5_enumeration_autoboxing_static.pdf