java - 用java创建 Activity 日历

标签 java

我正在尝试实现一个带有 Activity 的日历,例如: enter image description here

我正在考虑两个抽象类,第一个 GroupCalendar 会是这样的:

public abstract class GroupCalendar {

HashMap<TimeFrame, Activity> entries = new HashMap<TimeFrame, Activity>();

public abstract void addActivity(TimeFrame t, Activity a);

public abstract void removeActivity(TimeFrame t, Activity a);

public abstract void findActivity(TimeFrame t);

public abstract void printAll();
}

第二个是 Activity 类:

public abstract class Activity extends GroupCalendar {

private String name, location;

public Activity() {
}

public Activity(String name, String location) {
    this.name = name;
    this.location = location;
}

public abstract String getName();

public abstract void setName(String name);

public abstract String getLocation();

public abstract void setLocation(String location);
}

之后会有扩展 Activity 的具体类:

public class Sport extends Activity {

private String name, location;
private boolean outdoors;

public Sport(String name, String location, boolean outdoors) {


    this.name = name;
    this.location = location;
    this.outdoors = outdoors;
}

@Override
public void addActivity(TimeFrame t, Activity a) {
}

@Override
public void removeActivity(TimeFrame t, Activity a) {
}

@Override
public void findActivity(TimeFrame t) {
}

@Override
public void printAll() {
}
}

问题是我无法正确添加 Activity ,如果我尝试添加运动,我得到的只是名称和位置,没有户外。 如果有人能给我一些关于我的方法有什么问题的提示/指示,那对我来说意义重大。

最佳答案

首先,我不确定您为什么要为此使用抽象类?

其次,你的日历是由 Activity 组成的, Activity 不应该具备日历的品质。单个 Activity 确实需要具有其他时间范围和 Activity 的集合,除非 Activity 是由其他 Activity 组成的。

我将有一个具体的GroupCalendar类和一个具体的Activity类,并且如果需要的话,重写子类中的Activity方法。 Activity 类应该处理 Activity 成员的访问和变更,您不希望为 Activity 的每个子类覆盖这些成员。

另一方面,Activity 有一个重载的构造函数,它采用 namelocation。因此,在 Sport 类的重载构造函数中,您应该调用 super(name, location) 并删除不需要的赋值。

关于java - 用java创建 Activity 日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37469844/

相关文章:

java - 未检测到 Linux 中的网络接口(interface)

java - 为什么 Java 2D 原点在左上角?

java - JTransforms FFT 图像

java - 执行增量线程后,变量始终相同

JavaGUI : Box layout with width fit to container?

java - 通过贝塞尔曲线移动对象,结合旋转

java - C#/Java 中是否有任何 GLL 解析器组合器库?

Java 双小量

java - 如何编写比较器

java - 如何在 Android 中捕获小部件的位置