C# 访问修饰符

学到封装就会想到访问修饰符,说到访问修饰符,就会想到访问等级,或者说是访问能力的大小。当然也少不了默认的访问类型。

封装 被定义为”把一个或多个项目封闭在一个物理的或者逻辑的包中”。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。

析构函数和构造函数

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 面向对象编程
{
    class Person
    {
       /***********构造函数************/
        // 构造函数,函数名和类同名,当用new关键字实例化Person对象时,就会调用这个函数
        // public 公共的,表示这个构造方法是公共的,任何类都可以调用
        //public Person(string a)
        //{
        //    Console.WriteLine(a);
        //}


        // 静态构造函数,只会被执行一次,他是属于类的,不属于那个实例

        /* 静态构造函数特点:
         1.静态构造函数既没有访问修饰符,也没有参数
         2.在创建第一个实例或者引用任何一个静态成员之前,将自动调用静态构造函数来出事化类,也就是无法直接调用静态构造函数,也无法控制什么时候执行
         3.一个类只能有一个静态构造函数,最多只能运行一次
         4.静态构造函数不可以被继承
         5.如果静态构造函数,而类中静态成员有初始值,那么编译器会自动生成默认的静态构造函数。

             */
        static int i = 0;
        static Person()
        {
            i++;

            Console.WriteLine("我被访问了{0}次", i);
        }


        // 私有构造函数
        // private 私有的,访问修饰符,当实例化对象时使用默认构造方法时,编译器就会报错,无法编译通过
        //private Person()
        //{
        //    Console.WriteLine("无参构造函数");

        //}

        /************析构函数***************/
        /*
         1.析构函数没有参数没有返回值,为了与构造函数区别,在前面加上一个符号“~”
         2.一个类智能有一个析构函数,不能重载
         3.如果用户没有编写析构函数,编译系统自动生成一个缺省的析构函数
             */
        ~Person()
        {
            Console.WriteLine("死了");
        }
    }

    class Program
    {
        static void test()
        {
            Person person = new Person();
            //Console.WriteLine(person.GetName());
            Person person2 = new Person();
            person = null;
            person2 = null;

        }


        static void Main(string[] args)
        {

            test();
            Console.ReadKey();
        }
    }
}

 

  1. C# 方法默认访问级别 : private
    (私有的) 
  2. C# 类默认访问级别 : internal   
    (内部的) 

抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象

封装

访问修饰符:

如果没有指定访问修饰符,则默认是private

  • Public
  • Private
  • Protected
  • Internal
  • Protected internal

封装 被定义为”把一个或多个项目封闭在一个物理的或者逻辑的包中”。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。

C#
封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。

Public 修饰符

Public
访问修饰符允许一个类将其成员变量和成员函数暴露给其他函数和对象。任何公共成员可以被外部访问

抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象

一个 访问修饰符 定义了一个类成员的范围和可见性。C#
支持的访问修饰符如下所示:

Private 修饰符

Private
访问修饰符允许一个类将其成员变量和成员函数对其他函数和对象进行隐藏。只有同一个类中的函数可以访问他的私有从成员

C#
封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。

  • Public:所有对象都可以访问;
  • Private:对象本身在对象内部可以访问;
  • Protected:只有该类对象及其子类对象可以访问
  • Internal:同一个程序集的对象可以访问;
  • Protected internal:一个程序集内的对象,或者该类对象及其子类可以访问
Protected 修饰符

Protected 修饰符允许子类访问他的基类的成员变量和成员函数。这种方法有助于继承

一个 访问修饰符 定义了一个类成员的范围和可见性。C#
支持的访问修饰符如下所示:

如果没有指定访问修饰符,则使用类成员的默认访问修饰符,即为 private

Internal 修饰符

Internal 修饰符允许一个类将其成员变量和成员函数暴露给当前程序中的其他函数和对象,换句话说,带有访问Internal
修饰符的任何成员可以被定义在改成员所定义的应用程序内的任何类或方法访问

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图