一、构造方法:
1、作用:完成对象成员的初始化工作.
2、特点:
(1)必须与类同名,不能带返回值,且不能加void,可以带一个或多个参数,也可以不带参数;
(2)在类中没有手动定义构造方法,系统会自动提供无参的构造方法;如果手动定义了构造方法,系统不再提供构造方法;
(3)在类中可以定义多个构造方法,多个构造方法之间必须完成方法重载.
(4)方法不能是静态方法;
3、 构造方法和普通方法的区别
(1)构造方法的名称总是和它的类名一致;普通方法可以是类名,也可以不是,不推荐普通方法使用类名;
(2)构造方法没有返回值,即不可以为它指定任何类型的返回值,包括void;普通方法可以带有返回值;
(3)构造方法不能直接通过对象打点来调用,它是完成对象初始化工作;普通方法需通过对象打点来调用;
(4)构造方法不能是静态方法;普通方法包括静态方法和非静态方法;
4、对象的存储方式:
(1)类名 对象名=null;
是在内存的栈空间中开辟一个空间,空间名是对象名,空间中的内容是null,暂时不能通过对象名来访问,否则会报空指针异常;
(2)对象名=new 类名();
是在内存的堆空间中开辟一个空间,空间的内容是对象的属性值,栈空间的内容是堆空间的内存地址;
二、this 关键字: 当前对象
(1)调用方法:
通过 this.属性名 或 this.方法名() 调用本类的属性和方法
(2) this(参数) 可以用在构造方法,代表调用本类的其他构造方法,但当前语句必须位于构造方法的第一行.
如:
public class Test {
public static void main(String[] args) {
Car hq=new Car("黑色",4.6,1.8);
System.out.println("颜色:"+hq.color);
System.out.println("长度:"+hq.length);
System.out.println("宽度:"+hq.width);
}
}
class Car{
String color;
double length;
double width;
public Car() {
length=4.7;
}
public Car(String color,double length,double w) {
this();
this.color=color;
width=w;
}
}
//输出结果:
颜色:黑色
长度:4.7
宽度:1.8