老师方法内部类我就想用这个无参带返回值的该怎样修改呢?

老师方法内部类我就想用这个无参带返回值的该怎样修改呢?

//接口Ball
public interface  Ball {
    //创建抽象方法play():void
    void play();
 
}



//创建类BallTest
public class BallTest implements Ball {
    // 创建成员内部类Inner_m
    public class Inner_m {
        public void play(){
            System.out.println("打篮球");
        }
    }
    public void play(){
        
    }
	// 创建方法内部类
	public Object inside(){
	    class infor implements Ball{
	        public void play(){
	            System.out.println("****************");
	            System.out.println("打乒乓球");
	        }
	    }
	    return new infor().play();
	}


	// 定义一个方法void playBall(Ball ball),调用play()方法
    public void playBall(Ball ball){
        ball.play();
    }
}



//测试类
public class Test {

    public static void main(String[] args) {
    
		//完成成员内部类内部测试
	BallTest.Inner_m one=new BallTest().new Inner_m();
	one.play();
		//完成方法内部类测试
	BallTest two=new BallTest();
	System.out.println(two.inside());
		//完成匿名内部类测试
	two.playBall(new Ball(){
	    public void play(){
	        System.out.println("**************");
	        System.out.println("打排球");
	    }
	});
	}

}


正在回答

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

2回答

同学你好,非常抱歉老师之前没有理解同学想表达的意思,在方法内部类infor 的play方法中,是没有参数没有返回值的,所以return语句中,play方法并没有返回值,所以不能写在return中。同学可以先创建这个对象,调用play方法,再来返回这个对象,例如:

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

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

如上所示,再来尝试一下。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

好帮手慕小班 2020-03-10 18:44:19

同学你好,想用无参带返回值的方法,现在同学在方法内部类中使用的就是无参带返回值的方法呐

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

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

所以同学是想怎么修改这个代码呐,还麻烦同学具体描述一下。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 慕UI6522375 #1
    我想知道为什么做到像你标注的这两点程序依然错误,我现在这个代码编译错误的地方就是这个创建方法内部类这里,,,难道创建方法内部类若想写成带返回值的形式必须用get方法吗,,,我不明白我这样写为什么行不通?该怎样修改呢?
    2020-03-10 20:25:05
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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