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

蓝色高科技网站模板上海网站推广平台

蓝色高科技网站模板,上海网站推广平台,wordpress视频去广告插件下载,一个公司完整的组织架构有许多方法可以把对象堆起来成为一个集合#xff08;Collection#xff09;#xff0c;比如放入数组、堆栈或散列表中。若用户直接从这些数据结构中取出对象#xff0c;则需要知道具体是存在什么数据结构中#xff08;如栈就用peek#xff0c;数组[]#xff09;。迭代器…有许多方法可以把对象堆起来成为一个集合Collection比如放入数组、堆栈或散列表中。若用户直接从这些数据结构中取出对象则需要知道具体是存在什么数据结构中如栈就用peek数组[]。迭代器能够让客户遍历你的对象而又无法窥视你存储对象的方式。 对象村餐厅和煎饼屋合并了它们有着不同的菜单列表但菜单项基础都是一样的。 class MenuItem { private:string name;string description;bool vegetarian;double price;public:MenuItem(string name, string description, bool vegetarian, double price){this-name name;this-description description;this-vegetarian vegetarian;this-price price;}string getName(){return name;}string getDescription(){return description;}bool isVegetarian(){return vegetarian;}double getpPrice(){return price;} }; 下面就写Java代码了改成C一时半会还是做不过来。 public class PancakeHouseMenu {ArrayList menuItems;public PancakeHouseMenu(){menuItems new ArrayList();addItem(KBs Pancake Breakfast, Pancakes with scrambled eggs, and toast, true, 2.99);}public void addItem(String name, String description, boolean vegetarian, double price){MenuItem menuItem new MenuItem(name, description, vegetarian, price);menuItems.add(menuItem);}public ArrayList getMenuItems(){return menuItems;} };/ ********************************************************/ public class DinerMenu {static final int MAX_ITEMS 6;int numberOfItems 0;MenuItem[] menuItems;public DinerMenu(){menuItems new MenuItem[MAX_ITEMS];addItem(Vegetarian BLT, Fakin Bacon, true, 2.99);}public void addItem(String name, String description, boolean vegetarian, double price){MenuItem menuItem new MenuItem(name, description, vegetarian, price);if (numberOfItems MAX_ITEMS){System.err.println(Sorry, menu is full! Cant add item to menu);}else{menuItems[numberOfItems] menuItem;}}public MenuItem[] getMenuItems(){return menuItems;} }; 这两种不同的菜单表现方式会使得女招待需要知道菜单的实现细节才能对菜单进行遍历。 PancakeHouseMenu pancakeHouseMenu new PancakeHouseMenu(); ArrayList breakfastItems pancakeHouseMenu.getMenuItems();for breakfastItems.size() MenuItem menuItem (MenuItem)breakfastItems.get(i);/ ******************************************************************* / DinerMenu dinerMenu new DinerMenu(); MenuItem[] lunchItems DinerMenu.getMenuItems();for lunchItems.size() MenuItem menuItem lunchItems[i]; 如果还有第三家餐厅以不同的实现出现我们就需要有三个循环。 因此我们需要创建一个对象迭代器封装“遍历集合内的每个对象的过程”。 Iterator iter breakfastItems.createIterator();while (iter.hasNext()) {MenuItem menuItem (MenuItem)iter.next(); } 当我们拥有迭代器接口后我们就可以为各种对象集合实现迭代器 public interface Iterator {boolean hasNext();Object next(); };public class DinerMenuIterator implements Iterator {MenuItem[] items;int position 0;public DinerMenuIterator(MenuItem[] items){this.items items;}public Object next(){MenuItem menuItem items[position];return menuItem;}public boolean hasNext(){if (position items.length || items[position] null) return false;else return true;} }; 有了DinerMenuIterator后就可以改造DinerMenu和PancakeHouseMenu。 public class DinerMenu {static final int MAX_ITEMS 6;int numberOfItems 0;MenuItem[] menuItems;// public DinerMenu()// addItem()// 删除getMenuItems()public Iterator createIterator(){// 返回迭代器接口。客户不需要知道餐厅菜单如何维护菜单项return new DinerMenuIterator(menuItems);} }; public class Waitress {PancakeHouseMenu pancakeHouseMenu;DinerMenu dinerMenu;public Waitress(PancakeHouseMenu pancakeHouseMenu, DinerMenu dinerMenu) {this.pancakeHouseMenu pancakeHouseMenu;this.dinerMenu dinerMenu;}public void printMenu() {Iterator pancakeIterator pancakeHouseMenu.createIterator();Iterator dinerIterator dinerMenu.createIterator();System.out.println(MENU\n----\nBREAKFAST);printMenu(pancakeIterator);System.out.println(\nLUNCH);printMenu(dinerIterator);}private void printMenu(Iterator iterator) {while (iterator.hasNext()) {MenuItem menuItem iterator.next();System.out.print(menuItem.getName() , );System.out.print(menuItem.getPrice() -- );System.out.println(menuItem.getDescription());}} } 现在可以进一步对waitress进行优化因为她还捆绑与两个具体的菜单类。但在优化之前我们先看下目前的设计。 除了使用自己构建的迭代器接口外还可以直接使用java.util的迭代器接口同时ArrayList也有一个返回迭代器的方法。 // 煎饼屋的代码public Iterator createIterator() {return menuItems.iterator(); }// 餐厅的代码public class DinerMenuIterator implements Iterator {MenuItem[] list;int position 0;public DinerMenuIterator(MenuItem[] list) {this.list list;}public MenuItem next() {MenuItem menuItem list[position];position position 1;return menuItem;}public boolean hasNext() {if (position list.length || list[position] null) {return false;} else {return true;}}public void remove() {if (position 0) {throw new IllegalStateException(You cant remove an item until youve done at least one next());}if (list[position-1] ! null) {for (int i position-1; i (list.length-1); i) {list[i] list[i1];}list[list.length-1] null;}}} 最后我们再给菜单一个共同的接口然后修改下女招待。 public interface Menu {public Iterator createIterator(); }public class Waitress {Menu pancakeHouseMenu;Menu dinerMenu;public Waitress(Menu pancakeHouseMenu, Menu dinerMenu) {this.pancakeHouseMenu pancakeHouseMenu;this.dinerMenu dinerMenu;}public void printMenu() {IteratorMenuItem pancakeIterator pancakeHouseMenu.createIterator();IteratorMenuItem dinerIterator dinerMenu.createIterator();System.out.println(MENU\n----\nBREAKFAST);printMenu(pancakeIterator);System.out.println(\nLUNCH);printMenu(dinerIterator);}private void printMenu(Iterator iterator) {while (iterator.hasNext()) {MenuItem menuItem (MenuItem)iterator.next();System.out.print(menuItem.getName() , );System.out.print(menuItem.getPrice() -- );System.out.println(menuItem.getDescription());}}}
http://www.w-s-a.com/news/969855/

