如何在Java程序中获取Null值?解决构造器报错并实现目标输出
解决Java构造器缺失报错并实现指定输出
报错原因
代码中自定义了两个带参构造器后,Java不再自动提供默认的无参构造器,但main方法里调用了new Home()(无参实例化),导致编译器找不到匹配的构造器,触发报错。
修改后的完整代码
package home; public class Home { String HomeName = null; int room = 0; int kitchen = 0; int bathroom = 0; // 添加无参构造器 Home() {} // 单参数构造器 Home(String HomeName) { System.out.println(HomeName); } // 四参数构造器 Home(String HomeName, int rooms, int k, int bathroom) { System.out.println(HomeName + ":rooms:" + rooms + ":kitchen" + k + ":bathroom" + bathroom); this.HomeName = HomeName; this.room = rooms; this.kitchen = k; this.bathroom = bathroom; } public void finaloutputhome() { System.out.println("Your Home Name:" + HomeName); System.out.println("Rooms Count:" + room); System.out.println("kitchen Count:" + kitchen); System.out.println("Bathroom Count:" + bathroom); } public static void main(String[] args) { // 先实例化四参数对象,触发要求的第一行输出 Home obj1 = new Home("Pasindu's Home", 5, 2, 3); // 实例化无参对象,输出默认值 Home obj2 = new Home(); obj2.finaloutputhome(); } }
修改说明
- 添加无参构造器:补上
Home() {},让main里的new Home()能正常创建对象 - 调整main方法逻辑:先创建带四个参数的
Home对象,触发构造器内的打印语句,输出要求的第一行内容 - 保留成员变量默认值:原代码中
HomeName默认赋值null,int类型变量默认0,无需修改,确保finaloutputhome()能输出指定的null和0值
运行后输出结果
Pasindu's Home:rooms:5:kitchen2:bathroom3
Your Home Name:null
Rooms Count:0
kitchen Count:0
Bathroom Count:0
内容的提问来源于stack exchange,提问作者Don Randeep
相关产品推荐
相关产品推荐

