类和对象
1.局部变量和成员变量
局部变量的作用域仅限于定义他的方法,系统不会给它赋予初始值;
成员变量的作用与在整个类内部,系统会给它赋初始值;
2.静态
1)静态变量在内存中只有一个内存空间,在加载类的过程中完成静态变量的内存分配;
每创建一个新的实例对象,就会为实例变量分配不同的内存;
2)静态变量可以直接通过类名了访问,实例变量需要通过各个对象访问;
3)创建多个对象时,用static修饰的变量共享一个内存空间;没有用static修饰的变量不共享内存空间;
静态方法和实例方法两者的区别:
1)静态方法只能访问静态变量;实例方法既可以访问实例变量,也可以访问静态变量;
2)静态方法在Main方法中可以直接使用;实例方法在Main方法中必须通过对象调用;
3.构造方法
定义:方法名称和类名一致的方法,没有任何返回类型,并且也没有void;
特征:如果没有构造方法,系统会默认一个无参的构造方法,方法里面是空的,如果写了会覆盖系统默认的构造方法;
作用:初始化成员变量;
4.方法的重载
定义:在同一作用域中,有多个方法的方法名相同,但是参数列表不同(参数列表不同包括:参数的个数、类型、顺序);
5.对象的引用
class Test
{
int a=1;
void Get(){
Console.WriteLine(a);
} }
static void Main(string[] args)
{
Test t = new Test();
t.a = 2;//第一种引用
Test t2 = t;//第二种引用
}
数组
定义:数据类型[] 变量名=new 数据类型[大小];
访问:a[i] i:下标(从0开始);
静态数组:int[] x={1,2,3,4,5};
排序:
1.冒泡排序:
for (int i = 0; i < 10; i++)
{
for (int j = i; j < 10; j++)
{
if (a[i]<a[j])
{
int b = a[i];
a[i] = a[j];
a[j] = b;
}
}
}
2.插入排序:
int[] a = { 10, 25, 3, 4, 35 };
int[] b = new int[a.Length + 1];
int x = 12,y=0;
Array.Sort(a);
for (int i = 0; i < a.Length; i++)
{
b[i] = a[i];
}
foreach (var item in b)
{
Console.WriteLine(item);
}
for (int i = 0; i < a.Length; i++)
{
if (x<a[i])
{
y = i;
break;
}
}
for (int i = b.Length-1; i > y; i--)
{
b[i] = b[i - 1];
}
b[y] = 12;
foreach (var item in b)
{
Console.WriteLine(item);
}
1,先把原数组排好序;
2.定义一个比原数组长度值大一的数组;
3.把原数组的值赋给新数组;
4.找到第一个比要插入数值大的数的位置(i);
5.把数值中的数值从i开始向后移一位(先移后面的);
6.把要插入的数值放到i位置;