Bối cảnh của tôi là C++ và trong C++ chúng ta có thể dễ dàng tạo mảng đối tượng bằng cú pháp đơn giản. className obj[n];
và cũng là nhà xây dựng sẽ gọi n
thời gian.Mảng đối tượng trong Java vs C++
Nhưng khi tôi cố gắng tạo mảng đối tượng trong java className[] obj=new className[n];
không có lệnh gọi hàm tạo nào. Sau khi tìm kiếm tôi tìm thấy câu trả lời của câu hỏi này trên stackoverflow rằng nó chỉ tạo ra một tài liệu tham khảo n
có thể trỏ đến n
đối tượng và tôi cần tạo lại đối tượng cho từng tham chiếu như thế nào. obj[0]=new className();
Bây giờ tôi chỉ muốn hỏi tại sao java làm điều này? là có bất kỳ lý do ngay cả C + + cho phép nhưng java không cho phép tạo ra các mảng của các đối tượng trong cùng một cách? Tôi đã tìm kiếm điều này nhưng vẫn không nhận được câu trả lời chính xác.
thì tại sao chúng tôi chọn ngôn ngữ khác nhau có lý do rằng mỗi ngôn ngữ có sự khác biệt về hiệu suất, bảo mật vv và ngôn ngữ của mỗi nhà thiết kế chọn cú pháp/logic cho một lý do Xin lỗi vì tiếng anh nghèo -_- –
Lưu ý rằng giải pháp 'Arrays.fill' sẽ tạo một đối tượng và gán nó cho mọi phần tử mảng. Kết quả như vậy hiếm khi được mong đợi.Thông thường, bạn cần các đối tượng riêng biệt cho mọi phần tử mảng –
cảm ơn @TagirValeev đã sửa đổi một swer. –