一、类:
- 对现实生活中的事物的行为,特征的描述,分类.比如:人类,人具有姓名,国籍,年龄,性别特征,吃饭,睡觉的行为.特征可以理解为属性,特征理解为方法.
- 定义类的关键字:Class
- 定义类的规范:访问修饰符 Class 类名 {类的成员(方法,属性,字段,事件)}
- 访问修饰符:
Public:公共修饰符,无访问限制.
Private:私有修饰符,在类的内部可以访问.
Internal: 内置修饰符,在同一项目里可以访问.
Protected:受保护的修饰符,类的内部和继承该类的子类可以访问.
Protected Internal:内部保护访问,限于本项目内或子类访问.
- 类的访问修饰符默认是public.类的成员默认修饰符private.
- 类可以定位static静态类,但类的成员都要定义为static静态的.
- 实例化类:类名 对象名 =new 类名();
代码:
class A
{
public string Name { get; set; }
public bool Sex { get; set; }
public string Age { get; set; }
public string Country { get; set; }
public string Eat(string Name)
{
switch (strCountry)
{
case "小明":
return "在吃饭";
case "小红":
return "爱吃中餐";
default:return "在睡觉";
}
}
}
二,接口
接口关键字:Interface
1、一个接口就相当于一个抽象类,但是它不能包含任何实现方法。
2、接口的每种方法都必须在派生类中实现。
3、接口有时候可以看成是类的模具,它指明一个类该提供哪些内容。
4、接口主体只限于方法、索引器、属性的声明。
5、接口中不能包含字段、构造函数和常量等。
6、接口成员是隐式公开的,如果对其显式指定访问级别,就会出现编译器错误。
7、在接口中不能实现任何方法,属性或者索引器。
8、在指定方法时,只需给出返回类型、名称和参数列表,然后以分号结束。
9、实现接口的语法与实现继承一样,都用冒号“:”
class Program { static void Main(string[] args) { XiaoHong xiaoHong = new XiaoHong(); XiaoMing xiaoMing = new XiaoMing(); xiaoHong.YouDian(); xiaoMing.YouDian(); Console.ReadKey(); } } interface IPerson { void YouDian(); } class XiaoHong : IPerson { public void YouDian() { Console.WriteLine("我会跳舞"); } } class XiaoMing : IPerson { public void YouDian() { Console.WriteLine("我学习好"); } }
三,抽象类
什么是抽象类:不能被实例化的类称为抽象类,抽象类是派生类的基类。
关键字:abstract
1、一个抽象类可以同时包含抽象方法和非抽象方法。
2、抽象方法只在派生类中真正实现,这表明抽象方法只存放函数原型,不涉及主体代码,
3、派生自抽象类的类需要实现其基类的抽象方法,才能实例化对象。
4、使用override关键子可在派生类中实现抽象方法,经override声明重写的方法称为重写基类方法,其签名必须与override方法的签名相同。
class Program { static void Main(string[] args) { XiaoHong xiaoHong = new XiaoHong(); XiaoMing xiaoMing = new XiaoMing(); xiaoHong.YouDian(); xiaoMing.YouDian(); Console.ReadKey(); } } abstract class IPerson { public abstract void YouDian(); } class XiaoHong : IPerson { public override void YouDian() { Console.WriteLine("我会跳舞"); } } class XiaoMing : IPerson { public override void YouDian() { Console.WriteLine("我学习好"); } }
四,结构
结构是使用关键字struct定义的,是值类型数据结构。它用来表示一个记录。如果你想要知道你自己的总成绩,那么你就要知道你每门的成绩,就可以以下面的形式来定义Score结构。
//结构
struct Score
{
//结构不能初始化值
public int score_Id;
public string course;
public float grade;
}