java – 在多个类中共享常量(android minesweeper)
发布时间:2020-12-15 05:08:20 所属栏目:Java 来源:网络整理
导读:我正在使用扩展Button创建一个类的实例,并直接访问整数变量以获得更好的性能.我正在使用常量来轻松识别变量的当前设置. 我有常量声明Button类和Activity类中实例化它们.我发现了类似的问题,并且读取它只是为了保持常量而创建一个类是不好的做法. 在两个类中
我正在使用扩展Button创建一个类的实例,并直接访问整数变量以获得更好的性能.我正在使用常量来轻松识别变量的当前设置.
我有常量声明Button类和Activity类中实例化它们.我发现了类似的问题,并且读取它只是为了保持常量而创建一个类是不好的做法. 在两个类中使用相同的常量声明的最佳方法是什么? 我是初学程序员,所以我很有可能忽略了一个简单的解决方案. 按钮类: public class GridButton extends Button { public int displayStatus; // constants for mine display status private static final int UNTOUCHED = 1; private static final int UNCOVERED = 2; private static final int FLAGGED = 3; private static final int HIT = 4; ... } 活动类: public class PlayGameActivity extends Activity { private GridButton[][] gridButtons; // constants for mine display status private static final int UNTOUCHED = 1; private static final int UNCOVERED = 2; private static final int FLAGGED = 3; private static final int HIT = 4; ... // e.g. accessing displayStatus value if (gridButtons[currentRow][currentColumn].displayStatus == FLAGGED) { } } 解决方法
要共享内容,您可以在单独的类中创建常量并静态访问它
class Constants { public static final int UNTOUCHED = 1; } 然后在这两个课程中你可以去Constants.UNTOUCHED. 在这种情况下,我会避免使用魔术数字并用Enum替换它们. enum DisplayStatus { Untouched,Uncovered,Flagged,Hit } 并使用DisplayStatus displayStatus替换所有int displayStatus.现在,您和其他读者清楚地了解了int所代表的内容. 理想情况下,您始终希望使用特定类型来限制可能值的范围.在您的示例中,只有数字1-4有效,但您的类型与int一样宽,因此可以是任何值(例如-1或23543). 祝好运! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |