# Java作業 - 10號 ###### tags: `JAVA` ## e4 ``` package exam.e4; public class Employee { private int empno; private String name; private long salary; public Employee(int empno, String name, long salary) { this.empno = empno; this.name = name; this.salary = salary; } public int getEmpno() { return empno; } public String getName() { return name; } public long getSalary() { return salary; } } ``` ``` package exam.e4; public class Manager extends Employee { private long bonus; public Manager(int empno, String name, long salary,long bonus) { super(empno, name, salary); this.bonus = bonus; } public long getSalary() { return super.getSalary()+this.bonus; } } ``` --- ## e5 * e5只動到shoppingList.java 所以我就不放另外的class了 ``` package exam.e5; import java.util.ArrayList; import java.util.List; import com.sun.org.apache.bcel.internal.generic.NEW; public class ShoppingCart { public static void main(String[] args) { //實作1.加入二台Notebook("Asus",30000),Notebook("Acer",20000),Food("Cookie",200)到shoppingList中 List<Product> shoppingList = new ArrayList<Product>(); Notebook notebook1 = new Notebook("Asus", 30000); Notebook notebook2 = new Notebook("Acer", 20000); Food food = new Food("Cookie", 200); shoppingList.add(notebook1); shoppingList.add(notebook2); shoppingList.add(food); //實作2.利用for迴圈,計算shoppingList中的總金額,並印在Console中 int total = 0; for (Product product : shoppingList) { total = total + product.getPrice(); } System.out.println(total); //實作3.利用for迴圈,計算shoppingList中是Notebook型態的總金額,並印在Console中 int notebookTotal = 0; for (int i = 0; i < shoppingList.size(); i++) { if(shoppingList.get(i) instanceof Notebook) { notebookTotal = notebookTotal + shoppingList.get(i).getPrice(); }else { continue; } } System.out.println(notebookTotal); } } ``` --- ## e6 * 理由同e5,因為只動這個class,所以只放這個class ``` package exam.e6; import java.util.HashMap; import java.util.Map; import java.util.Set; public class MapTest { public static void main(String[] args) { People p1 = new People("001",21); People p2 = new People("002",33); People p3 = new People("003",41); //實作1:請實作一個泛型的Map中的key值為people的id,value為people物件,將上述三個people放入Map中 Map<String, People> map = new HashMap<>(); map.put("001", p1); map.put("002", p2); map.put("003", p3); //實作2:請用for迴圈或者iterator,計算Map中三人的平均年齡,取到小數以下第一位 double average = 0.0; Set<String> keys = map.keySet(); for(String key : keys) { average = average + (map.get(key).getAge()); } System.out.println(String.format("%.1f", (average/3))); } } ``` ## e7 ``` package exam.e7; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; public class IOTest { public static void main(String[] args) { /* http://iosnetworkdemo.appspot.com/json.jsp?msg=helloWorld, 會回應{"msg":"helloWorld","狀 態":"成功"},編碼為UTF8 請利用Java程式呼叫此網址,此將此網址回傳的結果示在Console中(IOTest.java) 程式中的所有 Exception處理必須使用try catch不能直接由方法抛出。 */ try { URL url = new URL("http://iosnetworkdemo.appspot.com/json.jsp?msg=helloWorld"); try(InputStream is = url.openStream(); InputStreamReader isr = new InputStreamReader(is,"UTF8"); BufferedReader br = new BufferedReader(isr);){ char[] buffer = new char[1024]; while((br.read(buffer)) != -1) { br.read(buffer); } System.out.println(buffer); } catch (IOException e) { e.printStackTrace(); } } catch (MalformedURLException e) { e.printStackTrace(); } } } ```