Oprettelse af variabel af objekt inde i objektet selv

Tags:    java

Jeg vil gerne kunne oprette en klasse, hvor jeg opretter en variabel med klassen selv som type, men jeg kan ikke lige gennemskue om det overhovedet er muligt. F.eks.

class Test {
Test variable = new Test();
...
}

Skal jeg oprette en abstrakt klasse med samme navn?



5 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
det er muligt
public class node {
private node f=null;
public void createSubNode(){
f=new node();
}
}

eksempel på brug af classen
node n=new node();
n.createSubNode();


men uden at jeg gider at teste det skal du sørge for at du ikke kalde instantiere variablerne noget sted der bliver afviklet under instansiering af et object af klassen, ville være en evigheds løkke hvis du gjorde




Der er jo det der hedder en linked list

struct list {
list *next;
};

eller noget i det retning.

Jeg taler her i c++, men det burde ikke gøre den store forskel.



Du behøver ikke starte med at sætte den til null. Men som nørden siger må du ikke i klassens konstruktør oprette et objekt af samme type da du så netop, som han siger, vil få en uendelig løkke.

Denne klasse vil køre uendeligt og æde systemets hukommelse hvis main metoden bliver kørt.
Fold kodeboks ind/udKode 




Okay, men jeg skal starte med at sætte min variabel til null? Jeg kan ikke, i dit tilfælde, spare en linje og skrive

public class node {
private node f=new node();
...
}

?



Tak til Steffen og Nørden. Jeg havde ikke overvejet det med den uendelige løkke.

Jeg ved ikke helt hvorfor jeg i sin tid oprettede dette spørgsmål. Jo, selvfølgelig fordi jeg ikke kunne få det til at virke, men da jeg huskede hvilket projekt jeg ville gøre ovenstående i, prøvede jeg på ny, og det virkede uden nogle problemer. Så jeg ved ikke helt hvor jeg gik galt i byen i sin tid. Men tak.



t