You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java报错:Program prints无法解析为类型及狗类程序问题咨询

问题分析与修复方案

你的代码存在三个核心问题,直接导致了编译错误:

  1. 构造函数名与类名不匹配
    第二个文件里定义的类名是Classes_2,但构造函数却写成了Dog——Java要求构造函数的名字必须和类名完全一致,否则会被当成普通方法,外部也无法通过Dog这个名称实例化类。

  2. main方法未包裹在类内部
    Java规定所有代码必须放在类中,你第一个文件里的main方法属于游离状态,编译时会直接报错。

  3. 类文件命名不符合规范
    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);
    }
}

编译运行步骤

  1. 打开命令行,进入两个文件所在目录,执行编译命令:
    javac DogMain.java Dog.java
    
  2. 运行程序:
    java DogMain
    

执行后会正常输出:我的名字是 Peter,我的年龄是 213123

内容的提问来源于stack exchange,提问作者Nox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 03:25:01