01/10/2018, 09:28

Ai đó giúp mình về cặp từ khóa get và set với, nó khó hiểu quá!

Bữa mình có lướt qua phần đó rồi, ko biết sao lúc đó hiểu mà giờ tự nhiên thấy nó khó hiểu quá, ai giải thích cho mình 1 cách đơn giản nhất đc ko

Henry viết 11:41 ngày 01/10/2018

ví dụ muốn làm tư thế 69 thì setTuThe(69); còn nếu muốn biết mình đang ở tư thế gì thì getTuThe();

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

Get là get giá trị ra, còn set là set giá trị vào :v

Nguyễn Văn Cao viết 11:32 ngày 01/10/2018

Get có nghĩa là mình lấy “thông tin” vào cho biến
Còn set là mình gán giá trị cho biến dựa theo thông tin vừa nhận
VD: public int x
{
get { temp= value;}
set { return temp +2 ;}
}
nên khi mình dùng lệnh x=3 thì giá trị thực lúc này của x sẽ là 5 (3+2)
Ý nghĩa của get , set theo mình biết là đảm bảo tính đóng gói dữ liệu ( unbox)
và mình thấy nó cũng có ý nghĩa quan trọng trong events

Hung viết 11:34 ngày 01/10/2018

Historical Reason thôi.

Trước đây OOP thường quy định field luôn luôn khai báo là private. Bên ngoài muốn gọi các field của object thì phải thông qua method của object đó.
Tuy nhiên có 1 số trường hợp đơn giản quá, mà lập trình viên vẫn muốn giữ nguyên tắc khai báo private cho field nên method chỉ có trả về giá trị hay gán giá trị, lâu dần họ tách các method đó thành getter và setter, tương ứng. Design Pattern thường đi với object chỉ có setter và getter là ValueObject, POJO (Plain Old Java Object).

Đối với các object thuộc ValueObject thay vì bạn khai báo private cho các field, tạo setter và getter. Thay vào đó, bạn tạo object mà cho public các field. Hai cách hoàn toàn không khác nhau.
Trường hợp public luôn field là JavaScript, khi khởi tạo biến bằng object initializer, thường được dùng cho các trường hợp: option object cho các hàm config, response object khi thực hiện AJAX, json object thể hiện đối tượng JSON.

Hoàng Ngô viết 11:42 ngày 01/10/2018

Vậy mình chỉ sử dụng get hoặc set ko có đc ko hay get và set luôn phải đi chung với nhau ? Nếu đc thì làm cách nào ?

rogp10 viết 11:39 ngày 01/10/2018

Tùy class và thuộc tính, có thể không có get, không có set, hoặc không có cả hai.

Văn Dương viết 11:45 ngày 01/10/2018

Dùng riêng được…
Cái nào không cần thì không viết.

Tom Nguyen viết 11:40 ngày 01/10/2018

Bạn học lại OOP Encapsulation nhé

Bài liên quan
0