【学习笔记】构造方法和this关键字
一、构造方法: 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