首先,作为学习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的电影信息系统就完整了;其中关于放置电影的数量以及种类可以自行增减;