Om ordlistan

Jag kommer inte lÀgga alla ord eller begrepp i ordlistan. Ordlistan Àr hÀr sÄ att jag slipper ha en massa notes i EDAA01 directory. Begrepp och ord som inte förtjÀnar sin egen note kommer att vara hÀr. AlltsÄ alla grejer som kan vara en footnote kommer jag lÀgga hÀr sÄ att jag kan linka till dem, sÄ allting blir snyggt.

Abstrakta Klasser

En abstrakt klass Àr en klass som inte kan skapas som ett eget objekt utan Àr tÀnkt att Àrvas av andra klasser. Den Àr typ som en mall. Man skapar en abstrakt klass med nyckelordet abstract.

abstract class Djur {
    String color;
 
    Djur(String color) { // Konstruktor
        this.color = color;
    }
 
    abstract void ljud();  // Abstrakt metod 
    
    void andas() {  // Vanlig metod (har implementation)
        System.out.println("Djuret andas.");
    }
}
 
class Hund extends Djur {
 
    Hund(String color) {
        super(color); // Anropar Djurs konstruktor
    }
 
    void ljud() {  // Implementerar den abstrakta metoden
        System.out.println("Voff voff!");
    }
}

Abstrakta Metoder

En abstrakt metod Àr en metod utan implementation. Den mÄste finnas i en abstrakt klass och mÄste implementeras av klasser som Àrver den. I klassen Djur Àr en abstrakt metod ljud(). Man skapar en abstrakt metod med nyckelordet abstract före typen.

Abstrakta Datatyper

Fill this out. There is a whole lecture about it

Klass

En klass (konkret klass) Àr en mall som beskriver hur objekt skapas och fungerar. Klassen definerar variabler och metoder som objekt av klassen kommer att ha.

Objekt

En objekt Àr en instans av en klass. Till skillnad frÄn en klass kan objekt göra nÄgonting i java, kan anvÀndas i ett programm.

Flera objekt kan skapas ur samma klass.

Instansiera

Att instanisera betyder att skapa objekt ur en klass. NĂ€r man instansierar en klass anropar man dess konstruktor med new, vilket skapar en ny instans (ett nytt objekt) av klassen i minnet.

Anta att vi har en klass Bil med en konstruktor fÀrg:

Bil minBil = new Bil("Röd")

Referensvariabel

En referensvariabel lagrar en adress till en objekt i minnet, inte sjÀlva objektet.

Konstruktor

En konstruktor Àr en speciell metod i en klass som anvÀnds för att initiera objektets egenskaper.

En konstruktor har samma namn som klassen, har ingen returtyp och körs automatiskt nÀr new anvÀnds.

Ett exempel pÄ en konstruktor finns is klassen Djur

Superklass

En superklass Àr en klass som innehÄller variabler och metoder som kan Àrvas av andra klasser.

Subklass

En subklass Àr en klass som Àrver frÄn en superklass. Man skapar en subklass med nyckelordet extends och @override anvÀnds för att skriva över en metod frÄn superklassen.

Konstant

En variabel vars vÀrde inte kan Àndras efter att det har tilldelats.
Man skapar en konstant med nyckelordet final.

public static final double PI = 3.14159;
 

Statisk Metod

En statisk metod Àr en metod som tillhör sjÀlva klassen och inte en instans av klassen. Vad det betyder Àr att vi kan anropa en statisk metod utan att skapa en objekt av klassen. Man skapar en statisk metod med nyckelordet static.

public static int addera(int a, int b) {
    return a + b;
}

Anta att addera(a,b) ligger i klassen Matematik. DĂ„ kan vi anropa metoden med:

...
int summa = Matematik.addera(5, 10);
...

Default-metod

En default-metod Àr en en metod med implementation som man lÀgger i ett interface. Det löste ett problem dÀr om man ville lÀgga till en metod i ett interface sÄ behövde man uppdatera alla klasser som implementerade den. Med en default-metod sÄ behöver man inte uppdatera klasser men man kan om man vill. Man skapar en default-metod med nyckelordet default.

I interface Djur sĂ„ kan man lĂ€gga till en default-metod sleep() som alla klasser kommer att ha, “by default”.

default void sleep() {
    System.out.println("Djuret sover...");
}