Sebelum kita memahami perbezaan antara Kelas dan Struktur, kita perlu tahu beberapa konsep asas yang berkaitan dengannya. Tanpa memahami konsep, sukar untuk memahami perbezaan antara keduanya.
Ini adalah dua konsep penting yang berkaitan dengan Pemrograman Berorientasikan Objek, dan ia membentuk asas untuk merangka fungsi dan data yang lulus ke fungsi lain. Untuk pemahaman yang lebih baik, kita boleh mengaitkannya dengan contoh kehidupan sebenar. Kelas boleh dipertimbangkan sebagai kedai, dan Objek boleh menjadi mana-mana individu, kedai khusus seperti runcit, alat tulis, buah, dan sebagainya. Semua objek berkongsi sifat umum kelas utama - kedai - dan seterusnya, objek mungkin mempunyai sifat eksklusifnya sendiri seperti reka bentuk, pencahayaan, dan lain-lain. Melalui objek, kita boleh menggunakan kelas ini; mereka membentuk contoh kelas.
Sintaks Kelas
Kedai Kelas
perkara-perkara rentetan awam;
reka bentuk rentetan awam;
Sintaks Objek
Simpan runcit = Kedai baru ();
Station Stationery = new Store ();
Satu Struktur hanya termasuk data, dan oleh itu, adalah berguna dalam membina keperluan data individu melalui objek Struct. Tidak seperti kelas, ia tidak berfungsi. Inilah sintaksnya:
struct grocery_entrance
char entrance_name [50];
int entrance_size;
grocery_entrance;
Semua kedai boleh menggunakan Struct 'masuk' dengan nama dan saiz individu.
Ia sama dengan bagaimana seorang anak mewarisi harta bapanya dan, sebaliknya, anak itu juga boleh menambah beberapa harta miliknya sendiri. Kelas ini boleh menjadi kelas asas atau kelas yang diturunkan, di mana bekas boleh diambil sebagai asas untuk membentuk yang terakhir. Kelas yang diperolehi menambah beberapa sifat lain untuk dirinya sendiri selain dari apa yang diperolehnya dari kelas asas. Apabila kita mempertimbangkan contoh di atas, kedai runcit masih boleh diperolehi ke kedai runcit tertentu, seperti kedai runcit XYZ.
Sekarang kita sudah biasa dengan konsep asas, kita boleh pergi ke perbezaan sebenar antara Kelas dan Struktur.
Demo obj = Demo baru ();
Ini bermakna kita mesti menggunakan kata kunci 'baru' semasa membuat objek kelas. Ini tidak diperlukan semasa membuat objek Structs. Lihat saja sintaks mereka:
Demo obj;
Ia berfungsi dengan sempurna walaupun tanpa kata kunci 'baru'.
Oleh kerana Kelas lebih fleksibel dalam menyampaikan data dan fungsi bersama-sama, kita boleh melakukannya apabila objek yang digunakan adalah rumit dan besar. Dalam contoh kami, sebuah Mall boleh menggunakan 'kedai' kelas untuk menyatakan sistem dengan cara yang lebih baik. Struktur, bagaimanapun, adalah terhad kepada objek yang lebih kecil, kerana ia adalah kurang efektif daripada Kelas. Oleh itu, jika anda merancang kedai anda sendiri, Structs adalah pilihan yang lebih baik.
Anda mungkin pernah mendengar istilah 'tinju' dan 'unboxing' untuk menukar Struktur ke Kelas, dan sebaliknya. Walaupun ini adalah proses yang berkesan untuk membantu kita dalam penukaran, mereka harus ditangani dengan berhati-hati. Oleh kerana ini memberi kesan langsung kepada lokasi memori, terdapat kesan yang besar terhadap prestasi sistem kami. Lebih-lebih lagi, ia mempengaruhi proses pengumpulan sampah dan menyebabkan ketidakcekapan sistem keseluruhan. Oleh itu, gunakan penukaran ini hanya apabila diperlukan.
Marilah kita melihat perbezaan yang disebut di atas dalam bentuk jadual.
S.No | Konsep | Perbezaan | |
Kelas | Struktur | ||
1 | Re-usability | Sepenuhnya boleh digunakan semula | Tidak boleh digunakan semula |
2 | Keterlihatan | Semua fungsi Kelas boleh dilihat oleh objeknya | Data objek Struktur tidak dapat dilihat oleh objek lain dalam Struktur yang sama |
3 | Lulus mengikut Rujukan & lulus mengikut Nilai | Menggunakan Pass oleh Rujukan | Menggunakan Pass by Value |
4 | Warisan | Fungsi kelas boleh diwarisi oleh subkelasnya; membolehkan warisan | Jangan sekali-kali membenarkan warisan |
5 | Kebolehlihatan lalai | Semua ahli Kelas adalah secara peribadi secara lalai | Semua ahli Struct adalah awam secara lalai |
6 | Saiz Apabila Kosong | Saiz Kelas kosong ialah 1 Byte | Saiz Struktur kosong adalah 0 Bits |
7 | Kutipan sampah | Kerana ia menggunakan lulus dengan rujukan, pengumpulan sampah adalah mungkin | Kerana ia menggunakan nilai lulus, pengumpulan sampah tidak mungkin |
8 | Pengurusan Memori | Kemudahan proses pengumpulan sampah membantu dalam pengurusan memori yang berkesan | Kekurangan pengumpulan sampah menyebabkan pengurusan memori yang buruk |
9 | Pembina | Membolehkan para pembangun semua jenis, seperti dengan atau tanpa parameter | Hanya membenarkan pengeluar parameterized |
10 | Pemusnah | Boleh menggunakannya | Tidak boleh menggunakannya |
11 | Pembolehubah Ahli Inisialisasi | Membolehkan permulaan pengubahsuaian ahli | Tidak membenarkan inisialisasi perkataan langsung pembolehubah ahli |
12 | Penciptaan Objek | Ia adalah satu kemestian untuk menggunakan kata kunci 'baru' semasa penciptaan objek | Ia adalah pilihan untuk menggunakan kata kunci 'baru' semasa penciptaan objek |
13 | Kapan Digunakan? | Lebih baik untuk objek yang lebih besar dan kompleks di mana warisan diperlukan | Lebih baik untuk objek yang lebih kecil dan sederhana di mana warisan kurang penting. |
Kami hampir menutup semua perbezaan antara Kelas dan Struktur, dan jika anda merasakan ada sesuatu yang hilang, sila beritahu kami. Mari belajar bersama dan memanfaatkan sepenuhnya pengetahuan itu!