För att skapa ett objekt i Java anropar man klassens konstruktor som deklarerar, instansierar och initierar det nya objektet.
I Java skapar man ett objekt från en klass med tre steg:
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å.
Man skapar ett objekt genom deklarering, instansiering och instansiering.
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.
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.
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.
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);
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
Hund 2:
Namn: Båtsman
Ålder: 5
Ras: Sankt Bernhard
Färg: Svart
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!