Nyckelord: Klass, Objekt, Objektorienterad programmering, Instansiering
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?
Objekt har egna instansvärden men kan dela referenser och bero på andra objekt. Inkapsling döljer interna detaljer och styr hur tillstånd får ändras; den garanterar inte oberoende.
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.
Figur 1: Beskrivning av hur klasser och objekt samverkar i Java
Objekt har egna instansvärden men kan dela referenser och bero på andra objekt. Inkapsling döljer interna detaljer och styr hur tillstånd får ändras; den garanterar inte oberoende.
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.
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
Syntaxmall: ersätt platshållarna med konkreta namn, typer och värden.
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
En publik toppnivåklass ska ligga i en .java-fil med samma namn som klassen. En fil kan också innehålla paketprivata klasser vars namn skiljer sig från filnamnet.
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
Klassnamn brukar skrivas med stor begynnelsebokstav, men det är kodstil. Java tillåter många Unicode-bokstäver, inklusive å, ä och ö. Godtyckliga skiljetecken som ! och & får inte ingå.
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.
Objekt har egna instansvärden men kan dela referenser och bero på andra objekt. Inkapsling döljer interna detaljer och styr hur tillstånd får ändras; den garanterar inte oberoende.
Vanliga frågor och svar: Klasser 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 ä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
Ja det måste överensstämma. Om det skulle vara så att filnamnet och klassnamnet inte stämmer kommer ditt program inte att kompileras.