Tôi có thể xác định nhiều khối tĩnh không?Tôi có thể xác định nhiều khối tĩnh không?
Nếu có thể, tại sao tôi nên xác định các khối tĩnh muliple?
Tôi có thể xác định nhiều khối tĩnh không?Tôi có thể xác định nhiều khối tĩnh không?
Nếu có thể, tại sao tôi nên xác định các khối tĩnh muliple?
có, bạn cũng có thể tạo nhiều khối khởi tạo.
Điều này cho phép bạn đặt mã với nội dung được khởi tạo.
private static final Map<String, String> map;
static {
// complex code to initialise map
}
private static final DbConnection conn;
static {
// handle any exceptions and initialise conn
}
Bạn có thể xác định nhiều khối tĩnh. Nhưng tôi không nghĩ nó thực sự cần thiết. Nhưng nếu bạn định nghĩa, thì chúng sẽ được thực hiện tuần tự. tôi có nghĩa là các khối tĩnh được xác định đầu tiên sẽ thực hiện đầu tiên và khối tiếp theo sẽ thực hiện tiếp theo.
Có. Có thể định nghĩa nhiều khối tĩnh trong một lớp java. Nó giúp trong mô đun hóa mã khởi tạo của bạn, từ đó giúp hiểu rõ hơn và có thể đọc được bản chất của mã (Như peter đã đề cập).
public class TryInitialisation {
static int[] values = new int[10];
static{
System.out.println("running initialisation block");
for (int i=0; i< values.length; i++)
values[i] = (int) (100.0 * i);
}
static{
System.out.println("running initialisation block");
for (int i=0; i< values.length; i++)
values[i] = (int) (200.0 * i);
}
static{
System.out.println("running initialisation block");
for (int i=0; i< values.length; i++)
values[i] = (int) (300.0 * i);
}
void listValues(){
for (int i=0; i<values.length; i++)
System.out.println(" " + values[i]);
}
public static void main(String[] args) {
TryInitialisation example = new TryInitialisation();
example.listValues();
example = new TryInitialisation(); // referencing a new object of same type
example.listValues();
}
}
đây là kết quả:
running initialisation block
running initialisation block
running initialisation block
0
300
600
900
1200
1500
1800
2100
2400
2700
0
300
600
900
1200
1500
1800
2100
2400
2700
Đối với câu hỏi đầu tiên của bạn, những gì sẽ xảy ra khi bạn cố gắng? – beny23
nghe giống như một câu hỏi về bài tập về nhà ... công việc của bạn là chứng minh sự khắt khe khi đặt câu hỏi. – jamesTheProgrammer