- 构造方法
特点:与类名相同、没有返回值、有一个系统默认生成的无参构造方法,可进行重载
public class Test {
public Test() {//没有返回值、没有void,名字与类相同
}
}
构造方法的过程:
Test t=new Test();//表示有一个Test类型的变量t,new Test表示创建一个对象,将此对象存入t中。
此时,有一个栈内存t被开辟成功,new Test()调用构造方法时,在堆内存中开辟了一个内存b,将b存入t中,而b中的值为Test的第一个属性,b+1中存储下一个属性,以此类推。
创建匿名对象:
new Test();//没有变量接收、只能用一次,因为每new一次就创建一个对象
构造方法的重载:3种类型。参数个数不同、参数类型不同、参数类型顺序不同。
public class Test {
int age;
String name;
public Test() {
}
public Test(int a) {
age=a;
}
public Test(String s) {
name=s;
}
public Test(int a,String s) {
age=a;
name=s;
}
public Test(String s,int a) {
name=s;//与上一个输出结果一样,但参数顺序不同。
age=a;
}
}
- this
用法:
表示当前对象: this可以在非静态方法中直接使用,但是在静态方法中不能使用this
调用构造方法:只能在构造方法内部的第一行。且调用其它构造方法时不能方法一调用方法二,二调用三,三调用一,如此形成回路,会造成死循环。
调用属性:当参数与属性名字相同时,可以用this区分。如this.name=name;
总结:
无参构造方法被重写时,原来系统的构造方法已经不存在了。
每new一次,就创建一个对象。
this可以被看作一个可以调用构造方法的对象(对象不能调用构造方法)。