标签:
用构造器(创建对象时被自动调用的特殊方法)初始化。那如何以多种方式创建一个对象?答案是方法重载。方法重载涉及一些问题。一为如何区分重载方法,显然是参数的个数,类型,甚至次序。而且注意,返回值并不能作为区分方法之一。二为如何选择调用哪个重载方法。答案是精确匹配与最近原则。知道了方法重载后,我们意识到可以有多个构造器(这也是我们的目的)。那么注意,当我们自己没有定义构造器时,编译器会提高一个默认构造器,以确保总是有构造器存在。
跳到另一个问题。一个方法如何知道自己是被哪个对象调用?this关键字----调用方法的那个对象的引用。this的另一用法:在某个构造器里调用其它构造器(必须置于构造器最起始处)。知道this以后,可以讲下static方法。static方法就是没有this的方法。
》清理。理不清头绪,日后再回看。
初始化问题(涉及如何初始化和初始化的顺序问题)首先,方法的局部变量必须显式初始化。
而对于类的成员数据,书中有个很好的总结。
当首次创建Dog的对象时,或者调用Dog的静态域或静态成员时,载入Dog.class(将创建class对象),静态初始化动作执行;当new dog()时,在堆中为dog对象分配存储空间,将这块存储空间清零,然后执行所有出现于字段定义处的初始化动作。再执行构造器。
显式静态初始化与非静态实例初始化:用大括号把语句包了起来。
关于数组的初始化。分基本数据类型与非基本数据类型。1.前者可以用大括号来初始化 2.用new。前者new出了一般意义的数组,后者new出的却是引用数组。所以后者的真正初始化还得真正创建对象并赋给数组中的引用才算完成(可以用new加花括号的方式)。
当我们用数组作为方法参数时,参数的个数就是可变的。JavaSE 5 提供了可变参数列表的方法。
枚举。
标签:
原文地址:http://www.cnblogs.com/mmyz-sysu-panjn/p/thinking-in-java-5.html