黑马程序员技术交流社区

标题: 请大神帮忙分析一下题意 [打印本页]

作者: 1871037345    时间: 2016-7-24 11:15
标题: 请大神帮忙分析一下题意
本帖最后由 1871037345 于 2016-7-24 12:59 编辑

做这种题目少,没经验,希望大神带我分析一下,学习一下思路。

* 用面向对象的思想:(OC语言)
* 1,设计三个类,分别为Video,MoviesVideo 和 StudyVideo;
*   Video中有视频的名称name和视频的时长time两个属性,有一个看视频的对象方法lookVideo;
* 2,设计一个视频管理者VideoManager对象,里面有一个playVideo的类方法,播放视频的操作由VideoManager来完成;
* 要求:
* 1,使用VideoManager播放视频时,
     传StudyVideo,就调用StudyVideo中的看视频的方法;
     传MoviesVideo,就调用MoviesVideo中的看视频的方法;
2,调用lookVideo方法时,打印出视频的名称和时长;
作者: 13411939415    时间: 2016-7-24 11:15
楼主记得采纳哈.
1、这个问题首先是MoviesVideo 和 StudyVideo均继承自Video,就是说Video是他们的父类。
2、VideoManager类中playVideo()方法的形式参数需要定义为Video类型,就是要运用多态来解决问题。
具体代码可以参考一下我的:
public class lianxi10 {
        public static void main(String[] args) {
                MoviesVideo mv = new MoviesVideo("动漫","1:40");
                VideoManager.playVideo(mv);
               
                StudyVideo sv = new StudyVideo("电影","2:25");
                VideoManager.playVideo(sv);
        }
}

class Video {
        private String name;
        private String time;
       
        public Video() {};
       
        public Video(String name,String time) {
                this.name = name;
                this.time = time;
        }
       
        public void lookVideo() {
                System.out.println("name = " + name);
                System.out.println("time = " + time);
        }
}

class MoviesVideo extends Video {
        public MoviesVideo() {}
       
        public MoviesVideo(String name,String time){
                super(name,time);
        }
       
        public void lookVideo() {
                System.out.println("使用MoviesVideo中看视频的方法");
                super.lookVideo();
        }
}

class StudyVideo extends Video {
        public StudyVideo() {}
       
        public StudyVideo(String name,String time){
                super(name,time);
        }
       
        public void lookVideo() {
                System.out.println("使用StudyVideo中看视频的方法");
                super.lookVideo();
        }
}

class VideoManager {
        private VideoManager() {}
       
        public static void playVideo(Video v) {
                v.lookVideo();
        }
}
作者: jundehuang    时间: 2016-7-24 11:42
这是面试题吗?你是哪个方向?
作者: 1871037345    时间: 2016-7-24 13:00
我是选 iOS
作者: 1871037345    时间: 2016-7-24 13:01
jundehuang 发表于 2016-7-24 11:42
这是面试题吗?你是哪个方向?

我选的是--》iOS
作者: jundehuang    时间: 2016-7-25 08:08
1871037345 发表于 2016-7-24 13:01
我选的是--》iOS

好吧。。。
作者: 13411939415    时间: 2016-7-28 11:28
额,尴尬了,我这是java的代码,不知道对你有没有帮助
作者: 1871037345    时间: 2016-7-29 07:46
谢谢,有上面两句话就够了,问题已经解决,其实后来问过那位老师,他只提示了一句话,“从面向对象的特征去思考”,瞬间明白了,不知道是当时脑子短路,还是脑子里根本没有建立面向对象的思想,以后得多锻炼一下提取信息分析能力。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2