java中应用程序的详细介绍
伟大软件的简易三步骤:
1.确认你的软件客户要它做的事。
2.运用基本的OO原则来增加软件的灵活性。
3.努力实现可维护、可重用的设计。
项目架构:
Guitar类:
1 package com.headfirst.guitar; 2 3 public class Guitar { 4 private String serialNumber, builder, model, type, backWood, topWood; 5 private double price; 6 7 public Guitar(String serialNumber, double price, String builder, 8 String model, String type, String backWood, String topWood){ 9 this.serialNumber = serialNumber;10 this.price = price;11 this.builder = builder;12 this.model = model;13 this.type = type;14 this.backWood = backWood;15 this.topWood = topWood;16 }17 18 public String getSerialNumber(){19 return serialNumber;20 }21 public double getPrice(){22 return price;23 }24 public void setPrice(float newPrice){25 this.price = newPrice;26 }27 public String getBuilder(){28 return builder;29 }30 public String getModel(){31 return model;32 }33 public String getType(){34 return type;35 }36 public String getBackWood(){37 return backWood;38 }39 public String getTopWood(){40 return topWood;41 }42 }
Inventory类:
1 package com.headfirst.guitar; 2 3 import java.util.Iterator; 4 import java.util.LinkedList; 5 import java.util.List; 6 7 public class Inventory { 8 9 private List guitars;10 11 public Inventory(){12 guitars = new LinkedList();13 }14 15 public void addGuitar(String serialNumber, double price, String builder, String model, String type,16 String backWood, String topWood){17 Guitar guitar = new Guitar(serialNumber, price, builder, 18 model, type, backWood, topWood);19 guitars.add(guitar);20 }21 22 public Guitar getGuitar(String serialNumber){23 for(Iterator i = guitars.iterator(); i.hasNext();){24 Guitar guitar = (Guitar) i.next();25 if(guitar.getSerialNumber().equals(serialNumber)){26 return guitar;27 }28 }29 30 return null;31 }32 33 public Guitar search(Guitar searchGuitar){34 for(Iterator i = guitars.iterator(); i.hasNext();){35 Guitar guitar = (Guitar) i.next();36 String builder = searchGuitar.getBuilder();37 if((builder != null) && (!builder.equals("")) && 38 (!builder.equals(guitar.getBuilder())))39 continue;40 41 String model = searchGuitar.getModel();42 if((model != null) && (!model.equals("")) && 43 (!model.equals(guitar.getModel())))44 continue;45 46 String type = searchGuitar.getType();47 if((type != null) && (!type.equals("")) && 48 (!type.equals(guitar.getType())))49 continue;50 51 String backWood = searchGuitar.getBackWood();52 if((backWood != null) && (!backWood.equals("")) && 53 (!backWood.equals(guitar.getBackWood())))54 continue;55 56 String topWood = searchGuitar.getTopWood();57 if((topWood != null) && (!topWood.equals("")) && 58 (!topWood.equals(guitar.getTopWood())))59 continue;60 return guitar;61 }62 63 return null;64 }65 }
搜寻测试代码:
1 package com.headfirst.guitar; 2 3 public class FindGuitarTester { 4 public static void main(String[] args){ 5 Inventory inventory = new Inventory(); 6 initializeInventory(inventory); 7 8 Guitar whatErinLikes = new Guitar("", 0, "fender", "Stratocastor", "electric", "Alder", "Alder"); 9 10 Guitar guitar = inventory.search(whatErinLikes);11 if(guitar != null){12 System.out.println("Erin, you might like this " + 13 guitar.getBuilder() + " " + guitar.getModel() + 14 " " + guitar.getType() + " guitar:\n " + 15 guitar.getBackWood() + " back and sides,\n " +16 guitar.getTopWood() + " top.\nYou can have it for only $" + 17 guitar.getPrice() + "!");18 }else{19 System.out.println("Sorry, Erin, we have nothing for you.");20 }21 }22 23 private static void initializeInventory(Inventory inventory){24 inventory.addGuitar("V95693", 1499.95, "Fender", "Stratocastor", "electric", "Alder", "Alder");25 }26 }
运行结果:
为什么,明明有,为什么说没有?
检查了代码,可能搜寻中“fender”的f是小写,而我们有的“Fender”是大写。
好,我们对吉他搜索工具进行第一个改善,去除掉所有String比较:
项目修改架构:
Builder.java:
1 package com.headfirst.guitar; 2 3 public enum Builder { 4 5 FENDER, MARTIN, GIBSON, COLLINGS, OLSON, RYAN, PRS, ANY; 6 7 public String toString(){ 8 switch(this){ 9 case FENDER:10 return "Fender";11 case MARTIN:12 return "Martin";13 case GIBSON:14 return "Gibson";15 case COLLINGS:16 return "Collings";17 case OLSON:18 return "Olson";19 case RYAN:20 return "Ryan";21 case PRS:22 return "Prs";23 case ANY:24 return "Any";25 default: 26 return "";27 }28 }29 }
Type.java:
1 package com.headfirst.guitar; 2 3 public enum Type { 4 ACOUSTIC, ELECTRIC; 5 6 public String toString(){ 7 switch(this){ 8 case ACOUSTIC: 9 return "acoustic";10 case ELECTRIC: 11 return "electric";12 default:13 return "";14 }15 }16 }
Wood.java:
1 package com.headfirst.guitar; 2 3 public enum Wood { 4 INDIAN_ROSEWOOD, BRAZILIAN_ROSEWOOD, ALDER; 5 6 public String toString(){ 7 switch(this){ 8 case INDIAN_ROSEWOOD: 9 return "Indian Rosewood";10 case BRAZILIAN_ROSEWOOD:11 return "Brazilian Rosewood";12 case ALDER:13 return "Alder";14 default:15 return "";16 }17 }18 }
修改FindGuitarTester.java第8行代码:
1 Guitar whatErinLikes = new Guitar("", 0, "Builder.FENDER", "Stratocastor", "Type.ELECTRIC", "Wood.ALDER", "Wood.ALDER");
修改Inventory.java中search()方法:
1 public Guitar search(Guitar searchGuitar){ 2 for(Iterator i = guitars.iterator(); i.hasNext();){ 3 Guitar guitar = (Guitar) i.next(); 4 5 if(searchGuitar.getBuilder() != guitar.getBuilder()) 6 continue; 7 8 String model = searchGuitar.getModel().toLowerCase(); 9 if((model != null) && (!model.equals("")) && 10 (!model.equals(guitar.getModel().toLowerCase())))11 continue;12 13 if(searchGuitar.getType() != guitar.getType())14 continue;15 16 if(searchGuitar.getBackWood() != guitar.getBackWood())17 continue;18 19 if(searchGuitar.getTopWood() != guitar.getTopWood())20 continue;21 22 return guitar;23 }24 25 return null;26 }
现在我们担心的是Model属性,我们没有把它做成enum,并且Model没有办法限制,所以做不出enum。
除此之外:我们修改的地方还有:
各种变量的类型,用enum的全部替换掉。
以上是java中应用程序的详细介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

