14. 关键字(访问修饰符)
一、关键字概述
1、如果 C# 关键字作为标识符则需要在标识符前加上 @ 。标识符是定义的,关键字是系统自带的。
2、标识符:用来表示程序中各种语法成分的名称;
3、访问修饰符:访问修饰符是关键字的一个 “子集”。
注:访问修饰符用于限定类型以及类型成员的一种符号。将类进行封装,对外提供可访问的属性和方法。外部对象必须通过这些属性和方法访问此对象的信息。封装性最主要是通过访问修饰符来控制。
一、访问修饰符:
1、定义:访问修饰符就是类、属性和方法的定义分级制度 。
2、常用访问修饰符:
(1)public:公开的,允许一个类将其成员变量和成员函数暴露给其他的函数和对象。使得任何公有成员都可以被外部的类访问;
(2)internal:项目内部,只能在当前项目中访问。在同一个项目中 internal 和 public 的权限是一样的;
(3)protected:受保护的,能在当前类内部及子类(派生类)中访问。其他项目使用命名空间也可以访问;
(4)private:私有的,类成员的默认访问修饰符,只能在当前类的内部访问;
(5)protected internal:内部保护访问,允许一个类将其成员变量和成员函数对同一应用程序内的派生类以外的其他类进行隐藏(只限于本项目的本类及派生类访问)。
3、成员类型默认修饰符:
(1)enum : public
(2)class: private
(3)interface: public
(4)struct: private
三、方法或类常用关键字
1、abstract:抽象的。指示该方法或属性没有实现。在子类中需要实现它;
2、override:方法的另一个实现;
3、sealed:密封。在重写方法前加 sealed,指对该重写方法密封(必须是重写方法)。可以覆盖父类的密封方法,与父类中的方法是否为密封没有关系;
4、static:有 static 关键字即为静态方法、静态类;
5、interface:引入方法的名称,需要实现接口里面所有的方法。
注:
(1)virtual:方法的第一个实现,以后还希望子类去不断完善重写他;
(2)override:方法的另一个实现;
(3)sealed:方法的最后一个实现。方法已经很完善了,我们不需要子类去重写他。
四、其他关键字
1、const:常量。指定域或局部变量的值不能被改动.;
2、event:事件。声明一个事件;
3、extern:外部的。指示方法在外部实现;
4、readonly:只读的。指示一个域只能在声明时以及相同类的内部被赋值;
5、this/base:当父类与子类中定义了完全相同的方法,则发生“方法覆盖”。即子类的方法覆盖了父类的方法。此时调用方法可使用this/base关键字;
(1)this关键字调用本对象的字段与方法;
(2)base关键字始终指向基类(父类)。即调用父类的方法和字段。
6、new:
(1)在内存中开辟空间;
(2)在开辟的空间中创建对象;
(3)对对象进行初始化,将各个属性赋值。
五、值传递和引用传递
1、ref:ref 关键字可以把基本数据类型的值传递,改为“引用传递”;
2、out:out 关键字是“输出参数”关键字。
六、using 关键字
1、using 关键字可以给命名空间指定一个别名。
格式:using 别名=命名空间。
1 using System; 2 using MK=System.Console; //给系统控制台指定一个别名MK 3 4 namespace ConsoleApplication1 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 Console.WriteLine("这是一个输出语句");//未指定别名 11 MK.WriteLine("这是一个别名输出语句"); //这是需要指定别名。指定别名指在开头加上using MK=System.Console; 12 MK.ReadKey(); //原代码是Console.Reakey(); 13 } 14 } 15 }
2、能自动关闭文件流