import java.util.ArrayList; import java.util.Scanner; public class IntListTest { public static void main(String[] args) { new IntListTest(); } Scanner scan; IntListTest() { scan = new Scanner(System.in); AvgIL intlist = new AvgIL(); System.out.println("Input integer or n|sum|avg|list|exit"); while (true) { String in = scan.next(); if (in.equals("exit")) { System.exit(0); } else if (in.equals("list")) { intlist.show(); } else if (in.equals("n")) { System.out.println("n=" + intlist.size()); } else if (in.equals("sum")) { System.out.println("sum=" + intlist.getSum()); } else if (in.equals("avg")) { System.out.println("avg=" + intlist.getAvg()); } else if (in.matches("[0-9]+")) { // Int value int num = Integer.parseInt(in); intlist.add(num); // System.out.println("sum="+intlist.getSum()+" avg="+intlist.getAvg()+" // n="+intlist.size()); } } } } class IntList { protected ArrayList<Integer> intlist; // storage of int values IntList() { intlist = new ArrayList<Integer>(); } public void add(int n) { intlist.add(n); } public int size() { return intlist.size(); } public void show() { for (int k : intlist) { System.out.print(k + " "); } System.out.println(""); } } class SumIL extends IntList { private float sum = 0; public void add(int n) { super.add(n); // update sum sum = 0; for (int k : intlist) { sum += k; } } public float getSum() { return sum; } } class AvgIL extends SumIL { private float avg = 0; public void add(int n) { super.add(n); // update avg float s = getSum(); System.out.println("sum="+s); avg = -99999; } public float getAvg() { return avg; } }