Klasser i Java: En mall eller ritning som objekt kan skapas från


Nyckelord: Klass, Objekt, Objektorienterad programmering, Instansiering

Fler artiklar Java

I den här artikeln ska vi titta närmare på klasser i Java. Som vi vet är Java ett objektorienterat programmeringsspråk och huvudkonceptet för det objektorienterade tillvägagångssättet är att dela upp komplexa problem i mindre klasser och objekt. Låt oss inleda med att reda vad en klass faktiskt är för någonting, för att sedan se hur vi kan skapa och använda oss av en klass.

Vad är en klass i Java?

En klass i Java beskriver de attribut och egenskaper som ett objekt ska ha. Klassen fungerar som en mall som beskriver hur någonting är (attribut) och vad den gör (egenskaper). Genom att skapa flera klasser kan man strukturera hela programmet i flera mindre modeller som tillsammans utgör ett helt program. Det innebär att varje klass sköter “sin del” av programmet och är helt oberoende på vad andra klasser gör, vilket skapar objektorienterad programmering.

Kort sammanfattat så är en klass i Java:

  • En mall över hur man instansierar, det vill säga skapar, ett specifikt objekt.
  • Beskriver vilka egenskaper och attribut som ett objekt har.
  • Är grunden för objektorienterad programmering.
  • Många små klasser bygger upp stora program.
  • Varje klass sköter sin del av programmet och är oberoende på vad andra klasser gör.

Hur fungerar klasser i Java?

Det är klassen som bestämmer vilka olika egenskaper och tillstånd ett objekt ska ha. Låt oss försöka illustrera hur samverkan mellan en klass och ett objekt skulle kunna se ut.

Klass objekt java

Figur 1: Beskrivning av hur klasser och objekt samverkar i Java

Klassen specificerar hur (vilka egenskaper) och vilka tillstånd (attribut) som ett objekt som skapas från den klassen måste ha. Detta är en av de stora fördelarna med objektorienterad programmering, eftersom vi nu kan skapa flera objekt, så kallade instanser av klassen, och på så sätt försäkra oss om att alla objekt fungerar på samma sätt men ändå var helt oberoende av varandra.

A class is a blueprint or prototype from which objects are created

Oracle

Exempel på en klass

Tänk dig ett objekt av en viss sort, låt oss ta en bil som ett exempel. Det finns ju otroligt många olika typer av bilar i världen, men majoriteten av alla bilar har fyra hjul, en ratt och kan köra framåt, bakåt och svänga. Det är det som definierar en bil.

Bilen kan såklart se ut på massor av olika sätt och ha många olika funktioner, men att ha hjul, ratt och kunna köra i olika riktningar är det som definierar den. Man kan säga att det är en mall för hur bilar ser ut och fungerar och i objektorienterad programmering kallar vi en sådan mall för en klass. Om vi tar och ritar upp det i en liknande figur som vi såg innan.

Class Klasser Java

Figur 2: Exempel på en klass i Java

Det figur 2 ovan visar är hur vi har vår mall, det vill säga klassen för en bil, och att vi från den mallen kan vi skapa olika bilar som trots sina skillnader i utseende och funktionalitet delar samma grundförutsättningar.

Hur skapar man en klass i Java?

Att skapa en klass i Java är enkelt. Man skapar en klassen med det reserverade ordet class, följt av det namn man vill att klassen ska ha. Sedan så specificerar man vilka attribut (variabler) och egenskaper (metoder) som klassen ska ha innanför måsvingarna.

Gällande attribut i en klass så är de av en viss datatyp med ett tillhörande namn. Du kan tänka dig attributen som en variabel i Java, men med skillnaden att variablerna enbart är synliga inom klassen. Vidare, egenskaperna är vad objektet ska kunna göra, det vill säga, de metoder som objektet har.

Syntax: Deklarera en klass i Java

Vi använder instruktionerna ovan och skriver in det i kodeditorn

class KlassNamn {

   // Attribut - Ange en eller flera som klassen ska ha
   Datatyp namn;   

   // Egenskaper - Definiera alla metoder som klassen ska ha
   void metodnamn{ 

        // operation/operationer
   }
}

Namnet på filen måste överensstämma med namnet på klassen

När du sparar programmets fil måste du spara den med exakt samma namn som klassen. Viktigt att komma ihåg att Java är skiftlägeskänsligt och när du sparar din fil kom även ihåg att lägga till .java (punkt java) i slutet av namnet. Om det skulle vara så att filnamnet och klassnamnet inte stämmer kommer ditt program inte att kompileras.

Namnet på klassen ska börja med stor bokstav

God syntax i Java innebär att vi alltid börjar namnet på klassen med stor bokstav. Om flera ord används för att bilda ett namn på klassen ska varje inre ords första bokstav vara i versaler. Exempelvis: MyFirstJavaClass

