C#语法——类
传统程序设计将程序看做一系列函数的集合。
面向对象程序设计中基本单元为对象。
对象[1.数据(属性、字段)]
[2.功能(函数成员) ]
一、类的声明
C#中用class来声明一个类。
class ClassExample
{
}
class 前面没有任何修饰符。此时默认:internal修饰符(内部的)。
二、类的成员
包括:字段、属性、方法、索引器、构造函数
2.1、字段(类中变量的定义)
- 访问级别(一般字段定义为私有的private)
private,私有的,在该类中能访问
protected,保护级别,只有子类能访问
- 字段的类型
- 字段的名称
普通字段:属于对象级别,需要实例化
静态字段:属于类级别,访问时不需要先实例化类
2.2、属性(属性是字段的扩展)
注:在属性中,除了get和set访问器,不允许有其他方法出现
属性的get、set访问器分别用于字段的读写操作。
如:
class Car
{
private string name ; //私有字段
public string name
{
get
{
return name;
}
set
{
name=value;
}
}
}
3.0版后可以这样简写:
public string name
{
get{}
set{}
}
2.3、方法(是类的函数成员)
三、类的实例:对象
实例化一个类:Car car=new Car();
访问修饰符,用于限制类、结果以及他们的成员的可访问性
- public :最高访问级别,不受访问限制
- protected:保护级别,受保护的成员可由自身和子类访问
- internal:内部访问级别,只有在同一程序集中,内部成员才能访问
- protected internal :内部保护级别,访问仅限于当前程序集,可由自身及子类访问
- private:私有访问,最低访问级别,私有成员只有在声明它们的类结构中访问
四、构造函数
是一类特殊的成员函数,主要用于为对象分配内存空间,并对类的数据成员进行初始化。
①名称与类名相同
②不允许有返回值
class Car
{
private string name; //字段
public Car() //构造函数
{
name="Polo";
}
}
引用基类的构造函数使用base()方法,如果有参数则将参数传入,如base(参数1,参数2……)
引用自身的构造函数使用this()方法,如果有参数则将参数传入,如this(参数1,参数2……)
五、析构函数(用于资源释放)
- 析构函数不能有访问修饰符
- 不带有参数
- 一个类只有一个析构函数
- 无法继承和重载
- 无法调用析构函数
- 无法预知何时被调用
~Car() //与类名称相同
{
system.console.writeLine("析构函数被调用了!");
}
六、分部类型和分部方法--修饰符:partial
将一个类型或方法拆分到两个或多个源文件中,没个源文件中只包含类型定义的一部分。类,结构,接口,方法都可以拆分
当处理大型项目时,把一个类分布于多个独立的文件中让多位程序员同时对该类型进行处理。
分部类:
File1.cs
namespace ProgrammingCSharp4
{
partial class A
{
void Test1(){}
}
}
File2.cs
namespace programmingCSharp4
{
partial class A
{
void Test2(){}
}
}
上面两个File1.cs,File2.cs等价于:
namespace programmingCSharp4
{
class A
{
void Test1(){}
void Test2(){}
}
}