Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Kata Kunci Static C#: Menguasai Variabel, Metode, dan Kelas Statis

Kata Kunci Static C#

Panduan ini menjelaskan kata kunci static di C#, mencakup variabel statis, metode, dan kelas dengan contoh dunia nyata yang jelas.

Di C#, penerapan kata kunci static pada anggota membuat satu instance bersama untuk semua objek dari tipe tersebut. Alih-alih setiap instance memiliki salinan sendiri, anggota statis hidup sekali per tipe.


Variabel Statis di C#

Saat field dideklarasikan static, Anda dapat mengaksesnya secara langsung melalui nama kelas, tanpa membuat objek.

using System; namespace StaticKeyword { class Student { // variabel statis yang dibagikan oleh semua siswa public static string department = "Computer Science"; } class Program { static void Main(string[] args) { // Akses field statis melalui nama kelas Console.WriteLine("Department: " + Student.department); Console.ReadLine(); } } }

Output

Department: Computer Science

Field department dibagikan oleh setiap instance Student, jadi kita merujuk padanya sebagai Student.department.


Variabel Statis vs. Variabel Instance

Variabel instance milik objek individu, masing-masing dengan salinan sendiri. Misalnya:

class Student { public string studentName; } class Program { static void Main(string[] args) { Student s1 = new Student(); Student s2 = new Student(); } }

Di sini, s1 dan s2 memiliki field studentName terpisah. Sebaliknya, field statis umum untuk semua instance dan dapat diakses tanpa membuat objek.

Contoh: Variabel Statis vs. Instance

using System; namespace StaticKeyword { class Student { public static string schoolName = "Programiz School"; // shared public string studentName; // unique } class Program { static void Main(string[] args) { Student s1 = new Student(); s1.studentName = "Ram"; Console.WriteLine("Name: " + s1.studentName); // instance Console.WriteLine("School: " + Student.schoolName); // static Student s2 = new Student(); s2.studentName = "Shyam"; Console.WriteLine("Name: " + s2.studentName); Console.WriteLine("School: " + Student.schoolName); Console.ReadLine(); } } }

Output

Name: Ram School: Programiz School Name: Shyam School: Programiz School

Field statis schoolName sama untuk semua siswa, sehingga hemat memori dan konsisten secara logis.


Metode Statis di C#

Metode statis dipanggil pada kelas itu sendiri, bukan pada instance. Mereka hanya dapat mengakses anggota statis lainnya.

class Test { public static void Display() { // implementation } } class Program { static void Main(string[] args) { Test.Display(); } }

Semua objek dari Test berbagi metode Display yang sama, jadi Anda memanggilnya melalui nama kelas.

Contoh: Metode Statis dan Non-Statis

using System; namespace StaticKeyword { class Test { public void Display1() { Console.WriteLine("Non static method"); } public static void Display2() { Console.WriteLine("Static method"); } } class Program { static void Main(string[] args) { Test t1 = new Test(); t1.Display1(); // instance call Test.Display2(); // static call Console.ReadLine(); } } }

Output

Non static method Static method

Catatan: Metode Main itu sendiri statis, memungkinkan untuk berjalan tanpa instance.


Kelas Statis

Kelas statis tidak dapat diinstansiasi dan hanya dapat berisi anggota statis. Ini berguna untuk mengelompokkan metode pembantu.

using System; namespace StaticKeyword { static class Test { static int a = 5; static void Display() { Console.WriteLine("Static method"); } static void Main(string[] args) { // Test t1 = new Test(); // ❌ Kesalahan kompilasi Console.WriteLine(a); Display(); } } }

Mencoba untuk menginstansiasi Test menghasilkan kesalahan kompilasi CS0723 dan CS0712, mengonfirmasi sifat statisnya.

Kelas statis tidak dapat diturunkan. Misalnya:

static class A { /* ... */ } // class B : A { /* ... */ } // ❌ Error 

Mengakses Anggota Statis di Dalam Kelas

Di dalam kelas yang sama, Anda dapat merujuk ke field dan metode statis secara langsung, tanpa kwalifikasi kelas.

using System; namespace StaticKeyword { class Test { static int age = 25; public static void Display() { Console.WriteLine("Static method"); } static void Main(string[] args) { Console.WriteLine(age); // direct access Display(); // direct access Console.ReadLine(); } } }

Output

25 Static method

Di sini, age dan Display digunakan tanpa menambahkan awalan Test..


Bahasa C

  1. Kelas dan Objek C#: Fondasi untuk OOP yang Kuat
  2. Memahami Modifier Akses C#: Public, Private, Protected, Internal, dan Lainnya
  3. Menguasai Kata Kunci this C#
  4. Menguasai Kelas dan Metode Abstrak C#: Panduan Praktis
  5. Memahami Kelas Bersarang C#: Definisi, Penggunaan, dan Warisan
  6. Memahami Kelas dan Metode Parsial C#
  7. Menguasai Kelas dan Metode Tersegel di C#—Kapan Menggunakannya, Contoh Jelas, dan Tingkatkan Keamanan serta Performa Kode
  8. Java Static Dijelaskan: Variabel, Metode, dan Blok dengan Contoh Praktis
  9. Memahami Polimorfisme C++: Panduan Praktis
  10. Menguasai Abstraksi Data C++: Sederhanakan Desain dengan Pemisahan Antarmuka-Implementasi