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

如何解决Java中的‘cannot find symbol method’错误?——Student类调用Subject类方法异常问题

问题分析与解决方案

我来帮你拆解代码里的问题,其实大部分错误都是简单的语法问题,导致后续连锁报错,和你猜测的“无法实例化Subject类”无关:

1. 核心语法错误:多余的星号

在Student类的setKorea方法中,你写了:

korea.setSubjectName*(name); //this part error

这里多了一个不必要的*符号,正确的写法应该是:

korea.setSubjectName(name);

这个语法错误会直接触发编译器报错,进而让后续调用setScore、getScore的代码也被标记为错误(因为编译器认为前面的代码已经破坏了语法结构,后续上下文无法正常解析)。

2. 确认Subject类的实例化逻辑

你在Student的构造方法里已经正确完成了Subject对象的实例化:

korea = new Subject();
math = new Subject();

这部分完全没问题——Subject是public类,且和Student在同一个school包下,实例化操作合法有效,所以你之前担心的“无法实例化Subject”并不是问题根源。

修正后的完整代码

Subject类(本身无问题,无需修改)

package school;
public class Subject {
    String subjectName;
    int score;
    public String getSubjectName() {
        return subjectName;
    }
    public void setSubjectName(String subjectName) {
        this.subjectName = subjectName;
    }
    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        this.score = score;
    }
}

修正后的Student类

package school;
public class Student {
    int studentID;
    String studentName;
    Subject korea;
    Subject math;
    public Student(int id, String name){
        studentID = id;
        studentName =name;
        korea = new Subject();
        math = new Subject();
    }
    public void setKorea(String name, int score){
        korea.setSubjectName(name); // 移除了多余的星号
        korea.setScore(score);
    }
    public void setMath(String name, int score){
        math.setSubjectName(name);
        math.setScore(score);
    }
    public void showStudentInfo() {
        int total = korea.getScore() + math.getScore();
        System.out.println("학생의 총점은"+ total+"입니다.");
    }
}

测试代码(可选)

你可以写一个主类来验证功能是否正常:

package school;

public class Main {
    public static void main(String[] args) {
        Student student = new Student(1001, "张三");
        student.setKorea("韩语", 90);
        student.setMath("数学", 85);
        student.showStudentInfo();
    }
}

运行后会输出:학생의 총점은175입니다.

内容的提问来源于stack exchange,提问作者Joe-Black

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 06:57:33