01/10/2018, 09:35

1 phương thức chỉ in ra thông báo thì nó trả về cái gì?

khi so sánh constructor với phương thức thì sách có ghi là phương thức phải trả về 1 giá trị,vậy mọi người cho em hỏi ví dụ như là 1 phương thức chỉ in ra thông báo thì nó trả về cái gì vậy ạ,

Mach Lua viết 11:45 ngày 01/10/2018

Trả về giá trị không có gì :v

HelloWorld viết 11:51 ngày 01/10/2018

Khái niệm hàm, thủ tục ở ngôn ngữ c/c++ , java không phân biệt rõ ràng lắm, như 1 số ngôn ngữ pascal chẳng hạn.ngữ nghĩa cú pháp rất chặt.thủ tục là không trả về giá trị.còn hàm là phải trả về giá trị.bên c/c++ java thì trả về giá trị hay k trả về giá trị đều gọi là hàm, phương thức là 1 hàm nhưng được để trong 1 class và tác động lên 1 số dữ liệu, được coi như là hành động của đối tượng thuộc class đó. Nên việc phân biệt như trên là k cần thiết. Ng ta so sánh contructor với phương thức ý chỉ về cú pháp 1 cái có kiểu trả về, 1 cái k. Void là k trả về cái gì cả cũng là 1 kiểu trả về

Trần Hoàn viết 11:39 ngày 01/10/2018

Theo như mình thấy thì thủ tục trong Pascal chẳng khác gì các phương thức void cả.
Constructor thì nó thuộc về OOP, thời mình còn học Pascal thì không học cái đó nên cũng không biết mặt mũi nó trong Pascal ra sao.

Constructor muốn trả về giá trị thì thêm toán tử new

HelloWorld viết 11:43 ngày 01/10/2018

Làm sao để trả về giá trị từ constructor bạn.mình chưa học java nhưng bên c++ mình chưa gặp hàm khởi tạo trả về giá trị

Trần Hoàn viết 11:47 ngày 01/10/2018

À, ý mình là trả về giá trị thì dùng trong phép toán ý, kiểu ahjhj A = new ahjhj(50); tương tự như int A = 5; thì new ahjhj(int Input) coi như một giá trị của kiểu dữ liệu ahjhj
Hoặc là cách viết hàm sau thì thể hiện rõ hơn một chút:

ahjhj TenHam(<tham số thứ nhất>)
{
	... //Code của bạn
	return new ahjhj(<tham số thứ 2>); // như vậy new ahjhj() là một giá trị của kiểu dữ liệu ahjhj
}
HelloWorld viết 11:42 ngày 01/10/2018

Cái này do toán tử new cấp phát vùng nhớ cho biến đã khai báo trước thôi, chứ bản chất constructor vẫn k trả về giá trị mà

Trần Hoàn viết 11:40 ngày 01/10/2018

Thì đúng là nếu chỉ có mỗi constructor thì đâu có trả về giá trị. Nhưng nếu gọi constructor ra thì code vẫn chạy và bộ nhớ vẫn được cấp phát và tạo ra giá trị rác do không có biến nào tương ứng để sử dụng.

...
new ahjhj(50);
...

Giống như các hàm trả về giá trị, có thể gọi nó ra mà không cần dùng nó làm toán hạng.

Bài liên quan
0