C#总复习

1.new关键字

Person zsPerson=new Person();

A、new帮助我们做了3件事儿:

1)、在内存中开辟一块空间。2)、在开辟的空间中创建对象。3)、调用对象的构造函数进行初始化对象

B、隐藏从父类那里继承过来的成员

2.访问修饰符

public:公开的公共的,在哪都能访问。

private:私有的,只能在当前类的内部进行访问,出了这个类就访问不到了。

protected:可以在当前类的内部以及该类的子类中访问。

internal:在当前项目中都可以访问

protected internal:

能够修饰类的访问修饰符只有两个:public和internal

子类的访问权限不能高于父类

3.常用的关键字

this:a.当前类的对象,b.调用自己的构造函数

base:调用父类的成员

new:a.创建对象,b.隐藏父类的成员

virtual:标记一个方法是虚方法

abstract:抽象,抽象成员必须包含在抽象类中,但是抽象类中并不一定都是抽象成员。

static:静态,静态类中一定都是静态成员,而静态成员并不一定都要在静态类中

override:重写

interface:接口

partial:部分类

sealed:密封类,不允许被继承

return:a.在方法中返回值,b.立即结束本次方法

break:跳出当前循环

continue:结束本次循环,回到当前条件,进行判断

struct:结构

enum:枚举

const:常量

3、关于虚方法需要注意的几点:

1).父类中如果有方法需要让子类重写,则可以将该方法标记为virtual

2).虚方法在父类中必须有实现,哪怕是空实现。

3).虚方法子类可以重写(override),也可以不重写

4、关于抽象方法注意的几点:

1).需要用abstract关键字标记

2).抽象方法不能有任何方法实现。

3).抽象成员必须包含在抽象类中。

4).由于抽象成员没有任何实现,所以子类必须将抽象成员重写。

5).抽象类不能实例化, 抽象类的作用:抽象类的作用就是为了让子类继承。

6).抽象类中可以包括抽象成员,可以包括有具体代码的成员。

7). 还有抽象方法不能用static修饰

 5、接口

1).接口中只能包含方法(属性、事件、索引器也都是方法)

2).接口中的成员都不能有任何实现。光说不做

3).接口不能被实例化。

4).接口中的成员不能有任何访问修饰符。(默认为public)

5).实现接口的子类必须将接口中的所有成员全都实现。

6).子类实现接口的方法时,不需要任何关键字,直接实现即可。

7).接口存在的意义就是为了多态。

6、静态与非静态的区别(static)

a.静态类里面必须是静态方法,静态方法里面必须是静态成员。非静态类里面可以有实例方法,非静态方法里面可以有实例成员。

b.静态方法需要用类名调用,非静态方法需要用对象调用。

7、结构和类的区别:

a.从类型上看:结构---值类型(栈)      类---引用类型(堆)

b.从声明的语法上看:结构---struct      类---class

c.在类中,构造函数里,既可以给字段赋值,也可以给属性赋值,构造函数是可以重载的。

但是,在结构的构造函数当中,必须只能给字段赋值,而且需要给全部的字段赋值,而不能选择性的给字段赋值。

结构和类的构造函数:

相同点:本身都会有一个默认的无参数的构造函数

不同点:当你在类中写了一个新的构造函数之后,那个默认无参数的构造函数就没有了。

但是,在结构中写了一个新的构造函数之后,那个默认无参数的构造函数依然在

如果我们只是单纯的存储数据的话,我们推荐使用结构,结构并不具备面向对象的特征(封装,继承,多态)

 

posted @ 2015-11-14 10:35  菜鸟,你好  阅读(314)  评论(0编辑  收藏  举报