面向对象基础复习(不完全版)
一、变量
可以放数据的容器。
定义:类型加变量名
例子:string s1, int i1, bool b
Int i2 = 5;
Int i2;
I2=5;
变量的名字不能重名(不严格)
//int i3 = 33;//定义一个变量i3,赋值为33
i3 = 33;//为已有变量i3赋值为33
变量只能声明一次,但是可以多次使用。
int i1=5;int i1=6;不可以。但是int i1=5;i1=6;是 可以的。
二、常用基本数据类型
- string、int 、char 、bool long等。bool的取值:true、false。int的表示范围。long有多long
字符串的声明
String name = “to\”m” 把转义符后面的引号当成普通的字符
Console.WriteLine(name);
“n ”示回车换行
“\\” 表示自己转义自己。
- 简单的类型转换:Convert.ToString()、ToString()、Convert.ToInt32() 。即可用中间变量,也可以不用。int i = Convert.ToInt32(Console.ReadLine());
变量的命名
- 命名规则:第一个字符必须是字母或者下划线(_),其后的字符可以是任意个数字、字母、下划线。不能全部使用C#的关键字,比如class、namespace、new、void等。判断方式:VS中亮蓝色的就是关键字。
- 变量在声明后才能使用
- 变量的声明:int i;int x,y;int i=3;变量使用之前必须赋值。
循环
If…..else…
Swich---case….
While…
Do…while,,,
For
Break;
Continue;
For……
枚举 和Class平级 用法
Dir d1 = dir.south;
Enum Dir {south, north, west, east}
数组(重点)
//int[] nums = { 3, 9, 0};
//int[] nums1 = new int[3];//只?是º?声¦¨´明¡Â数ºy组Á¨¦,ê?没?有®D赋3值¦Ì。¡ê
//int i3 = nums[3];//取¨?序¨°号?为a3的Ì?元a素?,ê?注Á¡é意°a序¨°号?从䨮0开a始º?。¡ê
//Console.WriteLine(i3);
//string[] str = { "3", "a", "8", "haha" };
//for (int i = 0; i < str.Length; i++)
//{
// Console.WriteLine(str[i]);
//}
//Console.WriteLine("========================");
//for (int i = 0; i < str.Length / 2; i++)
//{
// string temp = str[i];
// str[i] = str[str.Length - 1 - i];
// str[str.Length - 1 - i] = temp;
//}
//for (int i = 0; i < str.Length; i++)
//{
// Console.WriteLine(str[i]);
//}
string[] names = { "tom", "jerry", "haha" };
foreach (string str in names)
{
Console.WriteLine(str);
}
Console.ReadKey();
函数:
1读取输入的整数,定义成函数,多次调用
2.函数如果没有返回值则标记返回类型为void
3.return 语句 导致函数立即返回 如果是void 直接return。
重载:
可变参数:
static void Main(string[] args)
{
int j = Max(3, 5, 2, 97, 1);
Console.WriteLine(j);
}
//个?数ºy不?确¨¡¤定¡§的Ì?可¨¦变À?参?数ºy以°?数ºy组Á¨¦的Ì?形?式º?传ä?递ÌY
static int Max(params int[] values)
{
int max = 0;
foreach (int value in values)
{
if (value > max)
{
max = value;
}
}
return max;
}
Ref…… out
Ref 表示传递变量的引用
static void Main(string[] args)
{
int i1 = 10;
int i2 = 20;
DotIt(ref i1, ref i2);
Console.WriteLine("i1={0},i2={1}", i1,i2);
Console.ReadKey();
}
static void DotIt(ref int i1, ref int i2)
{
int temp = i1;
i1 = i2;
i2 = temp;
}
变量的作用域:
出了大括号就不认识了。
面向对象:
类: 人 int 类的定义中只能定义字段、方法等,不能直接写代码。
对象: 张三, 10。(实例)
对象之间的差异用叫做字段。描述对象特点的数据。
方法:就是类能执行的动作。
继承:类之间可以有继承关系。
面向对象的三个特性:封装,继承,多态。
成员访问级别:
Public
Private 字段一般都是private.
对象的引用:(重点)
构造函数:
//构1造¨¬函¡¥数ºy没?有®D返¤¦Ì回?值¦Ì,ê?方¤?法¤¡§名?和¨ª类¤¨¤名?一°?致?。¡ê
//当Ì¡À对?象¨®被À?创ä¡ä建¡§那?一°?刻¨¬(ê¡§new)ê?构1造¨¬函¡¥数ºy被À?执¡ä行D。¡ê
如果不指定构造函数,则类有一个默认的无参的构造函数
如果指定了构造函数,则不再有默认的无参构造函数。
如果需要无参构造函数,则需要自己来写。
继承:定义类的时候不指定父类,则父类是Object类。Object类是任何类的直接或者间接父类。所有类都是Object的子类。
Base:
15
异常:
Try..catch…
Try…finally…最后才执行。。
常量:
Canst double pi = 3.14;
静态变量: 引用静态成员的时候直接”类名。成员名”即可。
Static 成员不能直接调用非static成员。
Public static int F1;
静态类中不能声明非静态成员。静态类不能NEW
密闭类:
Sealed class b
{
//sealed密闭类不能被继承,
}
递归:
自己调用自己。
程序集:
//类如果没有标记public 或者internal, 则默认是 internal.
子类不能比父类的访问级别高。
一个程序集外部能够访问的方法不能返回一个internal类的对象、及时返回外部也用不了。
委托:
希望能够调用一个函数,但是写程序的时候不用知道调用的是哪个函数
只要能传参数,取返回值就可以。
委托的方式:
Delegate返回值类型,委托类型名(参数)。和类同级。
委托时类型,事件是对象,用委托的方法实现事件。