public static void main(String[] args){
Object circled1 = new Circled();
Object circled2 = new Circled();
System.out.println(circled1.equals(circled2));
}
}
class Circled{
double radius;
public boolean equals(Circled circled){
return this.radius == circled.radius;
}
}
编译时候第三四行出错,non-static variable this cannot be referenced from a static context
为什么?
18 个解决方案
#1
搞笑嘛。我用你的代码编译通过运行结果:false
#2
为什么我编译通不过?
我也不知道运行结果,就是想看结果啊.
但是这里是错误的:
public boolean equals(Circled circled)
因为equals方法是:object1.equals(object2)
我也不知道运行结果,就是想看结果啊.
但是这里是错误的:
public boolean equals(Circled circled)
因为equals方法是:object1.equals(object2)
#3
TestEquals.java:3: non-static variable this cannot be referenced from a static c
ontext
Object circled1 = new Circled();
^
TestEquals.java:4: non-static variable this cannot be referenced from a static c
ontext
Object circled2 = new Circled();
^
2 errors
ontext
Object circled1 = new Circled();
^
TestEquals.java:4: non-static variable this cannot be referenced from a static c
ontext
Object circled2 = new Circled();
^
2 errors
#4
顶一下有分么,你其它的编译能通过么,
我没分了
我没分了
#5
可以运行。。。。
鉴定完毕。。
呵呵
鉴定完毕。。
呵呵
#6
class Circled能通过编译,就是那个问题.
#7
顶上去啊,牛大哥们怎么都不在啊?
#8
应该没有问题吧
#9
我自己也觉得是啊,但是编译不过,郁闷啊
#10
我试了能运行,结果为false
可能你出的不是程序方面的问题
可能你出的不是程序方面的问题
#11
to myshinesxg:
为什么我编译不过呢?结果应该是false
class Circled{
double radius;
public boolean equals(Circled circled){
return this.radius == circled.radius;
}
}
修改为
class Circled{
double radius;
public boolean equals(Object circled){
return this.radius == ((Circled)circled).radius;
}
}
这样应该就可以得出正确结果.
为什么我编译不过呢?结果应该是false
class Circled{
double radius;
public boolean equals(Circled circled){
return this.radius == circled.radius;
}
}
修改为
class Circled{
double radius;
public boolean equals(Object circled){
return this.radius == ((Circled)circled).radius;
}
}
这样应该就可以得出正确结果.
#12
关注钟
#13
Object 里没有radius
#14
Object a=new Object(),v=new Object();
System.out.println(a.equals(v));
System.out.println(a.equals(v));
#15
public class TestEquals{
public static void main(String[] args){
Circled circled1 = new Circled();
Circled circled2 = new Circled();
System.out.println(circled1.equals(circled2));
}
}
class Circled{
public double radius;
public boolean equals(Circled circled){
return this.radius == circled.radius;
}
}
你看一下这样可不可以了,,
结果是false
public static void main(String[] args){
Circled circled1 = new Circled();
Circled circled2 = new Circled();
System.out.println(circled1.equals(circled2));
}
}
class Circled{
public double radius;
public boolean equals(Circled circled){
return this.radius == circled.radius;
}
}
你看一下这样可不可以了,,
结果是false
#16
compile:
run-single:
true
BUILD SUCCESSFUL (total time: 1 second)
run-single:
true
BUILD SUCCESSFUL (total time: 1 second)
#17
这个例子练习的是多态,如果那样该了就不是多态了~
#18
最后发现原来是自己不小心搞错了,这两个类我是放在不同文件中的,而我调试的是两个类在同一个文件中的,那样的话,要把内部类声明为static就好了~
结贴了~
结贴了~
#1
搞笑嘛。我用你的代码编译通过运行结果:false
#2
为什么我编译通不过?
我也不知道运行结果,就是想看结果啊.
但是这里是错误的:
public boolean equals(Circled circled)
因为equals方法是:object1.equals(object2)
我也不知道运行结果,就是想看结果啊.
但是这里是错误的:
public boolean equals(Circled circled)
因为equals方法是:object1.equals(object2)
#3
TestEquals.java:3: non-static variable this cannot be referenced from a static c
ontext
Object circled1 = new Circled();
^
TestEquals.java:4: non-static variable this cannot be referenced from a static c
ontext
Object circled2 = new Circled();
^
2 errors
ontext
Object circled1 = new Circled();
^
TestEquals.java:4: non-static variable this cannot be referenced from a static c
ontext
Object circled2 = new Circled();
^
2 errors
#4
顶一下有分么,你其它的编译能通过么,
我没分了
我没分了
#5
可以运行。。。。
鉴定完毕。。
呵呵
鉴定完毕。。
呵呵
#6
class Circled能通过编译,就是那个问题.
#7
顶上去啊,牛大哥们怎么都不在啊?
#8
应该没有问题吧
#9
我自己也觉得是啊,但是编译不过,郁闷啊
#10
我试了能运行,结果为false
可能你出的不是程序方面的问题
可能你出的不是程序方面的问题
#11
to myshinesxg:
为什么我编译不过呢?结果应该是false
class Circled{
double radius;
public boolean equals(Circled circled){
return this.radius == circled.radius;
}
}
修改为
class Circled{
double radius;
public boolean equals(Object circled){
return this.radius == ((Circled)circled).radius;
}
}
这样应该就可以得出正确结果.
为什么我编译不过呢?结果应该是false
class Circled{
double radius;
public boolean equals(Circled circled){
return this.radius == circled.radius;
}
}
修改为
class Circled{
double radius;
public boolean equals(Object circled){
return this.radius == ((Circled)circled).radius;
}
}
这样应该就可以得出正确结果.
#12
关注钟
#13
Object 里没有radius
#14
Object a=new Object(),v=new Object();
System.out.println(a.equals(v));
System.out.println(a.equals(v));
#15
public class TestEquals{
public static void main(String[] args){
Circled circled1 = new Circled();
Circled circled2 = new Circled();
System.out.println(circled1.equals(circled2));
}
}
class Circled{
public double radius;
public boolean equals(Circled circled){
return this.radius == circled.radius;
}
}
你看一下这样可不可以了,,
结果是false
public static void main(String[] args){
Circled circled1 = new Circled();
Circled circled2 = new Circled();
System.out.println(circled1.equals(circled2));
}
}
class Circled{
public double radius;
public boolean equals(Circled circled){
return this.radius == circled.radius;
}
}
你看一下这样可不可以了,,
结果是false
#16
compile:
run-single:
true
BUILD SUCCESSFUL (total time: 1 second)
run-single:
true
BUILD SUCCESSFUL (total time: 1 second)
#17
这个例子练习的是多态,如果那样该了就不是多态了~
#18
最后发现原来是自己不小心搞错了,这两个类我是放在不同文件中的,而我调试的是两个类在同一个文件中的,那样的话,要把内部类声明为static就好了~
结贴了~
结贴了~