首頁 Java java教程 java中應用程式的詳細介紹

java中應用程式的詳細介紹

Jul 24, 2017 pm 04:40 PM
基石 應用程式

偉大軟體的簡易三步驟:

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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Windows 11中無法儲存變更照片應用程式錯誤 Windows 11中無法儲存變更照片應用程式錯誤 Mar 04, 2024 am 09:34 AM

如果您在Windows11中使用照片應用程式進行影像編輯時遇到無法儲存變更的錯誤,本文將為您提供解決方案。無法儲存變更。保存時發生錯誤。請稍後再試。通常會出現這種問題的原因包括權限設定不正確、檔案損壞或系統故障。因此,我們經過深入研究,整理出一些最有效的故障排除步驟,以幫助您解決此問題,並確保您可以繼續在Windows11裝置上無縫使用MicrosoftPhotos應用程式。修復Windows11中無法保存更改照片應用程式的錯誤許多用戶在不同的論壇上一直在談論MicrosoftPhotos應用程式錯

掌握在 iPhone 和 iPad 上使用「無邊記」應用程式的技巧 掌握在 iPhone 和 iPad 上使用「無邊記」應用程式的技巧 Nov 18, 2023 pm 01:45 PM

iPhone上的無邊記是什麼?與iOS17日記應用程式一樣,無邊記是一款具有大量創意潛力的生產力應用程式。這是一個將想法變為現實的好地方。您可以安排專案、集思廣益或建立情緒板,這樣您就不會沒有空間來表達自己的想法。該應用程式可讓您在無限畫布上的任何位置添加照片、影片、音訊、文件、PDF、網頁連結、貼紙等。 「無邊記」中的許多工具(如畫筆、形狀等)對於使用iWork應用程式(如Keynote講演或備忘錄)的任何人都很熟悉。與同事、隊友和小組專案成員進行即時協作也很容易,因為Freeform允許透過消

如何在Mac上查看剪貼簿歷史記錄 如何在Mac上查看剪貼簿歷史記錄 Sep 14, 2023 pm 12:09 PM

從「訪問」查看macOS剪貼簿歷史記錄當您在Mac上複製任何內容(文本,圖像,文件,URL等)時,它會進入「剪貼簿」。以下是查看Mac上上次複製的內容的方法。轉到Finder,然後點擊選單列中的“編輯”點擊“顯示剪貼簿”這將打開一個窗口,顯示macOS剪貼簿的內容。在Mac中取得包含多個項目的剪貼簿歷史記錄當然,本機Mac剪貼簿歷史記錄並不是您可以擁有的最通用的工具。它只顯示您複製的最後內容,因此,如果您希望一次複製多個內容,然後將它們全部貼上在一起,那麼您根本無法做到這一點。但是,如果您正在尋找

照片無法開啟此文件,因為格式不受支援或文件已損壞 照片無法開啟此文件,因為格式不受支援或文件已損壞 Feb 22, 2024 am 09:49 AM

在Windows系統中,照片應用程式是一個方便的方式來檢視和管理照片和影片。透過這個應用程序,用戶可以輕鬆存取他們的多媒體文件,而無需安裝額外的軟體。然而,有時用戶可能會碰到一些問題,例如在使用照片應用程式時遇到「無法開啟此文件,因為不支援該格式」的錯誤提示,或在嘗試開啟照片或影片時出現文件損壞的問題。這種情況可能會讓使用者感到困惑和不便,需要進行一些調查和修復來解決這些問題。當用戶嘗試在Photos應用程式上開啟照片或影片時,會看到以下錯誤。抱歉,照片無法開啟此文件,因為目前不支援該格式,或該文件

如何將Apple Vision Pro連接到PC 如何將Apple Vision Pro連接到PC Apr 08, 2024 pm 09:01 PM

AppleVisionPro頭戴式裝置本身與電腦不相容,因此您必須將其設定為連接到Windows電腦。自推出以來,AppleVisionPro一直備受追捧,擁有其尖端功能和廣泛的可操作性,很容易理解原因。雖然您可以對其進行一些調整以適應PC,並且其功能在很大程度上取決於AppleOS,因此其功能將受到限制。如何將AppleVisionPro連接到我的電腦? 1.驗證系統要求你需要最新版本的Windows11(不支援自訂電腦和Surface設備)支援64位元2GHZ或更快的快速處理器高效能GPU,最

如何解決應用程式啟動錯誤0xc000012d問題 如何解決應用程式啟動錯誤0xc000012d問題 Jan 02, 2024 pm 12:53 PM

當小夥伴的電腦缺少一定的檔案之後就會出現應用程式無法正常啟動0xc000012d的情況,其實只要重新下載檔案並安裝就可以很好的解決了喲。應用程式無法正常啟動0xc000012d:1、首先使用者需要下載「.netframework」。 2、然後找到下載地址並將其下載到自己的電腦。 3、然後在桌面雙擊開始運作。 4.安裝完成之後傳回先前錯誤的程式位置,再次開啟程式即可。

MS Paint在Windows 11中無法正常運作 MS Paint在Windows 11中無法正常運作 Mar 09, 2024 am 09:52 AM

MicrosoftPaint在Windows11/10中不起作用嗎?嗯,這似乎是一個常見的問題,我們有一些很好的解決方案來解決這個問題。用戶一直抱怨說,當試圖使用MSPaint時,無法工作或打開。應用程式中的捲軸不起作用,貼上圖示沒有顯示,崩潰,等等。幸運的是,我們收集了一些最有效的故障排除方法來幫助您解決MicrosoftPaint應用程式的問題。為什麼MicrosoftPaint不起作用? MSPaint無法在Windows11/10PC上運行的一些可能原因如下:安全標識符已損壞。掛起的系統

修復caa90019 Microsoft團隊錯誤 修復caa90019 Microsoft團隊錯誤 Feb 19, 2024 pm 02:30 PM

許多用戶一直在抱怨,每次嘗試使用MicrosoftTeams登入時都會遇到錯誤代碼caa90019。儘管這是一款方便的溝通應用程序,但這種錯誤卻很普遍。修正MicrosoftTeams錯誤:caa90019在這種情況下,系統顯示的錯誤訊息為:「抱歉,我們目前遇到問題。」我們已準備好終極解決方案清單,可協助您解決MicrosoftTeams錯誤caa90019。初步步驟以管理員身分執行清除MicrosoftTeams應用程式快取刪除settings.json檔案從憑證管理員中清除Microso

See all articles