01/10/2018, 11:46
Hỏi về đối tượng trong Java
mn cho mình hỏi chút : mình có đọc sách thấy có đoạn code:
FileInputStream fin = null;
FileInputStream là một class , vậy “fin” là đối tượng ư, sao lại khai báo đổi tượng kiểu này vậy?
Bài liên quan
fin trog trường hợp này là 1 biến nhưng chưa đc gán giá trị nào cả
nhưng sao biến lại khai báo kiểu này nhỉ? FileInputStream là một class mà, thấy lạ
À, thì có thể trong quá trình gán giá trị vào biến cần các bước kiểm tra, chọn lọc nên phải khai báo biến trước. Còn =null hay không ghi gì phía sau thì compiler tự hiểu là giá trị null. Ghi = null là để code thêm rõ nghĩa
Hơi khó hiểu nhỉ, vì có đoạn code fin.read() nữa nên mình nghỉ chỉ có object mới dùng kiểu ý chứ
Uk, object mới có thể làm v. Bạn chưa hiểu gì mình chưa rõ
mình mới hk chưa lâu, chỉ thấy khai báo object là : classname object = new classname();
nên thấy lạ khi object lại được khai báo kiểu này?
À, bên phía tay trái dấu = là biến. Ta dùng biến để truy cập vào object. Phía bên phải là object thật sự. Bạn có thể coi biến là 1 chiếc hộp còn object là thứ đựng trong hộp.
Đoạn code ở trên : tạo 1 object mới với từ khóa new và bỏ vào hộp dùng để đựng object của classname.
Việc gán cho một chiếc hộp = null có nghĩa là nó chưa đựng object nào cả. Chỉ là cái hộp rỗng
vậy ak, thế mình hiểu rồi , cảm ơn bạn nhiều nhé
Bình thường một đối tượng được khai báo kiểu này
Đối tượng này được khởi tạo đầy đủ, không bị dính
NullPointerException
nếu có truy cập vào đối tượngcòn
Đối tượng này khai báo không có giá trị nào cả (
null
) nên dễ dínhNullPointerException
nếu truy cập vào đối tượngVậy
NullPointerException
nó xẩy ra như thế nào?VD nhé
Cảm ơn bạn nhiều nhé !
[details=Gán]Cú pháp của phép gán được thực hiện như sau:
trong đó A là biến, B là đối tượng[/details]
[details=Khai báo]Cú pháp của phép khai báo được thực hiện như sau:
trong đó Type là lớp, A là đối tượng[/details][details=Khởi tạo]
Phép khởi tạo là một loại phép gán:
Như vậy Java hoàn toàn không có primitive phải không?
@Phan Bá Hải
Bạn lấy ví dụ sai rồi nhé. Chỉ kiểu dữ liệu tham chiếu mới có thể có giá trị null
Còn kiểu int ko thể null mà mặc định là 0
Trong Java, int ko được gán giá trị mặc định. Cũng giống như Visual C# hay Visual C++, IDE sẽ báo lỗi ngay nếu bạn sử dụng biến mà không khởi tạo.