第七章——复用类

1.将对象变成字符串类型有两种方式,一种是直接调用tostring方法,一种是用+“”


2.类中基本类型会被初始化为0,但对象引用会被初始化null


3.编译器并不会简单的为每一个引用都创建默认的对象,如果想初始化这些对象,可以在如下的地方执行:

a)在定义对象的地方。这意味着他们总是能够在构造器被调用之前初始化

b)在类的构造器中。

c)在正要使用对象之前,成为惰性初始化

d)使用实例初始化


4.final的使用:a.基本数据类型中使用final修饰表示该数据是一个常数,永远不能改变,并且必须要赋初值(可以是一个表达式),而如过是修饰一个句柄(即对象或数组),那

么只是不能再将该句柄指向其他的新对象,但可以改变对象的属性或数值。当用static和final同时修饰时该数据就是一个全局常数(一般采用大写)。无论是将其定义为static还

是定义为final,在编译期间都是不知道值的,只有在运行期(初始化)才知道。b.自变量用final修饰,如方法的参数被定为final,那么在方法内部不能改变该参数句柄所对应的对

象,只能读取它。c.方法被final修饰,理由一:不想让继承类来覆盖和改写该方法,防止继承类改变它本来的含义。理由二:会使代码的执行效率变高。


5.类的整个初始化顺序(包括继承):装载程序先到外面去找到那个类,找到后查看是否有基类(extends),有的话随之将其载入,无论是否需要生成基类的对象,这个过程都会

发生,如果该基类还含有基类,也将其载入,依此类推。之后会在根基类中执行static初始化,在到衍生类中初始化,以此类推。保证这个顺序是很重要的,因为可能衍生类的初

始化可能依赖基类成员。至此必要的类都已经装载完毕,可以进行对象的创建,首先,这个类中的基础类型数据都是初始化为默认值,对象句柄初始为null(为对象分配的存储空间

初始化成二进制0),随后调用基础类构造器,这个调用是自动的,我们也可自己显示调用(super),如果基类的构造方法中含有基类的抽象方法,那么会调用子类的方法实现,基

础类的构建采用与衍生类构建器完全相同的处理过程。基础类构建器完成后,实例变量会按本来的顺序进行初始化。最后执行构建器的剩余部分。


6.final关键字

参考:http://blog.youkuaiyun.com/niguang09/article/details/6035813


7.在“上溯造型”中能够通过基类来调用子类的所有方法,那么必须保证子类只含有基类的所有方法,不含有额外的方法。此时我们为了能调用子类额外的方法,那么必须使用“下溯

造型”,但“上溯造型”肯定是安全的,因为基础类不可能拥有一个比衍生类更大的接口,故能保证基础类发送的每一条消息衍生类都能接受到,但“下溯造型”就不行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值