public/internal/protected/private (dengan catatan tentang berkas)
Pelajari cara public, internal, protected, dan private mengubah visibilitas; lihat aturan pewarisan dan assembly yang sama. Catatan: akses berbasis berkas belum tersedia di C# 6.
public/internal/protected/private (dengan catatan tentang berkas) adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 3. 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 3 pelajaran total.
Ikhtisar pengubah akses
Tujuan: Pilih visibilitas yang tepat.
- publik: di mana saja
- internal: rakitan yang sama
- terlindungi: kelas turunan
- pribadi: kelas yang sama
- berkas: lebih baru daripada C# 6 (hanya informasi)
pribadi vs publik
Simpan bidang sebagai pribadi dan sediakan anggota publik yang telah divalidasi.
using System;
// private: only inside the class; public: everywhere the class is visible
public class Box
{
private int _width; // hidden storage
public int Width // controlled access
{
get { return _width; }
set { _width = value < 0 ? 0 : value; } // simple guard
}
}
public class Program
{
public static void Main(string[] args)
{
Box b = new Box();
// b._width = -5; // INVALID: private (kept as comment)
b.Width = 10; // OK: public property
Console.WriteLine("Width = " + b.Width);
}
}
terlindungi dalam pewarisan
Terlindungi digunakan untuk pewarisan: tipe turunan dapat menggunakannya, sedangkan pihak luar tidak.
using System;
public class BaseCounter
{
protected int Count; // derived classes can see this
public int Value() { return Count; }
}
public class StepCounter : BaseCounter
{
public void Step() { Count = Count + 1; } // allowed: protected
}
public class Program
{
public static void Main(string[] args)
{
StepCounter sc = new StepCounter();
sc.Step();
// sc.Count = 5; // INVALID from outside (commented)
Console.WriteLine("Value = " + sc.Value());
}
}
Akses internal
internal membatasi visibilitas ke rakitan saat ini (hasil kompilasi pustaka atau aplikasi).
using System;
// internal type: visible only inside this assembly
internal class InternalHelper
{
public static string Ping() { return "pong"; }
}
// public type can use internal from the same assembly
public class UsesInternal
{
public string Call() { return InternalHelper.Ping(); }
}
public class Program
{
public static void Main(string[] args)
{
UsesInternal u = new UsesInternal();
Console.WriteLine(u.Call());
}
}
terlindungi internal
Terlindungi internal berarti dapat diakses oleh tipe turunan atau dari mana saja dalam rakitan yang sama.
using System;
public class LibraryBase
{
// Accessible to derived types OR anywhere in the same assembly
protected internal void Touch() { Console.WriteLine("touched"); }
}
public class LibChild : LibraryBase
{
public void Use() { Touch(); } // via inheritance
}
public class Program
{
public static void Main(string[] args)
{
LibChild c = new LibChild();
c.Use();
LibraryBase b = new LibraryBase();
b.Touch(); // same assembly, allowed
}
}
Catatan & kiat pengubah berkas
Catatan: Pengubah akses berkas hadir dalam C# yang lebih baru (tidak tersedia dalam C# 6). Untuk C# 6, gunakan publik, internal, terlindungi, pribadi, dan terlindungi internal.
- Pilih pribadi sebagai bawaan.
- Gunakan publik hanya untuk permukaan API.
- Gunakan internal untuk menyembunyikan implementasi dari rakitan lain.
- Gunakan terlindungi untuk kerja sama antara basis dan turunan.
Makna internal
Ringkasan
Ringkasan: Pilih visibilitas terkecil yang diperlukan: pribadi → terlindungi/internal → publik. C# 6 tidak menyertakan pengubah berkas yang lebih baru; gunakan internal untuk menyembunyikan anggota pada tingkat rakitan.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “public/internal/protected/private (dengan catatan tentang berkas)” gratis?
Ya — teks lengkap “public/internal/protected/private (dengan catatan tentang berkas)” 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 3 pelajaran total.
Apa yang akan aku pelajari di “public/internal/protected/private (dengan catatan tentang berkas)”?
Pelajari cara public, internal, protected, dan private mengubah visibilitas; lihat aturan pewarisan dan assembly yang sama. Catatan: akses berbasis berkas belum tersedia di C# 6. 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 3.
Berapa lama pelajaran “public/internal/protected/private (dengan catatan tentang berkas)” 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
- public/internal/protected/private (dengan catatan tentang berkas)
- Namespace, direktif using, global using (catatan)
- Tipe parsial dan berkas