Java 构造方法怎么用
写代码的时候,是不是经常遇到“怎么给新做的‘东西’一出来就带上需要的配件?”比如你要做一个奶茶杯,总不能等杯子做好了,再单独插吸管、贴贴纸、放茶包吧?其实写Java代码里,也有个专门干“刚做出来就配齐”的工具,叫构造方法。
什么是构造方法?
举个生活化的例子:你去打印店做名片,报完名字、电话、公司后,打印店不会给你个空白名片,等你回去自己填信息,而是一出来就是印好你信息的成品名片。对应到Java里,如果你要做一个“名片类”,构造方法就是那个“报完信息直接生成成品名片”的步骤——它是创建新对象时,第一个自动执行的方法,专门用来给刚做出来的对象配好需要的初始信息。

构造方法和普通方法不一样在哪?
别把构造方法当成普通的“干活方法”,它有几个独有的特点,记几个简单的点就懂:
- 名字和类名完全一样:比如类叫
BusinessCard,构造方法就叫BusinessCard,不能乱改; - 不用写返回值:普通方法要写
void或者返回类型,但构造方法连void都不用,因为它的任务就是生成对象,不用额外返回东西; - 创建对象时自动跑:你写
BusinessCard myCard = new BusinessCard("张三", "138xxxx", "科技公司");,这行代码一执行,构造方法就自动把名字、电话这些信息塞进新名片里,不用你手动调用。
常用的两种构造方法怎么用?
平时写代码最常用的就是无参构造和带参构造,分两种情况说:
无参构造:简单做个“基础款”
如果你的对象不需要额外的初始信息,就用无参构造。比如做一个“普通杯子”,不用指定品牌、容量,只要一个空杯子就行,代码大概是这样:
`java
// 先写杯子类
class Cup {
// 无参构造:做一个没带任何信息的空杯子
public Cup() {
System.out.println("刚做了一个空杯子");
}
}
// 用的时候
public class Test {
public static void main(String[] args) {
Cup myCup = new Cup(); // 一写new Cup,自动跑无参构造,打印那句话
}
}
`
注意:你要是没自己写构造方法,Java会偷偷给你加个默认的无参构造;但你自己写了带参的,默认的无参就没了,别漏写哦。
带参构造:一出来就带“专属信息”
如果要做“定制款”,比如带名字、电话的名片,就用带参构造——相当于你报信息的时候,构造方法直接把这些信息存进对象里,以后用的时候随时拿。比如:
`java
// 名片类
class BusinessCard {
// 先存信息的“小抽屉”
String name;
String phone;
String company;
// 带参构造:一出来就把名字、电话、公司存好
public BusinessCard(String inputName, String inputPhone, String inputCompany) {
name = inputName; // 把传进来的名字放进name抽屉
phone = inputPhone;
company = inputCompany;
}
}
// 用的时候
public class Test {
public static void main(String[] args) {
// 一new就自动跑构造,直接生成带张三信息的名片
BusinessCard zhangCard = new BusinessCard("张三", "138xxxx", "科技公司");
// 以后用的时候直接拿,不用再存
System.out.println(zhangCard.name); // 输出:张三
}
}
`
这种“一创建就带信息”的好处是,你不用之后再挨个给对象赋值,省时间还不容易出错。
用构造方法的小提醒
别用它干别的活,它的本职是“初始化对象”,别在里面写和初始信息无关的复杂逻辑(比如算数学题、打印一堆无关内容);还有,同一个类里可以写多个构造方法,比如你做名片,既可以要带姓名电话的,也可以只要姓名的,这叫“构造方法重载”,只要参数不一样就行,不用记太复杂,用到的时候知道加就行。
这么一看,构造方法其实就是给新对象“刚做好就配齐必需品”的工具,用对了能省好多重复赋值的功夫,写代码也更省心。