19. december 2002 - 11:39Der er
10 kommentarer og 2 løsninger
Tildel et navn til et objekt...
Vi har i en klasse der hedder "UserInterface.java", et indtastet navn gemt i en variabel samNavn. I en anden klasse "Collection.java", har vi en constructor der skal lave et objekt med det gemte navn fra variablen samNavn.
Hvordan laver vi denne constructor, så den opretter objekter med navnet fra samNavn??
Dette er koden fra "UserInterface.java" der gemmer navnet i samNavn: ----------------------------------------------------------- BufferedReader indtast = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Indtast navn paa samling: "); String samNavn = indtast.readLine(); -----------------------------------------------------------
Dette er den kode vi har fra Collection.java: ----------------------------------------------------------- import java.util.*;
class Collection { String ArrayList; String navn;
Collection(){ navn = samNavn; navn = new ArrayList(); } } -----------------------------------------------------------
Her er et eksempel på hvordan I kan lave klassen. I bør dog vælge et andet navn da der allerede er noget der hedder Collection endda i java.util. import java.util.*; public class Collection { private List list; private String navn; public Collection(String navn) { this.navn = navn; list = new ArrayList(); } }
this.navn henviser til variablen i klassen, dvs den der er erklæret ved private String navn; mens navn refererer til den lokale parameter erklæret ved public Collection(String navn).
Det er for at få en pæn klasse hvor de instans varible der erklæres (list og navn) ikke umiddelbart kan ses (og ændres) udefra. Det er det der kaldes for "information hiding" (det er også "data encapsulation" men det er irrelevant her). Sådan bør man gøre i så godt som alle tilfælde når man opretter instans variable i en klasse.
public class OurCollection { private List list; private String navn; public OurCollection(String navn) { this.navn = navn; list = new ArrayList(); } }
og:
import java.util.*;
public class OurCollection { private List list; private String navn; public OurCollection() { navn = ""; list = new ArrayList(); } public void setNavn(String navn) { this.navn = navn; } }
Ja, men jeg troede ærlig talt at det var en skrive fejl.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.