类定义了每个类对象(称为实例)可以包含什么数据和功能。
类具有数据成员和成员函数两种成员,类成员分为公开的(public)和私有的(private)两类。外界不能访问一个对象的私有部分。
格式:
类的修饰符 class 类名{
类的成员(字段、属性、方法)
}
类的修饰符 class 类名:父类名 //只能是一个
类的修饰符 class 类名:父类名 /*只能是一个,可以没有*/,接口名/*可以是多个*/
类的修饰符:
public 可以在任何地方访问
internal 只能在当前项目中访问(默认:internal)
abstract 抽象类,只能被继承
sealed 不能被继承
类中的数据和函数称为类的成员。
访问权限修饰符:
public 成员可以由任何代码访问
private 成员只能由类中的代码访问(默认:private)
protected 成员只能由类中的代码或者子类中的代码访问
internal 成员只能由项目中的代码访问
1.字段
字段是与类相关的变量。
访问权限修饰符 字段修饰符 字段类型 字段名;
字段的修饰符:readonly static
2.属性
属性的定义与字段类似,但是它还可以包含访问器:get块(读取属性的值)和set块(设置属性的值)
属性修饰符:abstract virtual override
例:
private int x;
public int X{
set{
x=value;
}
get{
return x;
}
}
1)类外的代码不能直接访问private字段,必须通过属性来访问(封装)
2)可以在访问器中添加代码,例如使用set访问器时先判断赋值是否合法
3)可以只有set块或者get块,实现字段的只读或者只写
4)访问器可以有自己的可访问性
3.自动属性
例如:
public int X {get;set;}
public int X{get;}=9; //自动属性可以只读,不能只写
4.函数成员(成员方法)
函数成员提供了操作类中数据的某些功能,包括方法、构造函数和析构函数等。在 C#中,每个函数都必须与类或结构相关。
访问权限修饰符 方法修饰符 返回值类型 方法名(参数列表)
{方法体;}
方法修饰符:
static abstract virtual override extern
成员方法的重载
类名 对象名;
对象名=new 类名([参数表]);
类名 对象名=new 类名([参数表])