Java编程求助:如何基于Astah UML图实现两个指定方法
问题解决方案
1. MyDate类now()静态方法实现
now()是MyDate类的静态方法,作用是返回封装了当前系统日期的MyDate实例,实现逻辑如下:
首先确认你的MyDate类已定义年、月、日三个成员属性,以及包含年、月、日参数的构造方法,之后now()方法可参考以下代码实现:
import java.time.LocalDate; public class MyDate { private int year; private int month; private int day; // 已有构造方法 public MyDate(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } // 新增静态now方法 public static MyDate now() { LocalDate currentDate = LocalDate.now(); return new MyDate( currentDate.getYear(), currentDate.getMonthValue(), currentDate.getDayOfMonth() ); } // 其他getter、setter等方法省略 }
如果你的项目用的是Java 8以下的版本,可以替换为Calendar类获取当前日期即可。
2. Apartment类rentTo方法rentedFrom参数处理
rentedFrom参数代表公寓的租赁起始日期,你需要先在Apartment类中定义对应存储该值的成员属性,再把方法入参赋值给该成员属性即可,参考代码如下:
public class Apartment { // 存储租户信息的成员属性 private Tenant tenant; // 新增存储租赁起始日期的成员属性 private MyDate rentedFrom; public void rentTo(Tenant tenant, MyDate rentedFrom) { this.tenant = tenant; // 把入参赋值给当前类的成员属性 this.rentedFrom = rentedFrom; } // 后续可以通过getter方法获取租赁起始时间 public MyDate getRentedFrom() { return rentedFrom; } // 其他类方法、属性省略 }
实际调用rentTo方法时,如果需要默认用当前时间作为租赁起始时间,可以直接调用已经实现的MyDate.now()作为参数传入:
// 调用示例 Tenant newTenant = new Tenant("张三", "13xxxxxxxxx"); apartment.rentTo(newTenant, MyDate.now());
内容的提问来源于stack exchange,提问作者GluhaiaMuha
相关产品推荐
相关产品推荐

