8yue24
String 特殊的引用类型(类)
string 是一个封闭的类,不可以继承
本质上是一个char类型的一维数组
字符串修改操作时 都会开辟一个新的空间
String 字符串方法
ComparoTo 比较字符串大小
EndWith 是否以什么字符串结束 StartWith 以什么开始 返回值bool
Equals 两个字符串是否相同 返回值bool
StringBuilder类
StringBuilder有两个主要的属性:
· Length 指定字符串的实际长度
· Capacity 指定字符串在分配的内存中的最大长度
装箱与拆箱
装箱:把值类型转换成引用类型
拆箱:把引用类型转换成值类型
重载 (属于多态的表现方式之一)
方法重载实际上是方法名重载,即支持多个不同的方法采用同一名字
访问修饰符变化也没关系,也同样是重载。
实现方法的重载
1、方法名必须相同
2、参数必须不同
参数列表中对应类型不同,或者个数不同
方法重载只跟参数有关,跟返回值无关
递归 (如果要进行多次或不确定次数的操作,行为相同)
方法实现体内再次调用方法本身,通过出口在返回出来,必须要有出口
递归的条件:
1、有反复执行的过程(调用自身)
2、有跳出反复执行过程的条件(函数出口)
递归解决的问题:
(1)数据的定义是按递归定义的。(Fibonacci函数,n的阶乘)
(2)问题解法按递归实现
(3)数据的结构形式是三递归定义的。(二叉树的遍历,图的搜索)
注:递归函数的每次调用都需要栈来存储,如果次数太多的话容易造成栈溢出。
阶乘 : 一层一层往里执行,到出口之后 又返回 回来
http://www.jb51.net/article/32848.htm (递归方法详解)
递归题目
吃桃子问题
public int tao(int day)
{if (day == 7)
{return 1;
}
int sum = (tao(day + 1)+1)*2;
return sum;
}
阶乘(factorial)
public int fac(int a){
if (a == 1) {
return 1;
}
int f = a * fac (a - 1);
return f;
}
递归九九乘法表
public static void multiplication(int a){
if (a == 1) {
Console.Write ("1*1=1");
} else {
multiplication (a - 1);
for (int i = 1; i <= a; i++) {
Console.Write (a + "*" + i + "=" + (a * i) + " ");
}
}
Console.WriteLine ();
}
Fibonacci数列