面向对象JML社交关系模拟系统编程作业指南

需积分: 0 0 下载量 55 浏览量 更新于2024-08-05 收藏 561KB PDF 举报
本次面向对象JML系列的第二次代码作业指导书主要关注的是实现一个社交关系模拟系统。作业的核心要求是让学生根据给定的官方接口,如Person、Network和Group,来开发自己的自定义类,如MyPerson、MyNetwork和MyGroup。这些类需要继承自相应的官方接口,并严格遵循接口中提供的JML规格进行编码。 首先,学生需要确保他们创建的MyPerson类正确实现了Person接口,该接口包含诸如id、name、character和age等属性。他们需要提供一个构造函数,接受这些属性作为参数,并在构造函数中正确初始化它们。例如,MyPerson类的构造函数应如下所示: ```java public class MyPerson implements Person { private int id; private String name; private BigInteger character; private int age; public MyPerson(int id, String name, BigInteger character, int age) { this.id = id; this.name = name; this.character = character; this.age = age; } ``` 同样,Network类也需要实现Network接口,提供一个构造函数以生成一个初始为空的网络对象。尽管这部分代码没有提供,但构造函数的示例可能类似: ```java public class MyNetwork implements Network { // 构造函数实现,这里假设无初始数据 public MyNetwork() { // ... } ``` 作业中强调了禁止提交官方包代码或直接复制粘贴官方提供的JML或代码,这旨在培养学生的原创性和独立解决问题的能力。课程将采用黑箱测试,包括公测、互测以及bug修复,以评估学生的代码质量和功能实现的准确性。 在主类中,学生需要调用官方提供的Runner类,加载他们自定义的Person、Network和Group类,确保整个程序可以正确运行。这个过程需要他们具备良好的类加载和调用机制的理解。 这次作业的核心技能点包括面向对象编程、接口设计、JML规格理解和应用、构造函数的编写以及黑盒测试方法的运用。通过完成这些任务,学生将巩固面向对象编程基础,提升软件工程实践能力。