如果您在Windows11中使用照片应用程序进行图像编辑时遇到无法保存更改的错误,本文将为您提供解决方案。无法保存更改。保存时出错。请稍后再试.通常会出现这种问题的原因包括权限设置不正确、文件损坏或系统故障。因此,我们经过深入研究,整理出一些最有效的故障排除步骤,以帮助您解决此问题,并确保您可以继续在Windows11设备上无缝使用MicrosoftPhotos应用程序。修复Windows11中无法保存更改照片应用程序的错误许多用户在不同的论坛上一直在谈论MicrosoftPhotos应用程序错

iPhone上的无边记是什么?与iOS17日记应用程序一样,无边记是一款具有大量创意潜力的生产力应用程序。这是一个将想法变为现实的好地方。您可以安排项目、集思广益或创建情绪板,这样您就不会没有空间来表达自己的想法。该应用程序允许您在无限画布上的任何位置添加照片、视频、音频、文档、PDF、网络链接、贴纸等。“无边记”中的许多工具(如画笔、形状等)对于使用iWork应用程序(如Keynote讲演或备忘录)的任何人都很熟悉。与同事、队友和小组项目成员进行实时协作也很容易,因为Freeform允许通过消

从“访达”查看macOS剪贴板历史记录当您在Mac上复制任何内容(文本,图像,文件,URL等)时,它会进入“剪贴板”。以下是查看Mac上上次复制的内容的方法。转到Finder,然后单击菜单栏中的“编辑”点击“显示剪贴板”这将打开一个窗口,显示macOS剪贴板的内容。在Mac中获取包含多个项目的剪贴板历史记录当然,本机Mac剪贴板历史记录并不是您可以拥有的最通用的工具。它只显示您复制的最后内容,因此,如果您希望一次复制多个内容,然后将它们全部粘贴在一起,那么您根本无法做到这一点。但是,如果您正在寻

