我从在线实践测试中找到了此示例代码 ,语句strcpy(e1.name, "K"); 有效,但语句e1.age=10; 不是吗?有任何原因。请澄清。 在Gcc上观察到的o/p为: K 0 0.000000 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我还有以下形式的VO对象
public class DummyVO {
private int id;
private String message;
//getters and setters.
//set of constants that describe the DummyVO.
public static final String MESSAGE_CONST1 = "A-> Const value for message";
public static final String MESSAGE_CONST2 = "B-> Const value for message";
}
我想知道上面的做法是否是好的做法,还是将常量移到单独的类中是否有意义。 任何意见,将不胜感激。
没有明确的答案,除了你可以说
对此没有设置标准或OOP准则吗?
无AFAIK。 指南应该以您认为合理的方式来布置您的班级。
公共课程TestVO {
测试值对象通常放置在您的测试区域中。 值得一提的是
我想知道上面的做法是好的做法还是将常量移到单独的类中是否有意义
这取决于常数是否有意义贴近类。
例如, 可以说以下几点有意义:
public class Product{
private int id;
private String category = DEFAULT_PRODUCT_CATEGORY;
// setters and getters, constructors and what not
public static final String DEFAULT_PRODUCT_CATEGORY = "Uncategorized";
}
在此假设示例中,常量( DEFAULT_PRODUCT_CATEGORY
)与Product类中的category字段紧密相关。 因此,在该类中具有该常量可能很有意义。 也可以说我们需要一个包含该常量的Category类(或枚举)。
另一方面,这没有任何意义:
public class Product{
private int id;
// setters and getters, constructors and what not
public static final String ERROR_MESSAGE = "some error";
public static final float PI_APPROXIMATION = 3.14159;
}
在此示例中(尽管有些夸张),一个常量(ERROR_MESSAGE)太通用了,它并不特定于Product类可能表示的内容。 第二个常量(PI_APPROXIMATION)甚至更糟,因为实际上没有理由拥有这种东西。
因此,除了回答以下问题的指南外,没有其他指南:将其放在那里是否有意义?
常数是为了代表某人或某物 。 因此,必须以一种有意义的方式将这些常量分组到与使用它们的事物接近的地方。 类和接口不仅仅是打开的盒子,我们向它们扔东西。
软件工程的根本挑战是设计有意义的东西。 有意义的是针对当前的问题和情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.