Som vi gick igenom i artikeln för syntax i Java så är syntax inget måste, ditt program kommer att fungera och exekvera ändå, men det är klart rekommenderat att följa den syntax som programmeringsspråket har för att minimera risken för misstag. Vidare, självklart gäller samma regler som vanligt i Java, exempelvis är specialtecken som !, & eller #, samt svenska tecken som å, ä eller ö, inte tillåtna.

Exempel: Klasser i Java

Vi ska nu ta två exempel på hur man kan skapa två enklare klasser i Java.

Exempel 1: Klass i Java för en bil

Likt det exemplet vi gick igenom innan så skulle en väldigt förenklad klass för en bil se ut som följande

//Skapar klassen "Car". Praxis är att klassnamn har stor bokstav
class Car {

    // Definierar attributen (tillstånden) för klassen Car
    private String brand;
    private String model;
    private int modelYear;

    // Definierar egenskaperna (metoderna) för klassen Car
    public void drive(){
         // Innehåller information om hur bilen gör när kör
    }

    public void brake(){
         // Innehåller information om hur bilen gör när den bromsar
    }
}

I exemplet ovan så har vi alltså skapat:

  • En klass som heter Car.
  • Klassen innehåller tre stycken attribut som representerar bilens märke, modell och årsmodell.
  • Klassen har även två egenskaper, alltså metoder, för att bilen ska kunna köra och bromsa. I det här exemplet så innehåller inte metoderna något utan vi skapar dom endast för att visa hur det ser ut när man deklarerar egenskaper för en klass.

Exempel 2: Skapa en klass för en hund

Vi ska nu påbörja ett exempel som vi kommer att bygga vidare på genom hela det här kapitlet. Det vi ska göra är att programmera en hund och låt oss därför börja med att skapa en klass för en hund. Vi bestämmer först vilka attribut klassen för hund ska innehålla:

  • Namn
  • Ålder
  • Hundras
  • Färg

Sedan så vill vi självklart att hunden ska ha några egenskaper, alltså vad hunden ska kunna göra. Vi skapar några metoder för följande egenskaper:

  • Skälla
  • Sova
  • Äta

Låt oss nu överföra det vi har ställt upp ovan till kod

//Skapar klassen "Dog". Praxis är att klassnamn har stor bokstav
class Dog {

    //Definierar attributen, tillstånden för klassen hund
    String name;
    int age;
    String breed;
    String color;

    //Definierar egenskaperna, metoderna för klassen hund
    void bark(){
         //Innehåller information om hur hunden gör när den skäller
    }

    void eat(){
         //Innehåller information om hur hunden gör när den äter
    }

    void sleep(){
         //Innehåller information om hur hunden gör när den sover
    }
}

Just nu gör metoderna ingenting, men det kommer vi åtgärda i senare avsnitt. Det fina med klassen är att vi nu har en mall av hur en hund är. Det innebär att om vi vill skapa flera hundar behöver vi inte programmera flera hundar med samma kod om och om igen, utan istället så kan vi utföra vad som kallas för instansieringar av ett objekt av klassen hund.

Avslutningsvis, som vi nämnde i början så är det här ett exempel som kommer följa med genom hela kapitlet, så på nästkommande sida ska vi skapa två hundar, eller rättare sagt, vi kommer skapa två objekt av klassen hund.

Sammanfattning: Klasser i Java

En klass i Java beskriver de attribut och egenskaper som ett objekt ska ha. Man kan beskriva det som att klassen fungerar som en mall på vad objektet ska ha för egenskaper och tillstånd. Med hjälp av klasser kan vi skapa små modeller över hela programmet som tillsammans sedan skapar ett helt program.

Objektorienterad programmering innebär att varje klass sköter “sin del” av programmet och är helt oberoende på vad andra klasser gör. Kom ihåg att programmets fil måste ha samma namn som klassen och att det är god syntax att klassnamnet börjar med stor bokstav.

Vanliga frågor och svar: Klasser i Java

Vad är en klass i Java?

En klass i Java beskriver de attribut och egenskaper som ett objekt ska ha. Klassen fungerar som en mall som beskriver hur någonting är (attribut) och vad den gör (egenskaper). Genom att skapa flera klasser kan man strukturera hela programmet i flera mindre modeller som tillsammans utgör ett helt program.

Är det viktigt att klassens namn börjar med stor bokstav?

Det är inget måste men absolut en rekommendation. Det anses vara god syntax i Java att klassnamnet börjar med stor bokstav, samt om flera ord används för att bilda ett namn på klassen ska varje inre ords första bokstav vara i versaler. Till exempel, TheAnimalClass

Måste namnet på java-filen vara samma som klassnamnet?

Ja det måste överensstämma. Om det skulle vara så att filnamnet och klassnamnet inte stämmer kommer ditt program inte att kompileras.

Vad tyckte du om sidan?

Lämna gärna feedback och hjälp oss göra sidan bättre

Feedback gör oss bättre!

Lämna gärna feedback om vad du tyckte om avsnittet!