您的位置:首页 > 其它

面向对象基础<一>

2012-09-02 19:45 232 查看
面向对象

1.三大特征:封装(方法/属性/类/程序集)、继承、多态

类:类是建筑图纸,对象就是按照图纸新建的房子或者说类就是模版,对象就是具体的事物

3.先抽象(类)再具体(对象)

4.类是告诉CLR开辟多大内存空间的模版,只能定义成员变量、方法、属性,不能在类中直接写执行代码。

属性和字段的区别:字段是一个变量,属性是方法 。

程序集加载:

Dog.cs硬盘里的文件,文件里其实本质就是字符串而已--->CLR加载硬盘里的.cs文件,按照c#语法编译成一个新的文件(程序集)-->Dog.exe程序集(MSIL中间语言)-->JIT将IL转成二进制机器码-->交给CPU运行



类的加载:把类从中间代码里面直接加载到内存里面,但加载的不是代码 它是按照语法把中间代码的内容放到type对象里面。



4.类的成员存储在堆中 局部变量在栈中(方法表执行是是加载到栈执行的,所以局部变量在栈中),类成员变量不需要赋值也可以使用,局部变量需要赋值才可以使用

6.属性是为了外部访问私有字段提供访问规则而存在的。

7. 1构造函数由new关键字调用,构造函数不允许其他方法调用,还可以通过new ,或者this来调用构造函数

2如果类里没有用户定义的 构造函数,那么在编译的时候,编译器会自动添加一个无参的没有任何代码的 默认 构造函数。

3如果类里包含 用户定义的 任何一个 构造函数,那么 编译器都不会再为其添加默认构造函数了。

8. this当前对象的堆空间的地址 在类的内部使用this其实就是访问类的当前对象。

this在哪个对象里,就代表哪个对象本身。(反射调用方法方式除外) (简而言之就是:谁"点"出了方法,方法里的this就是谁)

类的修饰符只能是public、 internal

1.属性:本质就是为了某个类的成员变量提供了两个访问方法。

new子类对象的过程

1.会先创建子类对象,然后准备调用子类的构造函数

2.执行子类构造函数之前,会先创建对象,并执行父类构造函数

3.最后再执行子类构造函数

子类调用父类的构造函数:base();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: