0Pricing
C# Academy · Pelajaran

Metode dan Field Statis

Definisikan anggota yang menjadi milik tipe itu sendiri.

Metode dan Field Statis adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.

Statis vs Instans

Anggota instans dimiliki oleh setiap objek; anggota statis dimiliki oleh kelas itu sendiri. Hanya ada satu salinan anggota statis, yang digunakan bersama oleh semua pihak.

using System;

class Counter
{
    public static int Total;   // shared
    public int Id;             // per instance
}

class Program
{
    static void Main()
    {
        Counter.Total = 5;
        Console.WriteLine("Shared Total: " + Counter.Total);
    }
}

Mendeklarasikan Atribut Statis

Atribut static diakses melalui nama kelas, bukan melalui instans: ClassName.Field.

using System;

class Bank
{
    public static decimal InterestRate = 0.05m;
}

class Program
{
    static void Main()
    {
        Console.WriteLine("Rate: " + Bank.InterestRate);
    }
}

Metode Statis

Metode static berjalan tanpa instans. Anda memanggilnya melalui kelas. Metode ini tidak dapat menggunakan atribut instans karena tidak memiliki this.

using System;

class MathUtil
{
    public static int Square(int x)
    {
        return x * x;
    }
}

class Program
{
    static void Main()
    {
        Console.WriteLine(MathUtil.Square(7));
    }
}

State Bersama di Seluruh Instans

Karena atribut statis hanya memiliki satu salinan, setiap instans melihat nilai yang sama. Hal ini berguna untuk penghitung dan konfigurasi bersama.

using System;

class Robot
{
    public static int Count;

    public Robot()
    {
        Count++;
    }
}

class Program
{
    static void Main()
    {
        new Robot();
        new Robot();
        new Robot();
        Console.WriteLine("Robots created: " + Robot.Count);
    }
}

Metode Statis Tidak Dapat Menggunakan Data Instans

Metode statis tidak memiliki this, sehingga hanya dapat menggunakan parameter, variabel lokal, dan anggota statis lainnya.

using System;

class Calculator
{
    public static int Add(int a, int b) => a + b;
    public static int Multiply(int a, int b) => a * b;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Calculator.Add(2, 3));
        Console.WriteLine(Calculator.Multiply(4, 5));
    }
}

Mencampur Statis dan Instans

Sebuah kelas dapat menampung kedua jenis anggota. Metode instans dapat membaca anggota statis, tetapi metode statis tidak dapat membaca anggota instans.

using System;

class Account
{
    public static decimal Fee = 2m;
    public decimal Balance;

    public decimal NetBalance()
    {
        return Balance - Fee;   // instance method can read static
    }
}

class Program
{
    static void Main()
    {
        var a = new Account { Balance = 100m };
        Console.WriteLine("Net: " + a.NetBalance());
    }
}

Pola Penghitung Statis

Menetapkan id untuk setiap objek baru dari penghitung statis merupakan penggunaan klasik atribut statis.

using System;

class Ticket
{
    private static int _next = 1;
    public int Number;

    public Ticket()
    {
        Number = _next++;
    }
}

class Program
{
    static void Main()
    {
        Console.WriteLine(new Ticket().Number);
        Console.WriteLine(new Ticket().Number);
        Console.WriteLine(new Ticket().Number);
    }
}

Metode Pembantu Statis

Metode statis sangat cocok untuk operasi tanpa state yang hanya bergantung pada masukannya, seperti pemformat dan pengonversi.

using System;

class Format
{
    public static string Money(decimal amount)
    {
        return "$" + amount.ToString("0.00");
    }
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Format.Money(12.5m));
    }
}

Memanggil Statis dari Statis

Metode statis dapat dengan bebas memanggil metode statis lain dalam kelas yang sama tanpa instans apa pun.

using System;

class Geometry
{
    public static double CircleArea(double r) => Math.PI * Square(r);
    private static double Square(double x) => x * x;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Geometry.CircleArea(2).ToString("0.00"));
    }
}

Atribut Statis Tetap Ada

Atribut statis mempertahankan nilainya sepanjang masa hidup program, bukan hanya selama masa hidup satu objek. Gunakan atribut ini untuk cache atau total berjalan.

using System;

class Logger
{
    public static int MessageCount;

    public static void Log(string msg)
    {
        MessageCount++;
        Console.WriteLine("[" + MessageCount + "] " + msg);
    }
}

class Program
{
    static void Main()
    {
        Logger.Log("start");
        Logger.Log("working");
        Logger.Log("done");
    }
}

Menyatukannya

Anggota statis memodelkan konsep yang berlaku di seluruh kelas: tarif bersama, penghitung, dan pembantu tanpa state, sedangkan anggota instans menyimpan data per objek.

using System;

class Order
{
    public static decimal TaxRate = 0.10m;
    public decimal Subtotal;

    public decimal Total() => Subtotal + Subtotal * TaxRate;
}

class Program
{
    static void Main()
    {
        var o = new Order { Subtotal = 200m };
        Console.WriteLine("Total: " + o.Total());
    }
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang anggota statis.

Ringkasan

Anggota statis dimiliki oleh kelas dan memiliki satu salinan bersama; anggota instans dimiliki oleh setiap objek. Metode statis tidak memiliki this dan tidak dapat menyentuh data instans, tetapi kode instans dapat membaca anggota statis. Gunakan anggota statis untuk penghitung, konfigurasi bersama, dan pembantu tanpa state.

using System;

class Demo
{
    public static int Shared;
    public int Own;
    public static void Bump() => Shared++;
}

class Program
{
    static void Main()
    {
        Demo.Bump();
        Demo.Bump();
        Console.WriteLine(Demo.Shared);
    }
}

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Metode dan Field Statis” gratis?

Ya — teks lengkap “Metode dan Field Statis” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Metode dan Field Statis”?

Definisikan anggota yang menjadi milik tipe itu sendiri. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Metode dan Field Statis” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Metode dan Field Statis
  2. Kelas Statis untuk Utilitas
  3. Konstanta dan Field readonly
  4. Desain Statis vs Instance
← Kembali ke C# Academy