1.面向对象基本概念
l概念:面向对象(object-oriented ;简称:oo) 至今还没有统一的概念,我这里把它定义为:
按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法。
l
-
l
即指现实世界中各种各样的实体。
它可以指具体的事物也可以指抽象的事物。
如:整数1、2、3、流氓陈水扁、苹果、飞机、规则、法律、法规、表单等等。
每个对象皆有自己的内部状态和运动规律,
如流氓陈水扁具有名字、身高、体重等内部状态,
具有吃饭、睡觉、打人、偷税、漏税等运动规律。
在面向对象概念中我们把对象的内部状态称为属性、运动规律成为方法或事件。
-
l
类是具有相似内部状态和运动规律的实体的集合(或统称、抽象)。
l类的概念来自于人们认识自然、认识社会的过程。
l在这一程中,人们主要使用两种方法:由特殊到一般的归纳法和由一般到特殊的演绎法。
l在归纳的过程中,我们从一个个具体的事物中把共同的特征抽取出来,
l形成一个一般的概念,这就是"归类";
l如:昆虫、狮子、爬行动物,因为它们都能动所以归类为动物。
l在演绎的过程中我们又把同类的事物,根据不同的特征分成不同的小类,
l
如动物->猫科动物->猫->大花猫等。
对于一个具体的类,它有许多具体的个体,我们就管这些个体叫做"对象"。
类的内部状态是指类集合中对象的共同状态;
类的运动规律是指类集合中对象的共同运动规律。
如:博拉图对人作如下定义:人是没有毛能直立行走的动物。在博拉图的定义中"人"是一个类,具有"没有毛、直立行走"等一些区别于其它事物的共同特征;而张三、李四、王五、流氓等一个个具体的人,是"人"这个类的一个个"对象"。
这就是“分类”; 类(class):-
消息(Message):
消息是指对象间相互联系和相互作用的方式。 一个消息主要由5部分组成:发送消息的对象、接收消息的对象、消息传递办法、消息内容(参数)、反馈。如下图:
通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。
2.变量
格式:datatype 变量名称
(1)int i;
(2)赋值: i = 10;
(3)int i = 10;
(4)int x = 10, y =20;
(5)int x = 10, bool y = true; // 这是不符合语法规定的!必须分为两行。
3.常量
4.预定义类型
在声明和初始化变量时,在变量的前面加上关键字const。
常量是其值在使用过程中不会发生变化的变量: const int a = 100;
5.分支语句
(1)值类型:直接存储其值,存储在堆栈
转 义 序 列 | 字 符 |
\' | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
\0 | 空 |
\a | 警告 |
\b | 退格 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
(2)地址类型:存储对值的引用,存储在托管堆
名称 cts类
说 明
6.循环语句
(1)条件语句
statement(s)
else
statement(s)
如果在条件中要执行多个语句,就需要用花括号({ ... })把这些语句组合为一个块。
1 bool isZero;
2 if (i == 0)
3 {
4 isZero = true; Console.WriteLine("i is Zero");
5 }
6 else
7 {
8 isZero = false;
9 Console.WriteLine("i is Non-zero");
10 }
(2)分支语句
代码
1 //下面的switch语句测试integerA变量的值:
2 switch (integerA)
3 {
4 case 1:
5 Console.WriteLine("integerA =1");
6 break;
7 case 2:
8 Console.WriteLine("integerA =2");
9 break;
10 case 3:
11 Console.WriteLine("integerA =3");
12 break;
13 default:
14 Console.WriteLine("integerA is not 1,2, or 3");
15 break;
16 }
17
(3)循环语句
(1)For
代码
1 // This loop iterates through rows...
2 for (int i = 0; i < 100; i+=10)
3 {
4 // This loop iterates through columns...
5 for (int j = i; j < i + 10; j++)
6 {
7 Console.Write(" " + j);
8 }
9 Console.WriteLine();
10 }
11
(2)While
代码
1 while(condition)
2 statement(s);
3
4 (1)解决for循环的不足,在循环开始前,不知道重复执行一个语句或语句块的次数。如下面的例子所示。
5 bool condition = false;
6 while (!condition)
7 {
8 // This loop spins until the condition is true
9 DoSomeWork();
10 condition = CheckCondition(); // assume CheckCondition() returns a bool
11 }
12 (2) 所有的C#循环机制,包括while循环,如果只重复执行一条语句,而不是一个语句块,都可以省略花括号。许多程序员都认为最好在任何情况下都加上花括号。
13
(3)do...while
代码
1 do...while循环是while循环的后测试版本。该循环的测试条件要在执行完循环体之后执行。因此do...while循环适合于至少执行一次循环体的情况:
2
3 bool condition;
4 do
5 {
6 // this loop will at least execute once, even if Condition is false
7 MustBeCalledAtLeastOnce();
8 condition = CheckCondition();
9 } while (condition);
10
(4)foreach
foreach语句是c#中新增的循环机制,也是非常受欢迎的一种循环。
foreach (int temp in arrayOfInts)
{
Console.WriteLine(temp);
}
其中,foreach循环每次迭代数组中的一个元素。它把每个元素的值放在int型的变量temp中,然后执行一次循环迭代。
注意,不能改变集合中各项(上面的temp)的值,所以下面的代码不会编译:
foreach (int temp in arrayOfInts)
{
temp++;
Console.WriteLine(temp);
}
7.枚举
定义一个枚举:
public enum TimeOfDay
{
Morning,