1.构造器有什么用?它应该如何命名?
①有构造器,能够确保创建对象时,就能将其分配存储空间并初始化。
②构造器的名字可能与类中某个成员名称相冲突;调用构造器是编译器的责任,必须让编译器知道应该调用某个方法。因此构造器的名字沿用C++的规则,与类名相同。
③当你没有自定义构造器时,编译器会自动帮你创建一个默认构造器。
public class test1 {
public test1() {
System.out.println("test1");
}
}
public class achieve {
public static void main(String[] args) {
test1 a = new test1();
}
}
其中test1()方法为此类中的构造器。
输出:
test1
2.区分重载方法
Java允许几个方法有同样的名字,那么用什么来区分他们呢?
用参数类型列表来区分。
这就意味着:①每个重载方法之间的参数类型必须有区别。②不能用返回参数类型等来区分。
3.this关键字的注意点
①this关键字只能在方法内使用,表示对“调用方法的那个对象”的引用。
②在方法内部调用同一个类的另一个方法,不需要使用this,直接调用即可。
③当参数名称和数据成员的名字相同时,参数会覆盖数据成员,可以用this.名字来表示数据成员。
④能在构造器中,用this调用一个其他的构造器,但只能调用一个,并且必须将构造器调用置于最起始处。
例:
public class test1 {
int s = 0;
public test1(double i) {
System.out.println("test1");
}
public test1(int s,double i) {
this(i);
this.s = s;
ss();
}
public void ss() {
s++;
}
}
4.编译器不允许指定数组的大小
因为现在拥有的只是对数组的一个引用,没给数组对象本身分配任何空间。
为了给数组创建相应的存储空间,必须初始化数组;可以在程序的任何地方进行初始化动作。
初始化之后,数组的大小就是固定的。
5.在不确定参数类型和个数时,可以以object数组为参数。
所有的类都直接或间接继承与object类,所以object数组作为参数可以代替所有数据类型。
甚至可以在使用此方法时传入0个参数。
本文章大量从《Think in Java》、实践和网络中总结。