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

相关推荐
AgentOPC5 小时前
Cerebras WSE-3 vs Nvidia H100/H200/B200:详细技术对比——谁才是 AI 时代真正的“芯片之王“
开发语言·人工智能·nvidia
超梦dasgg5 小时前
Sentinel生产环境实战全解
java·微服务·sentinel
青云计划6 小时前
MySQL技术文档
java·mysql
qq_2518364576 小时前
基于java 汽车检修管理系统设计与实现 论文
java·开发语言·汽车
lbaihao6 小时前
LLVM Cpu0 调用规则解析
开发语言·前端·python·llvm
基德爆肝c语言6 小时前
Qt系统相关
开发语言·qt
量子炒饭大师6 小时前
【Linux系统编程】Cyberpunk在霓虹丛林中构建堡垒 ——【基础开发工具(1)】一文带你初步了解 软件包管理器 并 快速上手 yum和apt 工具
java·linux·运维·apt·yum·软件包管理器
redaijufeng6 小时前
C/C++程序从编译到链接的过程
c语言·开发语言·c++
Finger#0000FF6 小时前
从零上手VibeCoding(ClaudeCode+DeepSeek V4.Pro)
java·人工智能·ai编程·vibe coding·claudecode
木子墨5166 小时前
系统设计面试 | 实现一个限流器:滑动窗口 → 令牌桶 → 漏桶
java·开发语言·数据结构·数据库·面试·职场和发展