java静态方法不可以调用非静态变量

publicclassTestEquals{publicstaticvoidmain(String[]args){Objectcircled1=newCircled();... public class TestEquals{
public static void main(String[] args){
Object circled1 = new Circled();
Object circled2 = new Circled();
System.out.println(circled1.equals(circled2));
}

}
public 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
为什么?
2楼的可以成功编译?
为什么我编译通不过啊?
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

2个class是在2个不同的文件中的,而且class Circled能够成功编译.
这里是错误的我知道:
public boolean equals(Circled circled)
因为equals方法是:object1.equals(object2)
这里应该改为正确的是:
public boolean equals(Object circled)
return this.radius == ((Circled)circled).radius;
但是无论是哪种,我编译时候都还是那两个问题.
展开
 我来答
mxm_1123
2007-11-20 · TA获得超过1779个赞
知道大有可为答主
回答量:496
采纳率:0%
帮助的人:0
展开全部
public class Circled{
去掉public ,一个文件中只允许一个public的类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
aryzhang1234
2007-11-20 · 超过92用户采纳过TA的回答
知道小有建树答主
回答量:449
采纳率:0%
帮助的人:0
展开全部
生成实例的时候,你需要把object声明成静态的才行。
不记得怎么写了,在出错行前面加static关键字试试?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JiestV
2007-11-20 · TA获得超过865个赞
知道答主
回答量:172
采纳率:0%
帮助的人:0
展开全部
没问题啊,没错啊,我可以编译通过的

楼上的简直乱说
人家这里是多态,你new Object()是什么意思?

有点道德好不好
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0a9ebac
2007-11-20 · TA获得超过813个赞
知道小有建树答主
回答量:1360
采纳率:0%
帮助的人:1228万
展开全部
circled1.equals(circled2);
需要的是 Circled 但是提交的是 Object
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式