So sánh 2 cách khai bào mảng trong java?

Anh/chị cho em hỏi là 2 cách khai báo này có gì khác nhau ạ? Em cảm ơn!

  1. private CD [ ] ds = new CD[n]; // Khai báo mảng tên là ds kiểu dữ liệu CD có n phần tử
private CD [ ] ds;          // Khai báo mảng tên ds kiểu dũ liệu CD
public DanhSachCD(int n) {  
    	            ds = new CD[n];                 //Cho mảng có n phần tử đặt trong Contructor
           }

Hi Phan Vũ.

  1. n bằng mấy ?
  2. Cách này nên dùng.
1 Like

Tức cách 1 là biết trước số phần tử mảng còn cách 2 thì chưa biết phải k ạ?

Chào pcnhatvu !

  1. Bạn đang khởi tạo đối tượng là 1 mảng.
  2. Bạn đang khởi tạo class có thuộc tính là mảng.
    Mảng là 1 có vùng nhớ có cùng kiểu dữ liệu, các phần tử liền kề nhau, đặc biệt có số lượng phần tử xác định.
    Bạn nên tìm hiều lại về mảng và khởi tạo.

Cách 1: Bạn khai báo và khởi tạo một mảng một cách bình thường, đây chỉ là một câu lệnh.
Cách 2: Bạn khai báo một lớp, trong đó có một hàm khởi tạo dùng để tạo số lượng phần tử cho mảng. Cách này dùng cho việc xây dựng lớp, còn hàm khởi tạo đó dùng cho việc khởi tạo đối tượng.
Tùy tình huống mà sử dụng, nếu chỉ viết một chương trình đơn giản trong hàm main, bạn dùng cách 1 cho dễ. Còn nếu viết nhiều lớp thì bạn dùng cách 2

1 Like

Nếu xây dựng trong class, bạn nên khởi tạo bất kỳ thuộc tính nào trong constructor (hàm tạo), và có thể khởi tạo lại trong các phương thức khác. Không khởi tạo khi khai báo.

Type[] A;//Khai báo
A = new Type[n];//Khởi tạo
Type[] A = new Type[n];//Vừa khai báo vừa khởi tạo
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?