• C#中类的访问级别


    class Program
        {
             public class A
                {
                    private int a1;
                    public int b1;
                    internal int c1;
                    protected int d1;
                }
            private class A1
                {
                    private int a1;
                    public int b1;
                    internal int c1;
                    protected int d1;
                }
            internal class A3
                {
                    private int a1;
                    public int b1;
                    internal  int c1;
                    protected int d1;
                }
            protected class A4
                {
                    private int a1;
                    public int b1;
                    internal int c1;
                    protected int d1;
                }
            static void Main(string[] args)
            {
               A4 n=new A4();
    此时对于对象只能访问类中的public和internal修饰的成员。类成员的修饰类型目的就是针对外部对象对自身的访问。
            }
        }
    </pre><pre name="code" class="html">   internal class A3
                {
                    private int a1;
                    public int b1;
                    internal  int c1;
                    protected int d1;
                 public void GetWorld(A1 m)
                    {
                        Console.WriteLine("成员:"+m.b1);        //用别的类对象作为参数,就相当于在外部访问类中的成员,只能访问public和internal类型
                    }
                }
    

    当本类(任何类型的类public、private的无关)类型的时候,类的对象能访问本类和父类中的public和internal类型成员,private和protected的无法访问;

    类的对象访问只能访问类成员中的public和internal的变量,起到的就是保护作用,但是对于类内部的成员函数,它可以使用类中的任何成员,比如:
           internal class A2:A1                   //A1类型不影响
                {
                    private int a21;
                    public int b21;
                    internal  int c21;
                    protected int d21;
                    public void GetWorld(A2 m)
                    {
                        Console.WriteLine("成员:" + m);            //m就可以访问本类中的任何成员以及A1中出private类型外的成员,继承不了private,所以不能访问
                    }                                               //本质上还是类中的成员可以访问类中的任何成员变量
                    public void GetWorld(A1 m)
                    {
                        Console.WriteLine("成员:" + m);                //m就可以访问A1类中的public、internal成员,即使继承了A1,也只能访问public和internal类型
                    }
                }

    只要类对象的使用在类声明的外部,那么对象只能访问类中的public和internal成员,其它的一概不能访问。private只能类自己访问,prote


  • 相关阅读:
    第四次作业
    随机点名
    表单验证
    冒泡排序&&选择排序
    Equals相等
    String类
    最终类final
    Eclipse的设置
    Equals相等(测试)
    猜数字
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/3971457.html
Copyright © 2020-2023  润新知