Tutorial C#login
Tutorial C#
pengarang:php.cn  masa kemas kini:2022-04-11 14:06:23

enkapsulasi C#



Pembungkusan ditakrifkan sebagai "memampirkan satu atau lebih item dalam pakej fizikal atau logik". Dalam metodologi pengaturcaraan berorientasikan objek, enkapsulasi digunakan untuk menghalang akses kepada butiran pelaksanaan.

Abstraksi dan enkapsulasi ialah ciri berkaitan pengaturcaraan berorientasikan objek. Abstraksi membolehkan visualisasi maklumat yang berkaitan, dan enkapsulasi membolehkan pengaturcara mencapai tahap abstraksi yang dikehendaki. enkapsulasi dilaksanakan menggunakan

pengubah suai akses

. pengubah suai akses mentakrifkan skop dan keterlihatan ahli kelas. Pengubah suai akses yang disokong oleh C# adalah seperti berikut:

    Awam
  • Swasta
  • Dilindungi
  • Dalaman
  • Dalaman yang dilindungi
  • Pengubah suai akses awam

    Pengubah suai akses awam membenarkan kelas mendedahkan pembolehubah ahli dan fungsi ahlinya kepada fungsi dan objek lain. Mana-mana ahli awam boleh diakses oleh kelas luar.

    Contoh berikut menggambarkan ini:

    using System;
    
    namespace RectangleApplication
    {
        class Rectangle
        {
            //成员变量
            public double length;
            public double width;
    
            public double GetArea()
            {
                return length * width;
            }
            public void Display()
            {
                Console.WriteLine("长度: {0}", length);
                Console.WriteLine("宽度: {0}", width);
                Console.WriteLine("面积: {0}", GetArea());
            }
        }// Rectangle 结束
    
        class ExecuteRectangle
        {
            static void Main(string[] args)
            {
                Rectangle r = new Rectangle();
                r.length = 4.5;
    	    r.width = 3.5;
                r.Display();
                Console.ReadLine();
            }
        }
    }

    Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut:

    长度: 4.5
    宽度: 3.5
    面积: 15.75

    Dalam contoh di atas, panjang pembolehubah ahli dan lebar diisytiharkan sebagai awam, jadi ia boleh diakses oleh fungsi Main() menggunakan contoh kelas Rectangle r. Fungsi ahli

    Display() dan GetArea() boleh mengakses terus pembolehubah ini. Fungsi

    ahli Display() juga diisytiharkan sebagai awam, jadi ia juga boleh digunakan oleh Main() menggunakan contoh Kelas segi empat tepatr Lawati.

    Pengubah suai akses peribadi

    Pengubah suai akses peribadi membenarkan kelas menyembunyikan pembolehubah ahli dan fungsi ahlinya daripada fungsi dan objek lain. Hanya fungsi dalam kelas yang sama boleh mengakses ahli peribadinya. Malah contoh kelas tidak boleh mengakses ahli peribadinya.

    Contoh berikut menggambarkan ini:

    using System;
    
    namespace RectangleApplication
    {
        class Rectangle
        {
            //成员变量
            private double length;
            private double width;
    
            public void Acceptdetails()
            {
                Console.WriteLine("请输入长度:");
                length = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("请输入宽度:");
                width = Convert.ToDouble(Console.ReadLine());
            }
            public double GetArea()
            {
                return length * width;
            }
            public void Display()
            {
                Console.WriteLine("长度: {0}", length);
                Console.WriteLine("宽度: {0}", width);
                Console.WriteLine("面积: {0}", GetArea());
            }
        }//end class Rectangle    
        class ExecuteRectangle
        {
            static void Main(string[] args)
            {
                Rectangle r = new Rectangle();
                r.Acceptdetails();
                r.Display();
                Console.ReadLine();
            }
        }
    }

    Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut:

    请输入长度:
    4.4
    请输入宽度:
    3.3
    长度: 4.4
    宽度: 3.3
    面积: 14.52

    Dalam contoh di atas, panjang pembolehubah ahli dan lebar diisytiharkan sebagai peribadi, jadi ia tidak boleh diakses oleh fungsi Main(). Fungsi ahli

    AcceptDetails() dan Display() boleh mengakses pembolehubah ini.

    Memandangkan fungsi ahli AcceptDetails() dan Display() diisytiharkan sebagai awam, ia boleh digunakan oleh Main( ) Diakses menggunakan contoh kelas Rectangle r.

    Pengubah suai akses yang dilindungi

    Pengubah suai akses yang dilindungi membenarkan subkelas untuk mengakses pembolehubah ahli dan fungsi ahli kelas asasnya. Ini membantu dengan warisan. Kami akan membincangkan perkara ini secara terperinci dalam bab pewarisan. Bincangkan perkara ini dengan lebih terperinci.

    Pengubah suai akses dalaman

    Penentukan akses dalaman membenarkan kelas mendedahkan pembolehubah ahli dan fungsi ahlinya kepada fungsi dan objek lain dalam program semasa. Dalam erti kata lain, mana-mana ahli dengan pengubah akses dalaman boleh diakses oleh mana-mana kelas atau kaedah yang ditakrifkan dalam aplikasi di mana ahli itu ditakrifkan.

    Contoh berikut menggambarkan ini:

    using System;
    
    namespace RectangleApplication
    {
        class Rectangle
        {
            //成员变量
            internal double length;
            internal double width;
            
            double GetArea()
            {
                return length * width;
            }
           public void Display()
            {
                Console.WriteLine("长度: {0}", length);
                Console.WriteLine("宽度: {0}", width);
                Console.WriteLine("面积: {0}", GetArea());
            }
        }//end class Rectangle    
        class ExecuteRectangle
        {
            static void Main(string[] args)
            {
                Rectangle r = new Rectangle();
                r.length = 4.5;
                r.width = 3.5;
                r.Display();
                Console.ReadLine();
            }
        }
    }

    Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut:

    长度: 4.5
    宽度: 3.5
    面积: 15.75

    Dalam contoh di atas, Sila ambil perhatian bahawa fungsi ahli GetArea() diisytiharkan tanpa sebarang pengubah suai akses. Jika tiada pengubah suai akses dinyatakan, pengubah suai akses lalai ahli kelas digunakan, iaitu peribadi.

    Pengubah suai akses Dalaman yang Dilindungi

    Pengubah suai akses Dalaman yang Dilindungi membenarkan kelas untuk menyembunyikan pembolehubah ahli dan fungsi ahlinya daripada objek dan fungsi kelas lain di luar subkelas dalam aplikasi yang sama. Ini juga digunakan untuk melaksanakan pewarisan.