首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getHeight()和常量(java)

getHeight()和常量(java)
EN

Stack Overflow用户
提问于 2013-11-02 13:11:15
回答 1查看 212关注 0票数 0

我编写了使用GraphicsProgram中屏幕的宽度和高度绘制框的代码,在这些框中我会做其他事情。这些框将是屏幕垂直尺寸(高度)的六分之一。

现在,在我的run方法中,我创建了一个这样的变量:

代码语言:javascript
复制
int boxHeight = getHeight() / 6;

然后,我移到其他方法,如:

代码语言:javascript
复制
placeBox(boxHeight);

在我的placeBox方法中,我得到了这样的变量:

代码语言:javascript
复制
private void placeBox(int boxHeight) { ..code.. }

所有这些都可以,但我想知道是否可以使用常量,在运行方法之前我会这样声明这些常量:

代码语言:javascript
复制
private static final int constantBoxHeight = getHeight() / 6;

但是,这给我带来了以下编译器错误:

代码语言:javascript
复制
non-static method getHeight() cannot be referenced from a static context

所以我的问题是:我是否以正确的方式实现常数?如果没有,我如何正确地实现它?另外,如果我试图做的事情是可能的,那么使用常量而不是将我的变量从我的run方法移到它里面的方法,然后将它移动到它里面的其他方法,有什么好处呢?

getHeight()是从acm.Graphics导入的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-02 13:19:11

常量是一个静态字段,但是可以使用从实例方法的返回值派生的值对其进行初始化。实例方法需要实例。静态字段不属于实例,因此不能用实例方法初始化。

只要您没有其他方法获得高度,您将首先需要该类的实例。在这种情况下,我个人不会使用常量,因为重构代码和使用实例成员或局部变量没有缺点(至少很少)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19742246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档