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

Java入门学习者求助:课程列表特定格式输出作业问题

嗨Staci!作为Java新手刚接触类和对象的作业,肯定会有点摸不着头脑对吧😉 先帮你把现有代码理清楚,再一步步完成「特定格式输出课程列表」的需求。

解决思路与代码实现

首先看你的作业标题是U9A1_DefineClassInstantiateObj,核心要求就是定义类 + 实例化对象,再按格式输出。我会分步骤帮你补全代码:

1. 先定义课程类(Course)

我们需要一个Course类来封装课程的核心信息,比如课程名称、代码、学分(你可以根据作业要求调整字段)。这个类是我们实例化课程对象的模板:

class Course {
    // 课程的核心属性
    private String courseName;
    private String courseCode;
    private int creditHours;

    // 构造方法:创建课程对象时直接初始化属性
    public Course(String courseName, String courseCode, int creditHours) {
        this.courseName = courseName;
        this.courseCode = courseCode;
        this.creditHours = creditHours;
    }

    // 获取属性的方法:用于在主类中读取课程信息
    public String getCourseName() {
        return courseName;
    }

    public String getCourseCode() {
        return courseCode;
    }

    public int getCreditHours() {
        return creditHours;
    }
}

2. 完善主类的代码

你现在的主类代码只写到了Scanner初始化的部分,我帮你补全实例化对象和格式化输出的逻辑。假设作业要求的输出格式是清晰的列表样式,比如:

=== 我的课程列表 ===

  1. Java入门 | 课程代码:CS101 | 学分:3
  2. 数据结构 | 课程代码:CS201 | 学分:4

补全后的主类代码如下:

package u9a1_defineclassinstantiateobj;
import java.util.Scanner;

/**
 *
 * @author Staci
 */
public class U9A1_DefineClassInstantiateObj {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("Staci's Copy");
        
        // 实例化3个课程对象(可以根据作业要求增减数量)
        Course javaIntro = new Course("Java入门", "CS101", 3);
        Course dataStructures = new Course("数据结构", "CS201", 4);
        Course webBasics = new Course("Web开发基础", "CS150", 3);
        
        // 按特定格式输出课程列表
        System.out.println("\n=== 我的课程列表 ===");
        // 使用printf实现格式化输出,排版更规整
        System.out.printf("1. %s | 课程代码:%s | 学分:%d%n", 
                          javaIntro.getCourseName(), javaIntro.getCourseCode(), javaIntro.getCreditHours());
        System.out.printf("2. %s | 课程代码:%s | 学分:%d%n", 
                          dataStructures.getCourseName(), dataStructures.getCourseCode(), dataStructures.getCreditHours());
        System.out.printf("3. %s | 课程代码:%s | 学分:%d%n", 
                          webBasics.getCourseName(), webBasics.getCourseCode(), webBasics.getCreditHours());
        
        // 额外扩展:如果需要让用户输入新增课程,也可以用Scanner实现
        Scanner input = new Scanner(System.in);
        System.out.println("\n--- 新增课程 ---");
        System.out.print("请输入课程名称:");
        String newCourseName = input.nextLine();
        System.out.print("请输入课程代码:");
        String newCourseCode = input.nextLine();
        System.out.print("请输入学分:");
        int newCredits = input.nextInt();
        
        // 实例化新的课程对象并输出
        Course newCourse = new Course(newCourseName, newCourseCode, newCredits);
        System.out.println("\n你新增的课程信息:");
        System.out.printf("%s | 课程代码:%s | 学分:%d%n", 
                          newCourse.getCourseName(), newCourse.getCourseCode(), newCourse.getCreditHours());
        
        input.close();
    }
}

3. 关键细节说明

  • 类的定义:Course类用private修饰属性保证封装性,通过构造方法初始化对象,get方法用于读取属性(如果需要修改属性,可以添加set方法)。
  • 对象实例化:在main方法中创建的每个Course对象,对应一门具体的课程,这就是作业要求的「实例化对象」。
  • 格式化输出:用System.out.printf可以精准控制输出格式,比普通的println更适合实现作业要求的「特定格式」。

如果你的作业要求的格式和我假设的不一样(比如需要表格、不同字段),只需要调整Course类的属性和printf的格式字符串就可以啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:36:49