1. 类
1.1 定义类
Class 类名
{
// 类的实现
// 成员变量、成员函数等
}
1.2 构造函数
默认的构造函数是不带参数的
Person *p = new Person();
我们可以复写父类的构造方法,以达到我们自己的目的,传递参数等:
using System;
namespace Test
{
class Person
{
public string userName; // 用户名
public Person(string name)
{
Console.WriteLine("对象已创建,name = {0}", name);
userName = name;
}
}
class Program
{
static void Main(string[] args)
{
Person p = new Person("张三");
Console.WriteLine("Person: {0}", p.userName);
}
}
}
打印如下:
对象已创建,name = 张三
Person: 张三
Press any key to continue...
1.2 析构函数
这里了解一下析构函数的概念。
// 析构函数
~Person ()
{
Console.WriteLine("对象已删除");
}
在对象被释放后会执行析构函数。
1.3 静态成员
static 关键字修饰静态成员。
注意:当我们声明一个类成员为静态时,意味着无论有多少个类的对象被创建,只会有一个该静态成员的副本。
关键字 static 意味着类中只有一个该成员的实例。
以下这个程序可以让我们更好的理解什么是静态变量:
using System;
namespace Test
{
class StaticVar
{
public static int num;
public void cout()
{
num++;
}
public int getNum()
{
return num;
}
}
class Program
{
static void Main(string[] args)
{
StaticVar v1 = new StaticVar();
StaticVar v2 = new StaticVar();
StaticVar v3 = new StaticVar();
v1.cout();
v2.cout();
v3.cout();
Console.WriteLine("v1 num: {0}", v1.getNum());
Console.WriteLine("v2 num: {0}", v2.getNum());
Console.WriteLine("v3 num: {0}", v3.getNum());
}
}
}
打印如下:
v1 num: 3
v2 num: 3
v3 num: 3
Press any key to continue...
也就是说,静态变量是类所属的,对象也只是引用,该变量只有一个。
2.继承和多态
“子类和父类”,“基类和派生类”这种关系。
2.1 继承的定义
class 子类 : 父类
{
}
2.2 理解继承和多态
这里有一个例子:
using System;
namespace Test
{
class Car
{
public string brand; // 品牌
public string model; // 型号
// 定义一个run方法。注意C# 中方法名首字母大写。注意这里的virtual。
public virtual void Run()
{
Console.WriteLine("the car is runing !");
}
}
class Bicycle : Car // 自行车继承于Car
{
// 复写父类方法,父类方法使用virtual修饰,所以这里不会报警告,否则会。
public override void Run()
{
base.Run(); // 调用父类方法,也可以不调用,这个根据业务逻辑。
Console.WriteLine("right, bicycle is runing !");
}
}
class Program
{
static void Main(string[] args)
{
Bicycle b = new Bicycle();
b.Run();
}
}
}
打印如下:
the car is runing !
right, bicycle is runing !
Press any key to continue...
Bicycle继承于Car,继承了父类的方法Run(),并通过重写这个方法,表现出不同形式,这就是多态。
Bicycle能继承父类的public的变量、方法。