助教可以看看有什么累赘的或者可以改进的地方吗

助教可以看看有什么累赘的或者可以改进的地方吗

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.zqy.ball;
 
public interface Ball {
    public abstract String play();
}
 
package com.zqy.ball;
 
public class BallTest implements Ball{
    @Override
    public String play() {
        // TODO Auto-generated method stub
        return null;
    }
    public class Inner_m implements Ball{
 
        @Override
        public String play() {
            // TODO Auto-generated method stub
             
            return "成员内部类:"+'\r'+"打篮球";
        }
         
    }
    public Object info(){
         class Inner_f implements Ball{
 
            @Override
            public String play() {
                // TODO Auto-generated method stub
                 
                return "**********"+'\r'+"方法内部类:"+'\r'+"打乒乓球";
            }
             
        }
         return new Inner_f().play();
    }
     
}
 
package com.zqy.test;
 
import com.zqy.ball.BallTest;
 
public class TestBall {
    public void getPlay(BallTest balltest){
        System.out.println(balltest.play());
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        TestBall tb=new TestBall();
        BallTest test=new BallTest();
        BallTest.Inner_m test1=test.new Inner_m();
        System.out.println(test1.play());
        System.out.println(test.info());
        tb.getPlay(new BallTest() {
            @Override
            public String play() {
                // TODO Auto-generated method stub
                return "**********"+'\r'+"匿名内部类:"+'\r'+"打排球";
            }
        });
    }
     
}


正在回答 回答被采纳积分+1

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

2回答
提问者 weibo_飞来云去_0 2017-10-13 21:37:07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package com.zqy.ball;
 
public interface Ball {
    public abstract void play();
}
 
package com.zqy.ball;
 
public class BallTest {
    public void playBall(Ball ball){
        ball.play();
    }
    public class Inner_m implements Ball{
 
        @Override
        public void play() {
            // TODO Auto-generated method stub
            System.out.println("成员内部类:");
            System.out.println("打篮球");
            //return "成员内部类:"+'\r'+"打篮球";
        }
         
    }
    public void info(){
         class Inner_f implements Ball{
 
            @Override
            public void play() {
                // TODO Auto-generated method stub
                System.out.println("**********");
                System.out.println("方法内部类:");
                System.out.println("打乒乓球");
                //return "**********"+'\r'+"方法内部类:"+'\r'+"打乒乓球";
            }
             
        }
        new Inner_f().play();
    }
     
}
 
package com.zqy.test;
 
import com.zqy.ball.Ball;
import com.zqy.ball.BallTest;
 
public class TestBall {
//    public void getPlay(BallTest balltest){
//      System.out.println(balltest.play());
//    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        BallTest test=new BallTest();
        BallTest.Inner_m test1=test.new Inner_m();
        test1.play();
        test.info();
        test.playBall(new Ball(){
 
            @Override
            public void play() {
                // TODO Auto-generated method stub
                System.out.println("**********");
                System.out.println("匿名内部类:");
                System.out.println("打排球");
            }
             
        });
    }
     
}


  • 没有问题了,祝学习愉快!
    2017-10-15 09:52:28
好帮手慕珊 2017-10-12 10:34:59

代码中还是存在一些问题的,具体如下:

Ball中play方法的返回值改为void,其他实现类也要对应着去改,把相关的方法中的return改为输出语句直接输出

BallTest类中没有定义playBall(Ball ball)方法,方法体中使用ball调用play()方法即可

BallTest类中play()方法的定义去掉

BallTest类中的info()方法改为void类型

TestBall类中,去掉getPlay方法的定义,将主方法中getPlay方法调用改为BallTest中的playBall方法。匿名类的代码不是new BallTest,应该是new Ball,是Ball接口的匿名内部类

祝学习愉快!


  • 提问者 weibo_飞来云去_0 #1
    package com.zqy.ball; public interface Ball { public abstract void play(); } package com.zqy.ball; public class BallTest { public void playBall(Ball ball){ ball.play(); } public class Inner_m implements Ball{ @Override public void play() { // TODO Auto-generated method stub System.out.println("成员内部类:"); System.out.println("打篮球"); //return "成员内部类:"+'\r'+"打篮球"; } } public void info(){ class Inner_f implements Ball{ @Override public void play() { // TODO Auto-generated method stub System.out.println("**********"); System.out.println("方法内部类:"); System.out.println("打乒乓球"); //return "**********"+'\r'+"方法内部类:"+'\r'+"打乒乓球"; } } new Inner_f().play(); } } package com.zqy.ball; public class BallTest { public void playBall(Ball ball){ ball.play(); } public void mm(Ball1 ball1){ ball1.mm(); } public class Inner_m implements Ball{ @Override public void play() { // TODO Auto-generated method stub System.out.println("成员内部类:"); System.out.println("打篮球"); //return "成员内部类:"+'\r'+"打篮球"; } } public void info(){ class Inner_f implements Ball{ @Override public void play() { // TODO Auto-generated method stub System.out.println("**********"); System.out.println("方法内部类:"); System.out.println("打乒乓球"); //return "**********"+'\r'+"方法内部类:"+'\r'+"打乒乓球"; } } new Inner_f().play(); } }
    2017-10-13 21:35:23
  • 提问者 weibo_飞来云去_0 #2
    我重新回复下,格式乱了
    2017-10-13 21:36:15
  • 你好!重新再问答里面贴一遍代码吧,这个因为没有格式,里面又有注释,不好区分了。而且也没找到主方法。
    2017-10-14 16:14:03
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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