内容纲要

类中额可以有哪几类成员?

1.public 2.pravite 3.protected

何时应当将一个字段声明为私有?

1.在不希望被人直接访问修改的时候

构造器何时被调用以及用途

构造函数随着类的实例化而被调用,构造函数的主要用途是初始化类的成员

随着类被释放,会执行析构函数,清理掉剩余内存占用

const和readonly 有什么区别和联系

const对象被声明的时候就必须被赋值,并且不可再次改变,编译时被加载入内存(const对象在编译后,会被替换成一个十六进制数字存储在代码段),readonly被声明的时候可以不赋值,可以用构造函数赋值,同样在运行时只能被赋值一次复制后不可更改,在类实例化的时候才会存在(程序运行是加载)。他们的共同点就是都是只读变量

static方法和非static方法在使用上有何区别

static方法无法直接引用非静态成员属性和函数,static方法随程序加载就存在于代码段,被创建后始终使用同一块内存,他是随着类的加载而就存在,正因为如此所以他无法引用非静态成员,还可以直接用类名.staic方法直接调用

非static方法可以直接访问所有成员变量,他是随着类的实例化(new)后而存在,对象被回收后也随之回收。

static字段和非static字段在内存上有什么区别?

static字段随着类的加载(程序的加载)就存在内存中,存在数据段,有固定内存,是个共用属性无论几个对象调用每次操作的都是同一个地址,非static字段随着类被实例化而加载

new一个对象分配的空间是否包括所在类的static字段的空间?

不会,static字段在类被加载的时候就在数据段了,有自己的固定地址,new只会给非static对象分配空间

单件模式原理

单件模式的原理就是私有化构造函数,提供一个公共实例化函数来给大家访问,该函数会判断是否有被实例化过的对象,如果没有的话new一个对象,如果已经new过了就不在new了,返回当前对象 但是在每个语言里面是不一样的,单例模式主要是保证在运行过程中全局只有有一个这个对象!

3 对 “类与对象自测上(理论部分)”的想法;

发表评论