Câu trả lời này là tuyệt vời và đúng.
Tôi muốn thêm rằng trong một số trường hợp, sự thỏa hiệp được thực hiện vì mục đích sử dụng.
Các đối tượng kiểu String có thể được khởi tạo mà không có sự kiện mới, khi String không phải là nguyên thủy:
String s = "Hello";
Chuỗi không phải là nguyên thủy, nên được khởi tạo như thế này:
String s = new String("Hello"); // this also works
Nhưng trình biên dịch cho phép tùy chọn OO ngắn hơn, ít hơn, bởi vì String là lớp được sử dụng rộng rãi nhất trong API.
Ngoài ra các mảng có thể được khởi tạo theo cách không OO:
int i[] = {1,2,3};
Thật kỳ lạ, một đối tượng là một thể hiện của một lớp hoặc một mảng . Mảng ý nghĩa là một loại lớp hoàn toàn riêng biệt.
Mảng có một length
lĩnh vực công cộng không phải là một hằng số. Ngoài ra không có tài liệu về mảng lớp là một ví dụ. (không nhầm lẫn với lớp Arrays hoặc java.reflect.Array).
int a = myArray.length; // not length()