Professional Documents
Culture Documents
if (true){// Khèi 4
int i; // (4) OK
int chuSo;// (5) Lçi v× chuSo ®· ®îc khai b¸o ë khèi ngoµi, khèi 1
} int k; // (6) Lçi v× k ®· ®îc khai b¸o ë khèi ngoµi, khèi 2
}
int k; // (6) OK
}
Ta có thể tổ chức các tệp nguồn ở một thư mục riêng và các
tệp lớp ở một thư mục riêng.
}
}
public class NhaKho{
public static void main(String args[]){
BongDen.ghiBong(); // Gọi hàm tĩnh theo tên lớp
BongDen den1 = new BongDen(); // Tạo ra bóng mới
System.out.println(“Gia tri cua bo dem: ” + BongDen.demBong);
BongDen den2 = new BongDen(); // Tạo ra bóng mới
den2.ghiBong();// Gọi hàm tĩnh theo tên đối tượng
System.out.println(“Gia tri cua bo dem: ” + den2.demBong);
}
}
Java hỗ trợ chương trình thực hiện đa luồng (multi threads). Tại mỗi thời
điểm, chỉ một luồng (tiến trình) được khai báo đồng bộ synchronized được
thực hiện trên đối tượng chỉ định.
Ví dụ: Minh họa họat động của các hàm synchronized
class Stack{
private Object[] stackArray;
private int topfOfStack;
synchronized public void push(Object elem){ // (1)
stackArray[++topOfStack] = elem;
}
synchronized public Object pop(){ // (2)
Object obj = stackArray[topOfStack];
stackArray[topOfStack] = null;
return obj;
}
// Những hàm khác
public Object peek(){ return stackArray[topOfStack];
}
}
Hai hàm push() và pop() trong lớp Stack là đồng bộ synchronized. Do vậy khi
có nhiều luồng muốn đẩy các phần tử vào Stack (hàm push()) hay muốn lấy ra
các phần tử (hàm pop()) thì chỉ một luồng được phép thực hiện, còn những
luồng khác sẽ phải chờ.
Requirement Capture and Analysis 22
Kiểm soát truy nhập các thành phần
Từ khoá Lớp Hàm thành phần Biến thành phần Biến cục bộ
Abstract - -
static - -
public -
protected -
private - -
final
synchronized - - -
native - - -
transient - - -
volatile - - -
Java.lang.Object
BongDen NhaKho
DenTuyp
SuperClass super2 = (SubClass) sub1; // Thu hẹp kiểu nên phải ép kiểu
}
List Node
Queue
duoi
Stack Object