// Lösningar till tentamen 2010-01-11 // Uppgift 1a Rätt alternativ är c eftersom instansvariabeln list har värdet null. // Uppgift 1b Eftersom listan innehåller tre referenser vilka alla pekar på samma objekt blir utskriften: 3 3 3 // Uppgift 1c Varje gång man anropar en instansmetod måste anropet alltid vara kopplat till ett visst specifikt objekt (det aktuella objektet "this"). Eftersom en klassmetod inte är kopplad till något speciellt objekt, måste man ange objektets namn även när man gör ett anrop från samma klass. // Uppgift 1d I det första fallet skapas fältet och elementen nollställes. I det andra fallet skapas ett fält av referenser till Point-objekt. Referenserna får värdet null, dvs pekar inte på något. Man måste se till att punktobjekten skapas, t ex i en snurra for (int i=0; i n) throw new IndexOutOfBoundsException(); ensureCapacity(n+d); for (int i=n-1; i>=p; i--) // förskjut tidigare text d steg åt höger b[i+d] = b[i]; for (int i=0; i n || m < 0 || m > n || p > m) throw new IndexOutOfBoundsException(); String s = ""; for (int i=p; i n) throw new IndexOutOfBoundsException(); ensureCapacity(n+d); System.arraycopy(b, p, b, p+d, n-p); // förskjut tidigare text d steg åt höger s.getChars(0, d, b, p); // lägg in ny text n += d; } public void append(String s) { insert(n, s); } public String substring(int p, int m) { if (p < 0 || p > n || m < 0 || m > n || p > m) throw new IndexOutOfBoundsException(); return new String(b, p, m-p); } @Override public String toString() { return new String(b, 0, n); } }