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的全部替换掉。
Atas ialah kandungan terperinci java中应用程序的详细介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Jika anda menghadapi ralat Tidak dapat menyimpan perubahan semasa menggunakan apl Foto untuk penyuntingan imej dalam Windows 11, artikel ini akan memberikan anda penyelesaian. Tidak dapat menyimpan perubahan. Ralat berlaku semasa menyimpan. Sila cuba sebentar lagi Masalah ini biasanya berlaku kerana tetapan kebenaran yang salah, kerosakan fail atau kegagalan sistem. Jadi, kami telah melakukan beberapa penyelidikan mendalam dan menyusun beberapa langkah penyelesaian masalah yang paling berkesan untuk membantu anda menyelesaikan isu ini dan memastikan anda boleh terus menggunakan apl Microsoft Photos dengan lancar pada peranti Windows 11 anda. Betulkan Tidak Dapat Menyimpan Perubahan pada Ralat Aplikasi Foto dalam Windows 11 Ramai pengguna telah bercakap tentang ralat aplikasi Microsoft Photos di forum yang berbeza

Apakah Nota Tanpa Batas pada iPhone? Seperti aplikasi iOS17 Diary, Boundless Notes ialah aplikasi produktiviti dengan banyak potensi kreatif. Ia adalah tempat yang bagus untuk mengubah idea menjadi realiti. Anda boleh menjadualkan projek, sumbang saran idea atau membuat papan mood supaya anda tidak kehabisan ruang untuk menyatakan idea anda. Apl ini membolehkan anda menambah foto, video, audio, dokumen, PDF, pautan web, pelekat dan banyak lagi di mana-mana sahaja pada kanvas yang tidak terhingga. Banyak alatan dalam Nota Tanpa Batas (seperti berus, bentuk dan banyak lagi) akan biasa kepada sesiapa sahaja yang menggunakan apl iWork seperti Keynote atau Nota. Kerjasama masa nyata dengan rakan sekerja, rakan sepasukan dan ahli projek kumpulan juga mudah kerana Freeform membenarkan

Lihat Sejarah Papan Klip macOS daripada Pencari Apabila anda menyalin apa-apa pada Mac anda (teks, imej, fail, URL, dll.), ia pergi ke Papan Klip. Begini cara untuk melihat perkara yang terakhir disalin pada Mac anda. Pergi ke Finder dan klik "Edit" dalam bar menu Klik "Tunjukkan Papan Klip". Ini akan membuka tetingkap yang menunjukkan kandungan papan keratan macOS. Dapatkan Sejarah Papan Klip yang Mengandungi Berbilang Item dalam Mac Sudah tentu, Sejarah Papan Klip Mac asli bukanlah alat paling serba boleh yang boleh anda miliki. Ia hanya menunjukkan perkara terakhir yang anda salin, jadi jika anda ingin menyalin berbilang perkara sekaligus dan kemudian menampal semuanya bersama-sama, anda tidak boleh melakukannya. Walau bagaimanapun, jika anda sedang mencari

Di Windows, apl Photos ialah cara yang mudah untuk melihat dan mengurus foto dan video. Melalui aplikasi ini, pengguna boleh mengakses fail multimedia mereka dengan mudah tanpa memasang perisian tambahan. Walau bagaimanapun, kadangkala pengguna mungkin menghadapi beberapa masalah, seperti menghadapi mesej ralat "Fail ini tidak boleh dibuka kerana format tidak disokong" semasa menggunakan apl Foto atau kerosakan fail semasa cuba membuka foto atau video. Keadaan ini boleh mengelirukan dan menyusahkan pengguna, memerlukan beberapa penyiasatan dan pembetulan untuk menyelesaikan isu tersebut. Pengguna melihat ralat berikut apabila mereka cuba membuka foto atau video pada apl Foto. Maaf, Foto tidak boleh membuka fail ini kerana format tidak disokong atau fail pada masa ini

Set kepala Apple Vision Pro tidak serasi asli dengan komputer, jadi anda mesti mengkonfigurasinya untuk menyambung ke komputer Windows. Sejak pelancarannya, Apple Vision Pro telah mendapat sambutan hangat, dan dengan ciri-ciri canggih dan kebolehkendaliannya yang meluas, mudah untuk mengetahui sebabnya. Walaupun anda boleh membuat beberapa pelarasan padanya agar sesuai dengan PC anda, dan fungsinya sangat bergantung pada AppleOS, jadi fungsinya akan terhad. Bagaimanakah saya boleh menyambungkan AppleVisionPro ke komputer saya? 1. Sahkan keperluan sistem Anda memerlukan versi terkini Windows 11 (PC tersuai dan peranti Surface tidak disokong) Menyokong 64-bit 2GHZ atau pemproses pantas lebih pantas GPU berprestasi tinggi, kebanyakannya

Apabila komputer rakan kehilangan fail tertentu, aplikasi tidak boleh dimulakan seperti biasa dengan kod ralat 0xc000012d Malah, ia boleh diselesaikan dengan memuat turun semula fail dan memasangnya. Aplikasi tidak boleh bermula seperti biasa 0xc000012d: 1. Pertama, pengguna perlu memuat turun ".netframework". 2. Kemudian cari alamat muat turun dan muat turun ke komputer anda. 3. Kemudian klik dua kali pada desktop untuk mula berjalan. 4. Selepas pemasangan selesai, kembali ke lokasi program yang salah dan buka program semula.

Microsoft Paint tidak berfungsi dalam Windows 11/10? Nah, ini nampaknya masalah biasa dan kami mempunyai beberapa penyelesaian hebat untuk menyelesaikannya. Pengguna telah mengadu bahawa apabila cuba menggunakan MSPaint, ia tidak berfungsi atau terbuka. Bar skrol dalam apl tidak berfungsi, ikon tampal tidak muncul, ranap sistem, dsb. Nasib baik, kami telah mengumpulkan beberapa kaedah penyelesaian masalah yang paling berkesan untuk membantu anda menyelesaikan isu dengan aplikasi Microsoft Paint. Mengapa Microsoft Paint tidak berfungsi? Beberapa sebab yang mungkin mengapa MSPaint tidak berfungsi pada Windows 11/10 PC adalah seperti berikut: Pengecam keselamatan rosak. sistem digantung

Ramai pengguna telah mengadu tentang menghadapi kod ralat caa90019 setiap kali mereka cuba log masuk menggunakan Microsoft Teams. Walaupun ini adalah aplikasi komunikasi yang mudah, kesilapan ini sangat biasa. Betulkan Ralat Microsoft Teams: caa90019 Dalam kes ini, mesej ralat yang dipaparkan oleh sistem ialah: "Maaf, kami sedang mengalami masalah pada masa ini." Kami telah menyediakan senarai penyelesaian muktamad yang akan membantu anda menyelesaikan ralat Microsoft Teams caa90019. Langkah awal Jalankan sebagai pentadbir Kosongkan cache aplikasi Microsoft Teams Padam fail tetapan.json Kosongkan Microsoft daripada Pengurus Kredensial