相关文章:

  • 雅安工程交易建设网站做vip电影网站
  • 网站建设方维网站标题title为什么不能频繁的改
  • 网站建设如何上传文件wordpress列表自定义数据表
  • 摄影课程自学网站科技项目的类型有
  • 未来最紧缺的十大专业长春seo顾问
  • 为什么点不开网站公关公司是做什么的
  • wordpress主要菜单如何对网站页面进行优化
  • 建设银行深分行圳招聘网站建立互联网公司网站
  • 湖南做旅游网站哪家最好html5手机网站免费模板
  • 云服务器上放多个网站wordpress ping大全
  • 以下属于网站的管理 更新 维护如何才能做好品牌网站建设
  • 国家工业和信息化部网站备案系统网站建设设计费用
  • 网站建设利弊宁波高端网站建设联系方式
  • 网站订票策划方案郑州代做网站
  • 免费的网站加速器注册公司邮箱
  • 千助网站建设网站整站程序
  • 自学建网站做网站优化访问网站出现目录
  • 济南网站建设是什么百度官网登录入口手机版
  • net快速建站西宁手机网站建设
  • 网站浏览器不兼容怎么办软件系统开发大概多少钱
  • 网站建设哪个公司最好shift wordpress
  • 公司网站建设功能介绍室内设计学习
  • 做网站策划容易遇到哪些问题沈阳公司网站制作
  • 做php网站都用框架吗网站备案当面核验拍摄照片
  • 泉州企业自助建站兰州最好的互联网公司
  • 监察部门网站建设方案网站seo技术教程
  • 个人网站制作源代码下载品牌建设部
  • 网站备案需要准备什么文创产品设计思路
  • 网站开发书籍推荐青岛城阳新闻最新消息
  • 秦皇岛网站建设服务聊城做网站的公司资讯