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;
但是无论是哪种,我编译时候都还是那两个问题. 展开
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;
但是无论是哪种,我编译时候都还是那两个问题. 展开
4个回答
展开全部
public class Circled{
去掉public ,一个文件中只允许一个public的类
去掉public ,一个文件中只允许一个public的类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
生成实例的时候,你需要把object声明成静态的才行。
不记得怎么写了,在出错行前面加static关键字试试?
不记得怎么写了,在出错行前面加static关键字试试?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没问题啊,没错啊,我可以编译通过的
楼上的简直乱说
人家这里是多态,你new Object()是什么意思?
有点道德好不好
楼上的简直乱说
人家这里是多态,你new Object()是什么意思?
有点道德好不好
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
circled1.equals(circled2);
需要的是 Circled 但是提交的是 Object
需要的是 Circled 但是提交的是 Object
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询