Panduan Pokok bagi Pemula: Kelas dan Objek C++

Hai di sana, ahli kelas C++ masa depan! Saya sangat gembira untuk menjadi pemandu anda dalam perjalanan yang menarik ini ke dunia kelas dan objek C++. Sebagai seseorang yang telah mengajar pemrograman selama bertahun-tahun, saya boleh katakan bahawa topik ini adalah seperti untuk belajar untuk membina dengan rakit LEGO – sekali anda menguasaiinya, anda akan membuat benda-benda yang menakjubkan begitu sahaja!

C++ Classes & Objects

Apa itu Kelas dan Objek?

Sebelum kita kongsikan lebih lanjut, mari kita mula dengan analogi yang ringkas. Bayangkan anda sedang untuk menggambarkan sebuah kereta. Kereta memiliki beberapa ciri-ciri (warna, model, tahun) dan boleh melakukan tindakan-tindakan tertentu (mula, berhenti, percepat). Dalam C++, kelas adalah seperti rakit untuk kereta, yang menentukan properti dan tindakan yang semua kereta harus ada. Objek, kemudian, adalah kereta khusus yang dibina dari rakit itu.

Sekarang, mari kita kongsikan beberapa kod!

Definisi Kelas C++

Dalam C++, kita definisikan kelas menggunakan kata kunci class. Ini adalah struktur dasar:

class Car {
// Ahli kelas di sini
};

Tetapi itu hanya seperti garasi kosong! Mari tambahkan beberapa perincian:

class Car {
public:
string color;
string model;
int year;

void start() {
cout << "The car is starting!" << endl;
}

void stop() {
cout << "The car is stopping!" << endl;
}
};

Mari kita kongsikan ini:

  1. Kita telah definisikan kelas yang dipanggil Car.
  2. Di dalam kelas, kita ada ahli data (color, model, year) dan fungsi ahli (start(), stop()).
  3. Kata kunci public berarti ahli ini boleh diakses dari luar kelas.

Definisi Objek C++

Sekarang bahwa kita ada rakit kereta, mari kita buat beberapa kereta sebenar! Ini adalah di mana objek datang ke tempat:

int main() {
Car myCar;  // Mencipta objek bagi kelas Car
Car yourCar;  // Objek lain bagi kelas Car

return 0;
}

Tahniah! Anda baru saja "membuat" dua kereta. Tetapi mereka masih agak biasa sekarang – mari kita memberikan mereka beberapa personality!

Mengakses Ahli Data

Untuk mengatur atau mendapatkan nilai bagi properti kereta kita, kita gunakan operator titik (.):

int main() {
Car myCar;

// Mengatur nilai
myCar.color = "Merah";
myCar.model = "Sportster";
myCar.year = 2023;

// Mendapatkan nilai
cout << "Kereta saya adalah " << myCar.color << " " << myCar.model << " dari tahun " << myCar.year << endl;

// Memanggil fungsi ahli
myCar.start();
myCar.stop();

return 0;
}

Output:

Kereta saya adalah Merah Sportster dari tahun 2023
The car is starting!
The car is stopping!

Lihat bagaimana kita berinteraksi dengan objek myCar kita? Kita mengatur warna, model, dan tahunnya, kemudian mencetak nilai那些, dan akhirnya memanggil fungsi ahli nya.

Kelas dan Objek Dalam Detil

Sekarang bahwa kita telah mendapatkan dasar-dasar, mari kita kongsikan lebih dalam. Dalam C++, kelas biasanya memiliki dua seksi utama:

  1. Ahli pribadi: Ini hanya dapat diakses di dalam kelas.
  2. Ahli umum: Ini dapat diakses dari luar kelas.

Ini adalah versi yang diperbaiki bagi kelas Car kita:

class Car {
private:
string color;
string model;
int year;
bool isRunning;

public:
// Konstruktor
Car(string c, string m, int y) {
color = c;
model = m;
year = y;
isRunning = false;
}

// Method penyedia
string getColor() { return color; }
string getModel() { return model; }
int getYear() { return year; }

// Method lain
void start() {
if (!isRunning) {
isRunning = true;
cout << "The " << color << " " << model << " is starting!" << endl;
} else {
cout << "The car is already running!" << endl;
}
}

void stop() {
if (isRunning) {
isRunning = false;
cout << "The " << color << " " << model << " is stopping!" << endl;
} else {
cout << "The car is already stopped!" << endl;
}
}
};

Versi ini memperkenalkan beberapa konsep baru:

  1. Ahli pribadi: Kita telah menjadikan ahli data kita sebagai pribadi untuk penyusunan yang lebih baik.
  2. Konstruktor: Fungsi khusus ini dipanggil apabila objek diciptakan, menginisialisasi nilai-nilainya.
  3. Method penyedia: Ini membenarkan akses yang dikawal bagi ahli data pribadi kita.
  4. Method yang diperbaiki: Method start() dan stop() kita sekarang memeriksa keadaan kereta sebelum bertindak.

Mari lihat bagaimana kita menggunakan kelas yang diperbaiki ini:

int main() {
Car myCar("Merah", "Sportster", 2023);

cout << "Kereta saya adalah " << myCar.getColor() << " " << myCar.getModel()
<< " dari tahun " << myCar.getYear() << endl;

myCar.start();
myCar.start();  // Cuba untuk mula lagi
myCar.stop();
myCar.stop();  // Cuba untuk berhenti lagi

return 0;
}

Output:

Kereta saya adalah Merah Sportster dari tahun 2023
The Merah Sportster is starting!
The car is already running!
The Merah Sportster is stopping!
The car is already stopped!

Adakah itu keren? Kereta kita sekarang bertindak lebih seperti kereta sebenar – dia tak boleh mula jika dia sudah berjalan, dan tak boleh berhenti jika dia sudah berhenti.

Jadual Method

Berikut adalah jadual yang menyummarikan method dalam kelas Car yang diperbaiki kita:

Method Keterangan
Car(string c, string m, int y) Konstruktor: Menginisialisasi objek Car baru
string getColor() Kembalikan warna kereta
string getModel() Kembalikan model kereta
int getYear() Kembalikan tahun kereta
void start() Mula kereta jika dia belum berjalan
void stop() Henti kereta jika dia sedang berjalan

Dan itu adalah semua! Anda baru saja membina kelas C++ pertama anda dan membuat objek dari itu. Ingat, latihan membuat perfect, jadi jangan takut untuk eksperimen dengan kelas dan objek anda sendiri. Mungkin cuba untuk membuat kelas Garage yang boleh menyimpan beberapa objek Car?

Terus koding, terus belajar, dan yang paling penting, bersenang-senang! Sebelum anda tahu, anda akan menjadi orang yang mengajar orang lain tentang keajaiban kelas dan objek C++. Sampai masa berikutnya, happy coding!

Credits: Image by storyset