Java报错:Program prints无法解析为类型及狗类程序问题咨询
问题分析与修复方案
你的代码存在三个核心问题,直接导致了编译错误:
构造函数名与类名不匹配
第二个文件里定义的类名是Classes_2,但构造函数却写成了Dog——Java要求构造函数的名字必须和类名完全一致,否则会被当成普通方法,外部也无法通过Dog这个名称实例化类。main方法未包裹在类内部
Java规定所有代码必须放在类中,你第一个文件里的main方法属于游离状态,编译时会直接报错。类文件命名不符合规范
Java要求类文件名必须和类名完全一致(大小写敏感),否则编译时无法找到对应的类定义。
修正后的代码
第一个文件(命名为DogMain.java,包含main方法)
public class DogMain { public static void main(String [] args){ Dog new_item = new Dog("Peter", 213123); new_item.speak(); } }
第二个文件(命名为Dog.java,定义Dog类)
public class Dog { private String name; private int age; // 构造函数名与类名保持一致 public Dog(String name, int age){ this.name = name; this.age = age; } public void speak(){ System.out.println("我的名字是 " + this.name + ",我的年龄是 " + this.age); } }
编译运行步骤
- 打开命令行,进入两个文件所在目录,执行编译命令:
javac DogMain.java Dog.java - 运行程序:
java DogMain
执行后会正常输出:我的名字是 Peter,我的年龄是 213123
内容的提问来源于stack exchange,提问作者Nox
相关产品推荐
相关产品推荐

