Object 如何对角度的构造函数和设置器进行编码?他们看起来很像
我有这个UML类,我真的不明白为什么有两个setter和构造函数。。。?如何用代码编写该类 我没有足够的声誉来发布图片,但在图表上,这个类看起来像:Object 如何对角度的构造函数和设置器进行编码?他们看起来很像,object,uml,Object,Uml,我有这个UML类,我真的不明白为什么有两个setter和构造函数。。。?如何用代码编写该类 我没有足够的声誉来发布图片,但在图表上,这个类看起来像: Angle -degrees: int -minutes: int -seconds: double 实际上没有理由让setter像这样出现在那里,但是本质上UML要求您使用helper方法set来更改您的私有变量,而不是在构造函数中这样做。这会让我相信每个构造函数只是将变量传递给setter。所以流看起来像 Create object (pa
Angle
-degrees: int
-minutes: int
-seconds: double
实际上没有理由让setter像这样出现在那里,但是本质上UML要求您使用helper方法set来更改您的私有变量,而不是在构造函数中这样做。这会让我相信每个构造函数只是将变量传递给setter。所以流看起来像
Create object (params) -> Constructor (params) -> set(params)
如果没有设置器,只有属性设置构造函数,那么对象将是不可更改的。如果类同时具有setter和attributes设置构造函数,那么它的对象是可变的。所以,你可能需要两者——这取决于你自己 关于如何实现您的方法:
void set(int degrees, int minutes, double seconds){
this. degrees = degrees;
this.minutes = minutes;
this.seconds = seconds;
}
你应该决定你的代理人将如何保留该标志。让我们假设只有被脱脂的人会保留它,并且分和秒将始终显示为正
void set(double fractionalDegrees){
// separate the sign
int sign = Math.sign(fractionalDegrees);
double angle = Math.abs(fractionalDegrees);
// separate d:m:s
degrees = Math.floor(angle);
angle = angle - degrees;
angle = angle * 60;
minutes = Math.floor(angle);
angle = angle - minutes;
seconds = angle * 60;
// set the sign to degrees
degrees = degrees * sign;
}
对于构造函数,他们只需调用适当的setter
public Angle(int degrees, int minutes, double seconds){
set(degrees, minutes, seconds);
}
实际上,这个类有严重的问题:它有setter,但没有getter或操作。因此,它实际上无法使用。您可能需要以下内容:
double getFractionalDegrees();
int getDegrees();
int getMinutes();
float getSeconds();
Angle addTo(Angle anotherAngle);
Angle negate();
Angle back(); // +-180 degrees
String toString(); // you need to print them somehow, too
什么是换行?那是物体吗?对不起,我知道那会让人困惑。这只是一条实线,将变量与其他变量分开,但无论我如何编写,它都不允许我发布。我会试着把它改成实线来显示,因为这个问题看起来很合理+1:-几个月前有人问了一个与家庭作业完全相同的问题:这与从main方法创建对象时设置它们有什么不同?不能从外部源设置变量。他们是私人的。
double getFractionalDegrees();
int getDegrees();
int getMinutes();
float getSeconds();
Angle addTo(Angle anotherAngle);
Angle negate();
Angle back(); // +-180 degrees
String toString(); // you need to print them somehow, too