一、面向对象的思想主要包括什么?并对每项作简要说明。
面向对象的思想主要包括:封装、继承、多态
1.封装:用抽象的数据类型将数据和数据的操作封装在一起,数据被保护在抽象数据类型内部。(封装性是指将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在其内部。如果需要存取数据,可以通过对象提供的算法来进行操作,而无需知道对象内部的数据是如何表示和存储的。)
2.继承:子类拥有父类的所有数据和操作,并且子类有独自特征。(性继承性是指一种事物保留了另一种事物的全部特征,并且具有自身的独有特征。)
3.多态:一个程序中同名的不同方法共存的情况。有两种表现形式:重载与重写。(多态性是指当多种事物继承自一种事物时,同一种操作在它们之间表现出不同的行为。)
二、C#中的委托是什么?事件是不是一种委托?
C#中委托是一种在对象里保存方法引用的类型,同时也是一种类型安全的函数指针。
事件是一种特殊的委托。
public event EventHandler Click;
说明 Click事件是一个委托
PageLoad里:Button1.Click+=new EventHandler(Button1_Click);
定义Button1的事件 protected Button1_Click(object sender,EventArgs e){}
这是一个很典型的委托调用。
三、一列数的规则如下:1、1、2、5、8、13、21、34……求第30位数是多少,用递归算法实现。
public int shuzi(int i)
{
int sum = 0;
if (i <= 0)
{
sum = 0;
}
else if (i == 1 || i == 2)
{
sum = 1;
}
else
{
sum = shuzi(i - 1) + shuzi(i - 2);
}
return sum;
}
static void Main(string[] args)
{
Program pg = new Program();
Console.Write("请输入数字:");
int shuzi = int.Parse(Console.ReadLine());
int zongshu = pg.shuzi(shuzi);
Console.Write("第" + shuzi + "个数的数字是:" + zongshu);
Console.ReadLine();
}
四、SQL行转列问题
数据库列表:
处理后效果:
Select name,
Sum(Case course when ‘语文’ then score end) as ‘语文’,
Sum(Case course when ‘数学’ then score end) as ‘数学’,
Sum(Case course when ‘英语’ then score end) as ‘英语’
From grade group by name
五、冒泡排序
static void Main(string[] args)
{
int[] array = new int[5]{2,1,3,4,5};
for (int i = 0; i < array.Length; i++)
{
for (int j = i + 1; j < array.Length; j++)
{
if (array[j] < array[i])
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
foreach (int n in array)
Console.WriteLine(n);
Console.ReadLine();
}
六、简述PRIVATE、PROTECTED、PUBLIC、INTERNAL修饰符的访问权限
1.public共有权限:public具有最高访问级别,任何它的对象或者其他的类都能对public关键字所修饰的类或类成员进行访问。(所有的都能访问。)
2.private私有权限:private具有最低的访问级别,它能够保证类和类成员的安全,却限制了其他类或对象对它的访问。私有成员只有在声明他们的类之后才能访问。(在类的内部才可以访问。)
3.protected保护权限:protected具有保护类中字段的功能,能够保证类和类成员的安全性,也能够限制其他类或对象对它的访问。但是与private不同的是,protected能够在类和类的的派生类中使用,比private具有更高的访问级别,又比public拥有更低的访问级别,保证了类的安全性。(在类的内部和继承类中可以访问。)
4.internal程序集保护权限:internal修饰的类或类成员只有在同一程序集的文件中内部类型或成员才可以访问。(在同一个命名空间内可以访问。)
七、列举ASP.NET页面之间传递值的几种方式。
1.QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。
2.Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。
3.Session其操作与Application类似,作用于用户个人,过量的存储会导致服务器内存资源的耗尽。
4.Cookie与Session一样,其实针对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。
5.Server.Transfer这个才可以说是面象对象开发所使用的方法,其使用方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。
七、什么是装箱,什么是拆箱?
1.装箱就是把值类型转换成引用类型
2.拆箱就是把应用类型转换成值类型