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.

vũ xuân quân viết 19:32 ngày 30/09/2018

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

Trần Toàn viết 19:28 ngày 30/09/2018

Class có phải là 1 kiểu dữ liệu ?

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

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 ?

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

vũ xuân quân viết 19:29 ngày 30/09/2018

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

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 à ?

Trần Toàn viết 19:28 ngày 30/09/2018

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

X viết 19:25 ngày 30/09/2018

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.

  • public: có thể truy cập từ bất kỳ đâu.
  • protected: được phép truy cập từ class chứa thuộc tính đó và class dẫn xuất (class con) kế thừa từ lớp cơ sở (class cha).
  • private: chỉ được truy cập từ class chứa thuộc tính đó.

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.

Nguyễn Minh Hải viết 19:27 ngày 30/09/2018

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

Hoàng Việt viết 19:29 ngày 30/09/2018

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ỉ?

Nguyễn Huyền viết 19:27 ngày 30/09/2018

chắc là Sublime text

X viết 19:33 ngày 30/09/2018

Huy code bằng cái gì nhìn highlight đẹp thế nhỉ?

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

Đinh Quốc Hân viết 19:29 ngày 30/09/2018

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

X viết 19:33 ngày 30/09/2018

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ả

Đinh Quốc Hân viết 19:31 ngày 30/09/2018

vậy ko để ý


Post must be at least 20 characters

X viết 19:36 ngày 30/09/2018

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.

X viết 19:34 ngày 30/09/2018

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

Hai Mai viết 19:27 ngày 30/09/2018

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

Bài liên quan
0