Java构造器理解

转载自https://www.cnblogs.com/grl214/p/5895854.html

目录:

构造器的引入

构造器的命名规则中的问题

使用构造器执行初始化

疑问解答

一、构造器的引入

理解构造器之前,首先我们需要知道Java中为什么要引入构造器,以及构造器的作用。假设我们每一次编写一个类都要执行一个initialize()方法,该方法是提醒你,在使用对象之前,应首先调用initialize()方法进行初始化,这就意味着每一个用户都能去执行这个方法。Java中引入构造器,确保每一个对象都得到初始化,Java在有能力操作对象之前,系统会自动调用相应的构造器,保证初始化的进行。

二、构造器的命名规则中的问题

第一:所取名字可能会与类中某个成员变量的名字发生冲突。

第二:调用构造器是编译器的责任,所以必须让编译器知道调用的是哪一个方法,所以Java采取了与类同名的方法命名构造器。

三、使用构造器执行初始化

构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。如果想改变这种默认的初始化,就可以通过自定义构造器来实现。

下面给出例子

public class Person{
public String name;
public int age;
//这是系统自动提供的构造器public void Person(){}
//自定义构造器
public Person(String name,int age){
this.name=name;
this.age=age;
}
public static void main(String[] args){
//使用自定义的构造器创建对象,构造器是创建对象的重要途径
Person p=new Person("xiaomin",12);
System.out.println(p.age);
System.out.println(p.name);
}
}

四、疑难解答

构造器是创建Java对象的途径,是不是说构造器完全负责Java对象的创建?

不是!

构造器的创建Java对象的重要途径,通过new关键字来调用构造器,构造器也确实返回了该类的对象,但是这个对象并不是完全由构造器来负责创建的。实际上,当程序员调用构造器时,系统会为该对象分配内存空间,并为这个对象执行默认初始化,如果这个对象已经产生了,那么这些操作在构造器之前就已经都完成了。

所以说当系统开始构造器的执行体之前,系统已经创建了一个对象,只是这个对象还不能够被外界程序访问,只能在该构造器中通过this来引用。当构造器的执行体执行结束后,这个对象作为构造器的返回值被返回,通过赋值给另一个引用类型的遍历,从而让外部程序访问。

≈构造器省略了初始代码块,和非静态字段的初始化。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值