Java构造函数不能加void

公司一个程序员反馈构造函数找不到,先上代码:

public class Person {

private String name;

// 正确的构造函数:无返回类型,名称与类名相同

public Person(String name) {

this.name = name; // 初始化成员变量

}

// 加了void,这不是构造函数,而是普通方法!

public void Person(String name) {

this.name = name; // 只是普通的赋值逻辑,不会在new对象时自动执行

}

}

核心问题就在手欠,写了void。

Java 语法明确规定:

构造函数的名称必须与类名完全相同(包括大小写);

构造函数不能声明返回类型(包括void);

如果加了void,编译器会把它识别为 "一个名称和类名相同的普通方法",而不是构造函数。

这是因为构造函数的唯一目的是初始化对象(为对象的成员变量赋值、执行初始化逻辑),它不是 "返回某个值",而是 "创建并返回当前类的实例",所以不能定义返回值,包括void

相关推荐
wengqidaifeng1 天前
C++从菜鸟到强手:1.基础入门
开发语言·c++
我喜欢山,也喜欢海1 天前
Java和go在并发上的表现为什么不一样
java·python·golang
hhb_6181 天前
PHP 8.x 核心特性与工程化开发实践指南
开发语言·php
geovindu1 天前
go: Flyweight Pattern
开发语言·设计模式·golang·享元模式
Wenzar_1 天前
**零信任架构下的微服务权限控制:用Go实现基于JWT的动态访问策略**在现代云原生环境中,
java·python·微服务·云原生·架构
xyq20241 天前
TypeScript中的String类型详解
开发语言
lUie INGA1 天前
在2023idea中如何创建SpringBoot
java·spring boot·后端
小糖学代码1 天前
LLM系列:1.python入门:15.JSON 数据处理与操作
开发语言·python·json·aigc
handler011 天前
从源码到二进制:深度拆解 Linux 下 C 程序的编译与链接全流程
linux·c语言·开发语言·c++·笔记·学习
geBR OTTE1 天前
SpringBoot中整合ONLYOFFICE在线编辑
java·spring boot·后端