在Windows系统中,照片应用是一个便捷的方式来查看和管理照片和视频。通过这个应用程序,用户可以轻松访问他们的多媒体文件,而无需安装额外的软件。然而,有时候用户可能会碰到一些问题,比如在使用照片应用时遇到“无法打开此文件,因为不支持该格式”的错误提示,或者在尝试打开照片或视频时出现文件损坏的问题。这种情况可能会让用户感到困惑和不便,需要进行一些调查和修复来解决这些问题。当用户尝试在Photos应用程序上打开照片或视频时,会看到以下错误。抱歉,照片无法打开此文件,因为当前不支持该格式,或者该文件

AppleVisionPro头戴式设备本身与电脑不兼容,因此您必须将其配置为连接到Windows电脑。自推出以来,AppleVisionPro一直备受追捧,拥有其尖端功能和广泛的可操作性,很容易理解原因。虽然您可以对其进行一些调整以适应PC,并且其功能在很大程度上取决于AppleOS,因此其功能将受到限制。如何将AppleVisionPro连接到我的电脑?1.验证系统要求你需要最新版本的Windows11(不支持自定义电脑和Surface设备)支持64位2GHZ或更快的快速处理器高性能GPU,最

当小伙伴的电脑缺失一定的文件之后就会出现应用程序无法正常启动0xc000012d的情况,其实只要重新下载文件并安装就可以很好的解决了哟。应用程序无法正常启动0xc000012d:1、首先用户需要下载“.netframework”。2、然后找到下载地址并将其下载到自己的计算机上。3、然后在桌面双击开始运行。4、安装完成之后返回之前错误的程序位置,再次打开程序即可。

MicrosoftPaint在Windows11/10中不起作用吗?嗯,这似乎是一个常见的问题,我们有一些很好的解决方案来解决这个问题。用户一直抱怨说,当试图使用MSPaint时,无法工作或打开。应用程序中的滚动条不起作用,粘贴图标没有显示,崩溃,等等。幸运的是,我们收集了一些最有效的故障排除方法来帮助您解决MicrosoftPaint应用程序的问题。为什么MicrosoftPaint不起作用?MSPaint无法在Windows11/10PC上运行的一些可能原因如下:安全标识符已损坏。挂起的系统

许多用户一直在抱怨,每次尝试使用MicrosoftTeams登录时都会遇到错误代码caa90019。尽管这是一款方便的沟通应用程序,但这种错误却很普遍。修复MicrosoftTeams错误:caa90019在这种情况下,系统显示的错误消息为:“抱歉,我们目前遇到问题。”我们已准备好一份终极解决方案清单,可帮助您解决MicrosoftTeams错误caa90019。初步步骤以管理员身份运行清除MicrosoftTeams应用程序缓存删除settings.json文件从凭据管理器中清除Microso
