1. a) Sant b) Sant c) Falskt 2. a) 30 b) 34689 3. public class BankAccount { private int accountNumber; private String name; float balance; float overdraftLimit; Date date; private static int nextAccountNumber = 1; BankAccount(String name, float balance, float overdraftLimit) { this.accountNumber = nextAccountNumber++; this.name = name; this.balance = balance; this.overdraftLimit = overdraftLimit; this.date = java.util.Date(); } public int getAccountNumber() { return accountNumber; } public String getName() { return name; } public float getBalance() { return balance; } public float getOverdraftLimit() { return overdraftLimit; } public Date getDate() { return date; } public void deposit(float amount) { balance = balance + amount; } public boolean withdraw(float amount) { if (balance - amount < -overdraftLimit) { throw new IllegalArgumentException("Withdraw amount too high"); } else { balance = balance - amount; return true; } } } 4. void rotate(int[] list, int k) { if (list.length == 0) { return; } for (int i = 0; i < k; i++) { int temp = list[0]; for (int j = 0; j < list.length - 1; j++) { list[j] = list[j+1]; } list[list.length - 1] = temp; } } 5. a) Före rad 10: Metoden kör() definieras inte i klassen Tåg Man måste ha med en definition av denna metod eftersom klassen Tåg inte är abstrakt. b) Rad 20: Defaultkonstruktor saknas i klassen Instrument. Den anropas automatiskt från konstruktorn i subklassen Fiol. Den bästa lösningen är att i klassen Fiol ersätta rad 20 med ett anrop av konstruktorn i klassen Instrument: super(n); c) Rad 35: Man försöker överlagra metoden hastighet(), men detta är inte tillåtet eftersom de två versionerna har samma parameterlista. (Det räcker inte att returtyperna är olika.) Den bästa lösningen här är nog att bara ha ett enda interface, vilket innehåller en enda version av metoden hastighet(). 6. import javax.swing.*; import java.awt.*; class Diagram extends JPanel { private double p[]; private Color c[]; public Diagram (double val[], Color col[]) { setValues(val, col); } public void setValues(double val[], Color col[]) { if (val.length != col.length) throw new IllegalArgumentException("Olika längder"); p = new double[val.length]; c = col; double sum = 0; for (int i=0; i tab = new HashMap<>(); while (sc.hasNext()) { String pnr = sc.nextLine(); Person p = new Person(sc.nextLine(), sc.nextLine()); tab.put(pnr, p); } while (true) { String pnr = JOptionPane.showInputDialog("Personnummer?"); if (pnr == null) break; Person p = tab.get(pnr); if (p != null) JOptionPane.showMessageDialog(null, p.namn + "\n" + p.avdelning); else JOptionPane.showMessageDialog(null, "Felaktigt personnummer"); } } }