java学习面向对象编程练习项目----电影信息系统管理

发布时间:2024年01月19日

首先,作为学习java的初学者,这里的注释是七天时间学习java的个人看法,希望可以有助于大家理解!

项目:电影信息系统管理

需求:

1.要求展示系统中的全部电影(每部电影的名称,价格)
2.允许用户通过使用电影id查询某一电影的详细信息:id 名称,价格,评分,导演,主演,其他(多少人想看);

分析:

//主要步骤:
//1.先创建一个电影类;(为了在电影类中存储电影的信息,要求电影类是一个javabean类);
//2.再创建一个电影操作类,为了提供服务,需要提供两种选择(1或需求2);展示所有电影信息;通过id查询某电影的具体信息;
//3.以上两点是其他类文件完成,主程序中需要先创建电影的对象,完成电影信息的初始化;
//4.再需要创建电影操作的对象,通过对方法的调用,完成电影数据的各种操作;

?对象类:这里是把电影抽象为对象,创建一个电影类;

public class ObjectTest {
    //实体类:需要private的所有属性变量;
    //对每个变量都写对外暴露的set,get方法;
    //一定要有无参构造器(为了数据输入方便,先写有参的,最后补充一个无参的)

    private int id;//电影id;
    private double price;//电影价格;
    private double score;//电影评分
    private String name;//电影名称;
    private String director;//导演;
    private String actor;//主演;
    private String info;//其他;

    //无参构造器;实体类的必要条件;
    public ObjectTest() {
    }
    //有参构造器;方便数据的导入;
    public ObjectTest(int id, String name, double price, double score,  String director, String actor, String info) {

        this.id = id;
        this.name = name;
        this.price = price;
        this.score = score;
        this.director = director;
        this.actor = actor;
        this.info = info;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDirector() {
        return director;
    }

    public void setDirector(String director) {
        this.director = director;
    }

    public String getActor() {
        return actor;
    }

    public void setActor(String actor) {
        this.actor = actor;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }
}

//总结:对象类的创建就是为了   对数据的管理(对数据的修改,设置,取值)

?2.创建对象对应的操作类:

public class ObjectOperate {
    //电影操作类:需要对多个电影进行操作,因此会定义一个电影类数组的对象;
    private ObjectTest[] movie;//操作对象;
    //为了方便电影内容的导入,定义一个有参构造器


    public ObjectOperate(ObjectTest[] movie) {
        this.movie = movie;         //有参构造器将给的movie传输给操作对象,作为初始化赋值;
    }

    //展示全部电影信息;
    public void printAllMovie()
    {
        System.out.println("----系统全部电影信息如下----");
        for (int i = 0; i < movie.length; i++) {
            ObjectTest m = movie[i];
            System.out.println("编号:" + m.getId());
            System.out.println("名称:" + m.getName());
            System.out.println("价格:" + m.getPrice());
            System.out.println("----------------------");
        }
    }

    public void searchMovie(int id)
    {
        for (int i = 0; i < movie.length; i++) {
            ObjectTest m = movie[i];
            if(m.getId() == id)
            {
                System.out.println("编号:" + m.getId());
                System.out.println("名称:" + m.getName());
                System.out.println("价格:" + m.getPrice());
                System.out.println("评分:" + m.getScore());
                System.out.println("导演:" + m.getDirector());
                System.out.println("主演:" + m.getActor());
                System.out.println("其他信息:" + m.getInfo());
                return;
            }
        }
        System.out.println("抱歉,无该电影信息!");
    }
}

//总结:对象操作类就是     对数据进行操作的各种方法 ;
//对象操作类  =  对象的导入  +   操作的方法;
//由于对象操作类与对象类一般放在两个不同的类中,所以对象类设计的对象不可以直接访问
//需要先在操作类中创建一个对象,以及为了方便数据传输,会在对象创建好后,写出对象的有参构造器,不要忘了还有无参构造器。
//至于操作的方法,根据需求判断方法是否需要返回值,是否需要参数

?3.最后考虑主程序,主程序主要:

? ? ? ? 1)准备对象的所有数据;

? ? ? ? 2)模拟系统目录;

public class MainTest {
//需求:1.要求展示系统中的全部电影(每部电影的名称,价格)
    // 2.允许用户通过使用电影id查询某一电影的详细信息:id 名称,价格,评分,导演,主演,其他(多少人想看);
               //价格  评分
    //1,"水门桥",99.5,96.4,"徐克","吴京","10万人想看"
    //2,"月球陨落",90.5,92.4,"罗兰","贝瑞","19.7万人想看"
    //3,"一点就到家",20,96,"许宏伟","刘昊然","20.9万人想看"

    public static void main(String[] args) {
        //主要步骤:
        //1.先创建一个电影类;(为了在电影类中存储电影的信息,要求电影类是一个javabean类);
        //2.再创建一个电影操作类,为了提供服务,需要提供两种选择(1或需求2);展示所有电影信息;通过id查询某电影的具体信息;
        //3.以上两点是其他类文件完成,主程序中需要先创建电影的对象,完成电影信息的初始化;
        //4.再需要创建电影操作的对象,通过对方法的调用,完成电影数据的各种操作;

        ObjectTest[] movie = new ObjectTest[3];//创建一个电影类的数组,存放三个对象;

        //创建三个电影对象,并对三个电影对象初始化(准备电影信息);
        movie[0] = new ObjectTest(1,"水门桥",99.5,96.4,"徐克","吴京","10万人想看");
        movie[1] = new ObjectTest(2,"月球陨落",90.5,92.4,"罗兰","贝瑞","19.7万人想看");
        movie[2] = new ObjectTest(3,"一点就到家",20,96,"许宏伟","刘昊然","20.9万人想看");
        //创建一个电影操作类的对象;
        ObjectOperate operate = new ObjectOperate(movie);//operate就是创建的一个电影操作类的对象,可以通过它进行使用操作的方法;

        //模拟真实系统:
        System.out.println("===电影信息系统===");
        System.out.println("1.查询所有电影信息");
        System.out.println("2.通过电影id查询电影详细信息");
        System.out.println("请你输入操作命令:");
        //创建扫描器对象;
        Scanner sc = new Scanner(System.in);
        //死循环的命令输入界面,是为了防止非法输入,以实现重新输入的作用;
        while (true) {
            int commond = sc.nextInt();
            switch (commond)
            {
                case 1:
                    operate.printAllMovie();
                    break;
                case 2:
                    System.out.println("请您输入电影id:");
                    int id = sc.nextInt();
                    operate.searchMovie(id);
                    break;
                default:
                    System.out.println("您的输入非法!请重新输入:");
            }
        }

    }
}

?到这里,整个java的电影信息系统就完整了;其中关于放置电影的数量以及种类可以自行增减;

文章来源:https://blog.csdn.net/2303_79380171/article/details/135686208
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。