类的修饰符:public internal(默认的访问修饰符)
Public :所有地方都可以访问
Internal:只能在程序集中访问(程序集指的是.net平台编译的dll 或exe文件叫做程序集
.net编译原理:源代码(cs文件)-------编译(可在控制台用csc来手动编译)----------运行这个程序集的时候,.net平台中的CLR(公共语言运行时)的JIT(即时编译器)会将程序集翻译成CPU指令(二进制代码)
类里面的成员:1、字段 2属性 3方法 4构造函数…
执行代码只能写在方法中.
对象是根据类的模版创建的
同一个类的多个对象之间没有一丝关系,唯一的关系就是他们都是根据同一个模版创建出来的
类的成员访问修饰符:private public’ protected internal
对象创建过程:
Person P =new Person();
1、 在栈空间开辟一个变量空间p
2、 New关键字做了以下事情
2.1在堆里面开辟合适大小的空间
2.2 创建对象
2.3调用对象的构造函数
2.4返回地址给变量
继承
构造函数能被继承,但可以调用
子类构造函数默认会调用父类的无参数的构造函数,如果父类没有无参数的构造函数,那么要为子类的构造函数指定调用父类的构造函数base()
创建子类对象的时候,开辟内存来存储本类和父类的所有成员(包括私有的)
值类型(值类型的值是直接存在栈里面的变量)(数值类型、bool、char、enum、struct)
Int i=11;
Int j=i;
j=12;
最终i=11,j=12
引用类型(栈里面的变量存的是堆空间对象的地址)(string、class、数组)
Person p1=new Person();
P1.Age=17;
Person p2=p1;
P2.Age=19;
最终p1和p2的Age均为19
传值的时候,值类型传递的是指的一个副本 1个拷贝,对值得修改不会影响原来的值,引用类型传的是地址
继承
子类和父类同名成员会覆盖父类的成员,如果想显示覆盖用new关键字 public new void sayHi()