您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

java中应用程序的详细介绍

2024/2/29 15:46:51发布31次查看
伟大软件的简易三步骤:
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中应用程序的详细介绍的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product