下面是未採用變址存取的實現
//存貨類<br />public class Stock {<br />int stockID; // 編號,編號必須是0-9999<br />String category; // 類別<br />String goodName; // 商品名<br />int amount; // 數量<br />private static Stock[] stocks = new Stock[10000]; // 不採取變址存取方法,則只有一張主查詢表即stocks<br /> static {<br />for(int i=0;i<stocks.length;i++) {<br />stocks[i] = new Stock();<br />}<br />}<br />public Stock() {//空建構函式</p><p>}<br />public Stock(int stockID, String category, String goodName, int amount) {<br />// 這裡為簡單起見就不檢查編號、類別、商品名還有數量是否合法<br />// 了,並且假設每次新加入的Stock的stockID都不與前面的重複<br />this.stockID = stockID;<br />this.category = category;<br />this.goodName = goodName;<br />this.amount = amount;<br />stocks[stockID] = this; // 直接通過stockID存取相應的存貨到stocks中,這樣之後就可以直接通過stockID查詢具體存貨資訊<br />}<br />public int getStockID() {<br />return stockID;<br />}<br />public void setStockID(int stockID) {<br />this.stockID = stockID;<br />}<br />public String getCategory() {<br />return category;<br />}<br />public void setCategory(String category) {<br />this.category = category;<br />}<br />public String getGoodName() {<br />return goodName;<br />}<br />public void setGoodName(String goodName) {<br />this.goodName = goodName;<br />}<br />public int getAmount() {<br />return amount;<br />}<br />public void setAmount(int amount) {<br />this.amount = amount;<br />}<br />public static Stock[] getStocks() {<br />return stocks;<br />}<br />public static void main(String[] args) {<br />Stock[] stocks = Stock.getStocks(); // 擷取所有存貨,當前沒有任何存貨<br />System.out.println(stocks[0]); // 所以列印出來的是null<br />// 往stocks中加入存貨<br />Stock stock1 = new Stock(0, "fruit", "apple", 100); // 水果分類,蘋果100箱<br />Stock stock2 = new Stock(235, "vegetable", "carrot", 200); // 蔬菜分類,胡蘿蔔200箱<br />stocks = Stock.getStocks(); // 擷取現有的所有存貨資訊</p><p>System.out.println();<br />// 下面直接從主查詢表中根據stockID擷取相應的存貨資訊,並列印<br />Stock stock3 = stocks[1];<br />Stock stock4 = stocks[235];</p><p>System.out.println("stock3存貨資訊如下:");<br />if(stock3==null) {<br />System.out.println("沒有對應stock3的存貨!");<br />}<br />else {<br />System.out.println("存貨類別:" + stock3.getCategory());<br />System.out.println("存貨品名: " + stock3.getGoodName());<br />System.out.println("存貨數量: " + stock3.getAmount());<br />}</p><p>System.out.println();</p><p>System.out.println("stock4存貨資訊如下:");<br />if(stock4==null) {<br />System.out.println("沒有對應stock4的存貨!");<br />}<br />else {<br />System.out.println("存貨類別:" + stock4.getCategory());<br />System.out.println("存貨品名: " + stock4.getGoodName());<br />System.out.println("存貨數量: " + stock4.getAmount());<br />}<br />}<br />}<br />
階梯存取方法學產生績的實現:
/*<br /> * ≥ 90 % A<br /> * < 90.0% B<br /> * < 77.5% C 即65分到77.5分之間為C<br /> * < 65.0% D 即50分到65分之間為D<br /> * < 50.0% E 即50分以下為E<br /> */<br />public class StudentScore {<br />private static final int maxGradeLevel = 4;</p><p>private static double[] rangeLimits = new double[5];//分數界限<br />private static char[] grades = new char[5];//等級,包括A,B,C,D,E,F<br />static {<br />rangeLimits[0] = 50.0;<br />grades[0] = 'E';<br />rangeLimits[1] = 65.0;<br />grades[1] = 'D';<br />rangeLimits[2] = 77.5;<br />grades[2] = 'C';<br />rangeLimits[3] = 90.0;<br />grades[3] = 'B';<br />rangeLimits[4] = 100.0;<br />grades[4] = 'A';<br />}</p><p>//根據學生分數獲得相應層級描述字元:[ABCDEF]<br />public static char getStudentGrade(double score) {<br />int level = 0;<br />char grade = 'A';<br />while(grade=='A' && level<maxGradeLevel) {<br />if(score<rangeLimits[level]) {<br />grade = grades[level];<br />System.out.println("當前層級是:" + grade +"/t Level是:" + level);<br />break;<br />}<br />else {<br />level++;<br />}<br />}</p><p>return grade;<br />}</p><p>public static void main(String[]args) {<br />System.out.println("78分學生的層級是:" + StudentScore.getStudentGrade(78));<br />}<br />}<br />