【发布时间】:2018-09-09 02:00:54
【问题描述】:
我被分配了一个任务,我必须在其中实现一个模拟太阳系的小程序,该太阳系有一个太阳和行星绕行,并且行星必须有卫星绕行星运行。我已经成功实现了动画,但是为了获得完整的功劳,我们需要使用以下 UML:
我知道框架有一个Sun的实例,Sun实现了接口Orbit中的方法,并有一个OrbitingBody的实例用Planet构造函数创建,等等.. . 我不明白的是UML 中接口Orbit 和抽象类OrbitingBody 之间的关系。
/****************************************************************/
import java.awt.*;
@SuppressWarnings("serial")
public class Sun implements Orbit {
private Dimension dim;
private OrbitingBody earth;
private OrbitingBody mars;
//Other vars
public void init(Dimension dim) {
// CODE irrelevant for the question
}
public void setPlanetPosition() {
// CODE irrelevant for the question
}
public int calX(int distance, int angle){
// CODE irrelevant for the question
}
public int calY(int distance, int angle){
// CODE irrelevant for the question
}
public void draw(Graphics g) {
// CODE irrelevant for the question
}
}
/****************************************************************/
import java.awt.*;
@SuppressWarnings("serial")
public class Planet extends OrbitingBody implements Orbit {
private Moon moon;
private Moon eris;
Planet(int x, int y, Color color) {
super.x = x;
super.y = y;
moon = new Moon();
eris = new Moon();
this.color = color;
}
public int calX(int distance, int angle){
// CODE irrelevant for the question
}
public int calY(int distance, int angle){
// CODE irrelevant for the question
}
}
/****************************************************************/
public interface Orbit {
int calX(int distance, int angle);
int calY(int distance, int angle);
}
/****************************************************************/
import java.awt.*;
public abstract class OrbitingBody {
protected Color color;
protected int x, y;
protected int radius = 25;
void setPosition(int x, int y) {
this.x = x;
this.y = y;
}
public void draw(Graphics g) {
// CODE irrelevant for the question
}
}
【问题讨论】:
-
在天体动力学的标准假设下,两个天体的重心是两个轨道的焦点。与天文学有关的轨道天体(有时称为 OB)是任何小于其轨道天体的物体。这些可能包括但不限于彗星、行星、矮行星、卫星和小行星。 en.wikipedia.org/wiki/Orbiting_body 所以月球绕地球运行并且比地球小,这意味着月球是与地球相关的轨道物体。地球绕太阳运行也是如此,并且比太阳小,在这种情况下,地球是太阳的轨道物体,明白了吗?
-
我从作业中理解了所有内容,功能方面已完成,我遇到问题的部分是实现 UML 的设计 ONLY 通过接口 @987654333 实现关系 deacribes @ 和抽象类
OrbitingBody。这是我需要澄清的唯一标准
标签: java interface uml abstract-class