Tuyên bố không khai báo "giá trị" cho một biến; đó là khai báo loại của biến.
Nhiệm vụ chỉ đơn giản là lưu trữ giá trị vào một biến.
Việc khởi tạo là gán giá trị cho biến số tại thời điểm khai báo.
Các định nghĩa này cũng áp dụng cho các trường.
int i; // simple declaration
i = 42 // simple assignment
int[] arr = { 1, 2, 3 };
// declaration with initialization, allows special shorthand syntax for arrays
arr = { 4, 5, 6 }; // doesn't compile, special initializer syntax invalid here
arr = new int[] { 4, 5, 6 }; // simple assignment, compiles fine
Tuy nhiên, nó nên được đề cập rằng "khởi tạo" cũng có một nét thoải mái hơn về "sự phân công đầu tiên cho một biến", bất kể nơi nó xảy ra.
int i; // local variable declaration
if (something) i = 42;
System.out.println(i);
// compile time error: The local variable i may not have been initialized
này, tuy nhiên, biên dịch:
int i; // the following also compiles if i were declared final
if (something) i = 42;
else i = 666;
System.out.println(i);
Đây i
có thể được "khởi tạo" từ hai địa điểm có thể, bởi nhiệm vụ đơn giản. Do đó, nếu i
là một mảng, bạn không thể sử dụng cú pháp viết tắt của trình khởi tạo mảng đặc biệt với cấu trúc này.
Vì vậy, về cơ bản "khởi tạo" có hai nghĩa có thể, tùy thuộc vào bối cảnh:
- Ở dạng hẹp nhất, đó là khi chuyển nhượng được comboed với tuyên bố.
- Nó cho phép, trong số những thứ khác, đặc biệt mảng viết tắt initializer cú pháp
- Tổng quát hơn, đó là khi chuyển nhượng là lần đầu tiên thực hiện cho một biến.
- Nó cho phép, trong số những thứ khác, gán cho một biến số
final
ở nhiều nơi.
- Trình biên dịch sẽ làm hết sức mình để đảm bảo rằng chính xác là một trong những nhiệm vụ có thể xảy ra, do đó "khởi tạo" các
final
biến
Ngoài ra còn có lớp JVM ngữ cảnh và khởi tạo đối tượng, khởi tạo đối tượng OOP-context, v.v.
[Khai báo] (https://docs.oracle.com/javase/tutorial/java/javaOO/variables.html), [Khởi tạo] (https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html) và [Assignment] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html) đều được bao gồm trong The Java Tutorials Trail : [Học ngôn ngữ Java] (https://docs.oracle.com/javase/tutorial/java/TOC.html). – jaco0646