Skapa ett objekt i Java


För att skapa ett objekt i Java anropar man klassens konstruktor som deklarerar, instansierar och initierar det nya objektet.

Hur skapar man ett objekt från en klass i Java?

I Java skapar man ett objekt från en klass med tre steg:

  • Deklarering
  • Instansiering
  • Initiering.

Ett objekt skapas genom tre steg: deklarering, instansiering samt initiering.

För att skapa ett objekt anropar man klassens konstruktor, där man anger de attribut som man vill att objektet ska få.

Skapa ett objekt i Java

Man skapar ett objekt genom deklarering, instansiering och instansiering.

Deklarering

Man deklarerar (skapar) ett objekt genom att tilldela det nya objektet till en variabel. Det fungerar på samma sätt som hur en deklaration av en variabel fungerar, det vill säga, man behöver ett unikt namn (objektnamn) samt en viss typ av objekt (i detta fall kommer det förstås alltid vara klassen som objektet ska skapas från). Klassnamnet ska vara samma namn som objektets klass.

Instansiering:

Man instansierar ett objekt från en klass med nyckelordet new. Då anropar man konstruktorn, vilket allokerar minne för det nya objektet. Konstruktorn returnerar en referens till minnet.

Initiering:

Initieringen sker när man tilldelar värden till objektet via konstruktorn. När man anropar konstruktorn anger man de attribut som man vill att det nya objektet ska ha.

Skapa ett objekt i Java – Syntax

Exemplet nedan visar syntaxen för att skapa ett objekt: Först anger man vilken typ objektet är av, alltså klassen som objektet kommer från. Här anger man alltså klassnamnet. Vidare tilldelar man objektet ett namn (objektnamn). Välj ett valfritt namn, praxis är att objektnamn börjar med liten bokstav. Med det reserverade ordet new anger man att man vill skapa ett nytt objekt från klassen. Det är här man anropar konstruktorn, där man inom parantes anger vilka inparametrar som konstruktorn behöver. Detta är alltså attributen som objektet ska få.

Klassnamn objektnamn = new Klassnamn(datatyp1 parameter1, datatyp2 parameter2);

Exempel – Hur skapar man ett objekt?

Detta är en fortsättning på exemplet i föregående avsnitt, där vi ska skapa objekt av klassen hund.

Exempel fortsättning:

I föregående kapitel programmerade vi klassen “Dog”. Nu är även information i metoderna inskrivna:

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

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

    //Definiera konstruktorn
    Dog(String name, int age, String breed, String color){
        this.name = name;
        this.age = age;
        this.breed = breed;
        this.color = color;
    }

    //Definierar metoderna för klassen hund
    void bark(){
        System.out.println(this.name + " skäller");
    }

    void eat(){
        System.out.println(this.name + " äter");
    }

    void sleep(){
        System.out.println("zZzZZzzZZz");
    }

}

Vi bestämde i de föregående avsnitten att vi skulle programmera två stycken hundar:

Hund 1:

Namn: Bosse

Ålder: 3

Ras: Terrier

Färg: Brun

Objektet hund i Java. Representation över hur man kan skapa ett objekt i Java

Hund 2:

Namn: Båtsman

Ålder: 5

Ras: Sankt Bernhard

Färg: Svart

Objektet hund i Java. Representation över hur man kan skapa ett objekt i Java

Vi skapar nu dessa två objekt i main-metoden:

public static void main(String args[]){
    Dog dog = new Dog("Bosse", 3, "Terrier", "Brun");
    Dog dog2 = new Dog("Båtsman", 5, "Sankt Bernhard", "Svart");
}

Vi har nu två stycken objekt av typen “Dog”. Det ena objektet heter “dog” och innehåller värdena (“Bosse”, 3, “Terrier”, “Brun”) och det andra objektet heter dog2 och innehåller värdena (“Båtsman”, 5, “Sankt Bernhard”, “Svart”).

Vi kan nu anropa metoderna i vardera objekt, exempelvis såhär:

dog.bark(); 
dog2.eat();

Utskriften blir då:

Bosse skäller 
Båtsman äter

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!