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初始化的部分,我帮你补全实例化对象和格式化输出的逻辑。假设作业要求的输出格式是清晰的列表样式,比如:
=== 我的课程列表 ===
- Java入门 | 课程代码:CS101 | 学分:3
- 数据结构 | 课程代码: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
相关产品推荐
相关产品推荐

