30/09/2018, 17:23
Class có phải là 1 kiểu dữ liệu và Public, Private và Protected là gì?
Xin chào mọi người
Mình là tay mơ đang học về C++, trong series bài học C++ của anh Đạt (daynhauhoc) có bài nói về class, mình có xem nhưng vẫn thấy mơ hồ lắm, mong mọi người giúp :
- Class có phải là 1 kiểu dữ liệu ?
- Trong class có 3 thứ gọi là Public, Private và Protected, ý nghĩa của nó là gì và khi nào thì mình phải dùng Public, khi nào dùng Private, và khi nào dùng Protected ?
Xin cảm ơn.
Bài liên quan
bạn nên tìm hiểu về lập trình hướng đối tượng (object oriented programming[OOP]) sẽ hiểu class là gì ?
Từ đó sẽ biết được mục đích của Public, Private và Protected dùng để làm gì ?
Bạn có thể tìm hiểu lập trình hướng đối tượng tại Thế nào là lập trình hướng đối tượng OOP? và Tài liệu lập trình hướng đối tượng?.
chúc bạn vui vẻ khi tìm hiểu về lập trình
Theo em biết thì class là 1 kiểu dữ liệu trừu tượng của C++ dùng gộp các kiểu dữ liệu cơ bản của C++ thành 1 kiểu dữ liệu mới theo nhu cầu người dùng
Public là kiểu dữ liệu được khai báo thuộc loại công cộng, được truy nhập và sử dụng bời tất cả các hàm thuộc hay không thuộc đối tượng đó. Ở đâu cũng dùng được
Private là kiểu dữ liệu được khai báo thuộc loại riêng tư, chỉ cho phép truy nhập và sử dụng bởi các hàm thành viên thuộc lớp đó, Các hàm bên ngoài không thuộc lớp đối tượng đó thì không được phép truy nhập và sử dụng. Private thường được dùng cho các hàm tiện ích chỉ cần dùng đến ở bên trong phạm vi lớp bởi các hàm thành viên khác
Protected là thì em chưa đọc kĩ, chỉ hiểu khi khai báo kiểu này thì chỉ có các hàm của đối tượng đó và các hàm của class bạn (kế thừa class của đối tượng đó ) được sử dụng
mình nghĩ bạn hiểu như vậy không đúng lắm. Nếu trong class không có kiểu dữ liệu cơ bản thì không phải là class à ?
Vẫn là class. Mình mới học nên toàn dùng với dữ liệu cơ bản. Có google ra được class https://vi.wikipedia.org/wiki/Lập_trình_hướng_đối_tượng#L.E1.BB.9Bp_.28class.29
Mình học Java và mình có thể nói sơ qua như sau:
Mỗi đối tượng được thể hiện qua một class. vd 1 con chó là một đối tượng được thể hiện qua 1 class tên là CHO. Trong class CHO này có các thuộc tính màu lông, chiều cao, cân nặng… Một class có thể tạo ra nhiều đối tượng (nhiều con chó khác nhau). Mỗi đối tượng có các thuộc tính khác nhau (mỗi con chó có màu lông, chiều cao, cân nặng khác nhau). Các thuộc tính, phương thức trong một lớp đều có access modifier là public/protected/“default”/private.
Nên dùng private và protected để tránh bị truy cập trực tiếp từ bên ngoài. cũng giống như tiền nhà bạn thì bạn nên cất đi không để người ngoài dùng =)) Để truy cập các thuộc tính private thì lúc này dùng đến các phương thức get/set.
Nếu hiểu class 1 một kiểu dữ liệu như struct thì có lẽ sẽ đúng chứ, class mở rộng nhiều thứ hơn so với struct
Cảm ơn mọi người nhiều lắm, mình đã có chút khái niệm rồi. Mình sẽ tiếp tục tìm hiểu
Huy code bằng cái gì nhìn highlight đẹp thế nhỉ?
chắc là Sublime text
Mình dùng IntelliJ IDEA. (Có tinh chỉnh lại màu sắc). Trước kia dùng eclipse và Netbeans nhưng sau thấy thằng này hay hơn
Sao nó giống PHPStorm mình đang dùng
cùng “hãng sx” hết mà PyCharm-IntelliJ IDEA-PHPStorm-AndroidStudio… giống giống nhau cả
vậy ko để ý
https://www.jetbrains.com/ Có đầy đủ
Thích bộ màu này nhìn nó nhã mắt mà trong Android studio không có. Huy có file custom không share mình với.
Mình cũng tự edit thôi vừa export ra file custom đây: https://drive.google.com/file/d/0B0PQXRyV7ZBrTnVmcHRWeTdZRUU/view?usp=sharing
mình thấy bài ở blog này cũng nói về class và object. có một ví dụ rất cụ thể bạn có thể tham khảo
https://mrhai-blog.blogspot.com/2016/05/phan-biet-class-va-object-trong-java.html