1、类(class):现实世界实物的模型
类是对现实世界事物进行抽象所得到的结果
- 事物包括物质(实体)与运动(逻辑)
- 建模是一个去伪存真,由表及里的过程
以飞机与飞行员举例 将飞机于飞行员抽象为类,其中有各自的方法,而飞行员又依赖于飞机。
2、类与对象的关系
(1)对象也叫实例,是类经过“实例化”后得到的内存中的实体
(2)依照类可以创建对象,这就是“实例化”
- 现实世界中常称“对象”,程序世界中常称“实例”
- 对象与实例并无太大差别,常常混用,初学者不必迷惑
(3)使用new操作符创建类的实例
首先添加windows.form类库
代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
(new Form()).ShowDialog();
}
}
}
运行结果
(4)引用变量与实例的关系
在上例中如果我们想给窗口附上一个名字,可能会想到如下代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
(new Form()).Text="My Form";
(new Form()).ShowDialog();
}
}
}
但运行出来后并没有名字,是因为显示出来的是一个新的窗口,并不是之前赋名字的窗口.这种情况下就需要用到引用变量.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
Form myform;
myform = new Form();
myform.Text = "My Form";
myform.ShowDialog();
}
}
}
运行结果
这里的myform就属于一个引用变量,可多次使用.
- 引用变量与实例就相当于孩子与气球 (1)气球不一定有孩子牵着 (2)多个孩子可以使用各自的绳子牵着同一个气球,也可以通过同一根绳子牵着气球
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
Form myform1;
Form myform2;
myform1 = new Form();
myform2 = myform1;
myform1.Text = "My Form";
myform2.ShowDialog();
}
}
}
同一根绳子牵着气球的情况会在之后的Ref讲到
3、类的三大成员
(1)属性(property)
- 存储数据,组合起来表示类或对象当前的状态
(2)方法(method)
- 由c语言中的函数(function)进化而来,表示类或对象"能干什么"
- 工作中90%的时间是在与方法打交道,因为他是"真正做事,构成逻辑"的成员
(3)事件(event)
- 类或对象通知其他类或对象的机制,为c#所特有
- 善用事件机制非常重要
(4)某些特殊类或对象在成员方面侧重点不同
- 模型类或对象重在属性,如Entity Framework
- 工具类过对象重在方法,如Math,Console
- 通知类或对象重在事件,如各种Timer
4、静态成员和实例成员
-
静态(static)成员在语义上表示它是"类的成员" 比如人类的总数,削减,增加;而不能说具体一个人的总数
-
实例(非静态)成员在语义上表示它是"对象的成员"
-
绑定(binding)指的是编译器如何把一个成员与类或对象关联起来 .成员访问操作符