在方法中使用类变量

noo*_*mer 1 java variables class

在java中如何在方法中使用类变量?

这是我的代码

public class ExamQ3a {
    String[] descriptionArr = new String[50];
    static int[] codeArr = new int[50];

    public static void displayItems(int count, int[] codeArr,
            String[] descriptionArr) {
        count = this.codeArr.length;
        for (int i = codeArr.length; i < codeArr.length; i--) {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这里突出显示的行是count = this.codeArr.length; 我得到的错误是无法从静态上下文引用非静态变量.但我已经将变量设为静态.什么给出了什么?

所以只按要求!不是我想问整个问题,只是为了知道我为什么要使用静态,这是一个练习题

您将开发一个简单的应用程序系统来管理公司的库存.系统应该能够维护最多50个项目的列表.每个项目都有唯一的整数代码和描述.

(a)编写声明和创建两个数组的Java语句来存储代码和项的描述.

(b)使用以下方法签名编写Java方法:

public static void displayItems(int count,int [] codeArr,String [] descriptionArr)

此方法以表格形式显示公司中所有项目的代码和说明,并带有相应的列标题.

参数:codeArr:存储项目代码的数组

descriptionArr:存储项目描述的数组

count:系统中的项目数

Hov*_*els 5

this在静态世界中没有.摆脱它.要解释,请this参考当前实例,当您处理静态方法或变量时,您将处理与该类关联的项,而不是任何一个特定实例.所以将代码更改为:

count = codeArr.length;
Run Code Online (Sandbox Code Playgroud)

编辑1
顺便说一句,你不想把你的结束括号拼凑起来} } },这使你的代码很难阅读和遵循.白色空间是免费的,因此不妨明智地使用它来提高代码的可读性.

编辑2
你说:

那么如何将数组codeArr引用到类变量codeArr?

你在这个类中,并且不需要在这里使用类变量名,因为假定它被使用.只需使用静态变量或方法名称,你就应该是金色的.

编辑3
对这种类型的变量使用静态会给代码带来难闻的气味.我认为如果这是一个实例变量而不是静态变量,那么整个程序会好得多.有关这方面的更多讨论,您可以告诉我们为什么您决定将变量设为静态.