Java笔记整理 —— 构造方法、对象创造流程、this指针

构造方法

简介

     构造方法又叫构造器。是类的一种特殊的方法,它的主要作用是完成对新对象的初始化,它有以下特点:1. 方法名和类名相同。 2. 没有返回值。 3. 在创建对象时,系统会自动调用该类的构造器完成对象的初始化。

使用细节

1. 一个类可以定义多个不同的构造器,即构造器重载,系统根据参数不同调用不同的构造器。

2. 构造器名与类名相同,且没有返回值。

3. 构造器是完成对象的初始化,并不是构造对象。

4. 不能自己主动调用构造器,在创建对象时系统自动调用。

5. 如果没有定义构造器,系统会自动给类生成一个默认的无参构造器(也叫默认构造器),比如Person(){},使用 javap指令,可以反编译查看。直接javap + 类名 即可。

class Person {

}

 6. 一旦定义了自己的构造器,默认的构造器就覆盖了,就不能再使用默认的无参构造器,如果还想使用,那必须使用重载的方法,自己再定义一下。

对象创建流程

class Person {
	int age = 90;
	String name;

	Person(String n, int a) {
		name = n;
		age = a;
	}
}


//主函数
Person p = new Person("小王",20);

1. 加载Person类信息,只会加载一次。

2. 在堆中分配空间(地址)。

3. 完成对象初始化——(1)默认初始化,age = 0,name = null。(2)显式初始化,age = 90,name = null。(3)构造器的初始化,age = 20,name = 小王。

4. 把对象在堆中的地址,返回给p(p是对象名,也可以理解成是对象的引用)。 

this

1. 图示

Dog dog1 = new Dog("大壮",3);
Dog dog2 = new Dog("大黄",2);

简单地说,哪个对象调用this,this就代表哪个对象。

2. 使用细节

1. this关键字可以用来访问本类的属性、方法、构造器

2. this可以用于区分当前类的属性和局部变量(起到一个定位作用)。

class Person {
	String name = "milan";

	public void showName() {
		String name = "shang";
		System.out.println(name);        //输出局部变量 "shang" (就近原则)
		System.out.println(this.name);   //输出属性 "milan"
	}
}

3. 访问成员方法的语法:this.方法名(参数列表); (在方法中访问)。

4. 访问构造器语法:this(参数列表),注意只能在一个构造器中访问另一个构造器,并且必须放在第一句中。

class Person {
	Person() {
		this("wang");   //调用另一个构造器
	}

	Person(String name) {
		this.name = name;
	}
}

	Person() {
		System.out.println("不放在第一句");
		this("wang");
	}

5. this不能在类定义的外部使用,只能在类定义的方法中使用。

	public static void main(String[] args) {
		Person a = new Person();
		this.name;  //在主函数中调用this
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值