zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    HTML5结构
    HTML5新增的非主体元素header元素、footer元素、hgroup元素、adress元素
    CF GYM 100703G Game of numbers
    CF GYM 100703I Endeavor for perfection
    CF GYM 100703K Word order
    CF GYM 100703L Many questions
    CF GYM 100703M It's complicate
    HDU 5313 Bipartite Graph
    CF 560e Gerald and Giant Chess
    POJ 2479 Maximum sum
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258737.html
Copyright © 2011-2022 走看看