这个题为什么不能选择“没有实例化对象”

这个题为什么不能选择“没有实例化对象”

在实例化对象之后,静态方法中也可以通过创建的对象名调用run方法吧

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

你可以按照题目代码输入的IDE中,查看一下报错信息,提示是缺少参数(图1),如果你添加一个String类型的参数,会提示图2,不能在静态方法中访问非静态方法。这两个是核心错误。的确通过实例化对象,通过对象.方法可以去访问非静态,但这个不是引起错误的直接原因。如果题目只能选两个答案,图中的这两个是直接原因。你说的实例化方式是一个解决错误的方式,不是造成报错的直接原因。

http://img1.sycdn.imooc.com//climg/5bbeac760001edb905340173.jpg

http://img1.sycdn.imooc.com//climg/5bbeacc00001f67a05880197.jpg

提问者 凯尔特饼 2018-10-11 00:09:28
public void run(String name){
		System.out.println(name);
}
public static void eat(){
		test1 tt=new test1();
		tt.run("快跑");
}

这样输出没错啊,为什么实例化对象这个选项不能选呢

好帮手慕查理 2018-10-09 10:14:54

您好,因为实例化对象之后,run();位置的错误依旧是存在的。run();这行报错的原因是:不能在静态方法中,直接调用同类中的非静态方法。run()方法缺少参数传递。因此不选没有实例化对象。祝学习愉快!

  • 提问者 凯尔特饼 #1
    public void run(String name){ System.out.println(name); } public static void eat(){ test1 tt=new test1(); tt.run("快跑"); } 这样不是可以的吗,实例化对象之后这个快跑就可以输出了
    2018-10-11 00:07:50
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师