相关疑难解决方法(0)

无法从静态上下文引用非静态变量

我写了这个测试代码:

class MyProgram
{
    int count = 0;
    public static void main(String[] args)
    {
        System.out.println(count);
    }
}
Run Code Online (Sandbox Code Playgroud)

但它给出了以下错误:

Main.java:6: error: non-static variable count cannot be referenced from a static context
        System.out.println(count);
                           ^
Run Code Online (Sandbox Code Playgroud)

如何让我的方法识别我的类变量?

java variables compiler-errors non-static

272
推荐指数
7
解决办法
61万
查看次数

Java中"this"的含义是什么?

通常,我this只在构造函数中使用.

我知道它用于识别参数变量(通过使用this.something),如果它与全局变量具有相同的名称.

但是,我不知道thisJava 的真正含义是什么,如果我this不使用dot(.)会发生什么.

java

127
推荐指数
8
解决办法
39万
查看次数

"非静态变量,这不能从静态上下文引用"?

我是一个Java新手,我正试图通过递归函数部署斐波那契线,然后计算运行时间.这是我设法编写的代码:

class nanoTime{
    int fib(int n){
        if(n==0) return 0;
        if(n==1) return 1;
        return this.fib(n-1)+this.fib(n-2);
    }
    public static void main(String[] args){
        double beginTime,endTime,runTime;
        int n=10;
        beginTime = System.nanoTime();
        n = this.fib(n);
        endTime = System.nanoTime();
        runTime = endTime-beginTime;
        System.out.println("Run Time:" + runTime);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我试图将其变为字节码时,我收到以下错误:

nanoTime.java:11: non-static variable this cannot be referenced from a static context
Run Code Online (Sandbox Code Playgroud)

我想知道这是什么问题?!

java recursion static syntax-error

5
推荐指数
1
解决办法
7714
查看次数

为什么不能在这里使用'this'关键字?

我明白这是指当前的对象.所以不使用objectname.fun(objectname.nonstaticmember),为什么我不能使用objectname.fun(this.nonstaticmember)

请参考下面的示例,并在最后看到最后两条评论.

public class Question
{
    int data;

    void myfun(int data)
    {
        System.out.println("data=="+data);
    }

    public Question(int data)
    {
        this.data = data;
        // TODO Auto-generated constructor stub
    }

    public static void main(String[] args)
    {   
        Question question = new Question(10);
        //question.myfun(question.data);//WORKS
        question.myfun(this.data);//DOES NOT WORK
    }
}
Run Code Online (Sandbox Code Playgroud)

java oop this

3
推荐指数
1
解决办法
87
查看次数