- 对象:对象就是OOP应用程序的一个组成部分。这个组成部分封装了部分应用程序,这部分应用程序可以是一个过程、一些数据或一些更抽象的实体。
- 类:对象的类型在OOP中有一个特殊的名称:类。可以使用类的定义实例化对象,这标识创建该类的一个实例。
- “类的实例”和对象含义相同,注意“类”和“对象”是完全不同的概念。
- 属性和字段:http://www.cnblogs.com/David-Huang/archive/2012/07/23/2604473.html
- 一切皆对象:实际上,C#和.Net Framework中的所有东西都是对象。控制台应用程序中的Main()函数就是类的一个方法。每个变量类型都是一个类。每个命令都是一个属性或方法,例如,<String>.Length和<String>.ToUpper()等。句点字符把对象实例名和属性或方法名分隔开来,方法名后面的()把方法与属性区分开来。
- 构造函数:所有的类定义都至少包含一个构造函数。在这些构造函数中,可能有一个默认的构造函数,该函数没有参数,与类同名。类定义还可能包含几个带有参数的构造函数,称为非默认的构造函数。代码可以使用他们以许多方式实例化对象,例如给存储在对象中的数据提供初始值。
- 静态成员可以在类的实例之间共享,所以可以将他们看作是类的全局对象。
- 静态构造函数:静态构造函数用于初始化任何数据,或用于执行只需执行一次的特定操作。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数。 (http://msdn.microsoft.com/zh-cn/library/k9x6w0hc(VS.80).aspx)
- 接口:接口是把公共实例(非静态)方法和属性组合起来,以封装特定功能的一个集合。一旦定义了接口,就可以在类中实现它。这样,类就可以支持接口所指定的所有属性和成员。(注解:C#接口定义的就是一种约定,使得实现接口的类或结构在形式上保持一致,让用户和其他开发人员更容易理解其他人的代码。可以把接口看作类的创建者和使用者之间的契约。)详细见:http://www.cnblogs.com/David-Huang/archive/2012/07/23/2604897.html
- 虚拟成员不能是私有成员,因为这样会自相矛盾——不能说成员可以由派生类重写,同时派生类又不能访问它。
- 抽象类:抽象类也不能直接实例化,要使用抽象类,必须继承这个类。抽象类可以包含抽象成员也可以有非抽象成员。
- 抽象类和接口的区别:http://www.cnblogs.com/David-Huang/archive/2012/07/23/2605069.html
- 多态性:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。http://www.cnblogs.com/Bear-Study-Hard/archive/2006/09/06/496366.html
- 运算符重载、事件:13章
- 结构类型和类的重要区别是,结构类型是值类型。
-
namespace test1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
((Button)sender).Text = "clicked";
Button newButton = new Button();
newButton.Text = "newButton";
newButton.Click += new EventHandler(newButton_Click);
Controls.Add(newButton);
}
private void newButton_Click(object sender, EventArgs e)
{
((Button)sender).Text = "clicked";
}
}
}
习题:https://files.cnblogs.com/David-Huang/C08.zip