Enumeration, Autoboxing, Static Import and Annotations trong lập trình java
Nội dung bài học
Enumerations
Autoboxing
Static Import
Annotations
Enumeration
Enumeration là kiểu dữ liệu chứa một tập các hằng số.
Các giá trị của enumeration được mặc định là static và final.
Để 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ê.
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: //
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 trong lập trình java
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 thủy nguyên dữ liệu kiểu thành đối tượng kiểu.
Thủy nguyên dữ liệu kiểu không phải là object (đối tượng), 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ó đối tượng thì mới được truyền theo phương thức tham chiếu kiểu.
Tất cả các class bao bọc (class wrapper) đều được kế thừa từ class abstract Number.
Các phương thức trả về kiểu dữ liệu nguyên thủy của các class wrapper là:
byte: byteValue( )
double: doubleValue()
float: floatValue( )
int: intValue( )
long: longValue( )
short: shortValue( )
Các phương thức trả về một đối tượng là instance của class wrapper:
Integer: Integer.valueOf(int)
Byte: Byte.valueOf(byte)
Short: Short.valueOf(short)
Float: Float.valueOf(float)
Double: Double.valueOf(double)
Long: Long.valueOf(long)
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();
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;
Ưu điểm của việc sử dụng class Number:
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.
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).
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.
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)
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 mô tả một class
@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 phương thức
@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 class và field
Ý nghĩa anonation trong lập trình java
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();
}
}
class Child extends Parent{
@Override
public void hi(){ System.out.println("Hello !");
}
}
Tổng kết bài học
Enumerations
Autoboxing
Static Import
Annotations
Xem tiếp: Lập trình java - Bài 14: Genegic
Post a Comment