当前位置: 首页 > news >正文

Java第二阶段---10方法带参---第三节 面向对象和面向过程的区别

1.案例

2.代码实现

面向过程

import java.util.Scanner;/*** Procedure Oriented Programming 面向过程编程*/public class POP {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(true){System.out.println("1.学生成绩管理");System.out.println("2.学生选修管理");System.out.println("3.退出系统");System.out.println("请选择:");int input = sc.nextInt();if(input == 1){outer:while(true){System.out.println("1.增加成绩");System.out.println("2.修改成绩");System.out.println("3.删除成绩");System.out.println("4.增加查询成绩");System.out.println("5.返回主菜单");System.out.println("请选择菜单编号");int  order = sc.nextInt();switch(order){case 1 :System.out.println("你选择了增加成绩");break;case 2 :System.out.println("你选择了修改成绩");break;case 3 :System.out.println("你选择了删除成绩");break;case 4 :System.out.println("你选择了查询成绩");break;case 5 :break outer;}}}else if(input ==2){System.out.println("你选择了选课系统");}else{System.out.println("感谢使用XX系统");break;}}}
}

面向对象

分析:

a.该过程涉及到的对象(事物)有两个:用户和菜单

b.用户拥有执行增删改查的动作

public class Menu {public int order;//编号public String name;public Menu(int order,String name){this.order=order;this.name=name;}public void show(){System.out.println(order + "." + name);}
}
public class User {public void addScore(){System.out.println("你选择了增加成绩");}public void deleteScore(){System.out.println("你选择了删除成绩");}public void updateScore(){System.out.println("你选择了修改成绩");}public void searchScore(){System.out.println("你选择了查询成绩");}
}
import java.util.Scanner;/*** Object Oriented Programming 面对对象编程*/
public class OOP {public static Menu[] mainMenus = {new Menu(1,"学生成绩管理"),new Menu(2,"学生选课管理"),new Menu(3,"退出系统")};public static Menu[] secondMenus = {new Menu(1,"增加成绩"),new Menu(2,"修改成绩"),new Menu(3,"删除成绩"),new Menu(4,"查询成绩"),new Menu(5,"返回主菜单")};public static Scanner sc = new Scanner(System.in);public static User user = new User();public static void main(String[] args) {gotoMain();}//去主菜单public static void gotoMain(){showMenus(mainMenus);//显示主菜单int number = sc.nextInt();if(number == 1){gotoSecond();}else if(number == 2){System.out.println("你选择了学生选课管理");gotoMain();//去主菜单}else{System.out.println("感谢使用XX系统");}}//去二级菜单public static void gotoSecond(){showMenus(secondMenus);//显示二级菜单int order = sc.nextInt();switch(order){case 1:user.addScore();//用户增加成绩gotoSecond();break;case 2:user.updateScore();//用户修改成绩gotoSecond();break;case 3:user.deleteScore();//用户删除成绩gotoSecond();break;case 4:user.searchScore();//用户查询成绩gotoSecond();break;case 5:gotoMain();break;}}public static void showMenus(Menu[] menus){for(int i=0;i<menus.length;i++){menus[i].show();;}System.out.println("请选择菜单编号:");}
}

对比

面向过程侧重点在过程的实现上。面向对象的侧重点在对象上,需要利用对象的行为来完成过程的组装。


http://www.mrgr.cn/news/42332.html

相关文章:

  • C语言基础(7)之操作符(1)(详解)
  • LeetCode题练习与总结:丢失的数字--268
  • 习题5 循环
  • 如何让70B参数的大型语言模型在资源有限的边缘设备上高效运行?
  • C/S模型的简单实现(UDP服务器)、本地套接字(sockaddr_un )的讲解
  • 银河麒麟V10 SP1如何进入救援模式?
  • 骨架屏 (懒加载优化)
  • 1.9 物理层设备
  • 高性能防静电主轴4033 AC-ESD 在线路板切割中的非凡表现
  • Java定时器的使用与实际应用场景
  • 淡水鱼目标检测数据集 31类 2900张 鱼数据集带标注 voc yolo
  • Java中的对象比较:Comparator与Comparable的最佳实践
  • Bootstrap 4 导航栏:构建响应式和现代的网页导航
  • SQL专项练习第一天
  • wpa_cli支持EAP-AKA认证运行设计
  • XHTML 简介
  • java 编译失败 内部 java 编译器错误
  • 螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习06(Docker网络连接)
  • Java | Leetcode Java题解之第454题四数相加II
  • 读数据湖仓06数据集成