01/10/2018, 09:34
Programing language Java
mọi người cho em hỏi là tại sao khi khai báo thuộc tính trong java thì máy tự động gán giá trị cho nó vậy ạ,ví dụ như là số thì mặc định là 0,chuỗi thì mặc định là null,còn khi khai báo biến cục bộ thì nó lại không gán tự động vậy ạ
Bài liên quan
Vì hàm tạo thì cần khởi tạo nên hàm tạo mặc định sẽ phải khởi tạo giá trị mặc định của kiểu dữ liệu.
Ví dụ
Khi khởi tạo
abc123 ahjhj = new abc123();
sẽ đồng thời gọiahjhj.So = new int();
vàahjhj.Chuoi = new string();
Nói chính xác hơn thì khi bạn khai báo, chẳng có giá trị nào cả nếu bạn không khởi tạo.
Đây là quy tắc đối với các loại biến trong Java thôi bạn. Với các thuộc tính, biến lớp thì sẽ được gán giá trị mặc định còn biến cục bộ thì sẽ không. Còn nếu muốn hỏi tại sao thì phải gặp mấy ông viết ra Java.
Do yêu cầu tối ưu giữa tốc độ và sự an toàn thôi
a trần hoàn cho em hỏi là vậy còn biến cục bộ tại sao lại ko đc khởi tạo vậy ạ
Hàm tạo được xây dựng như vậy để đảm bảo tất cả mọi thứ đều được khởi tạo. Nếu bạn không dùng hàm khởi tạo thì các thuộc tính hay biến lớp cũng không được khởi tạo mặc định. Ví dụ:
Nếu bạn viết thế này, ok
Nếu bạn viết thế này, sẽ bị báo lỗi
Use of unassigned local variable 'a'
:vâng em hiểu rồi anh