Lecture overview -- Keyboard shortcut: 'u'  Previous page: Organisering af Liste klasserne med indlejring [Section] -- Keyboard shortcut: 'p'  Next page: Indlejring af Linkable mv. i LinkedList -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Page 27 : 28
Forelæsningsnoter i Objekt-orienteret Programmering
Arrays og Lister
Indlejring af Linkable i LinkedList

Vi vil her illustrere anvendelsen af indre klasser til at begrænse kendskabet til kæde-objekterne i en linked list. Forsøget på denne side lykkes kun delvis. På næste side vil vi gøre det endnu bedre.

Kæde-objekterne i en liste struktur, som er instanser af Linkable, er knyttet til en bestemt liste

Kæde-objekterne er irrelevante for klienter af klassen LinkedList

Derfor bør Linkable være en indre klasse i klassen LinkedList

public class LinkedList {
  LinkedList instansvariable
  class Linkable {
    Linkable instansvariable
    Linkable metoder
  } 
  LinkedList metoder
}

En skitse af indlejringen af Linkable i LinkedList.

/user/normark/courses/prog1/prog1-01/sources/java/noteEksempler/arrays-lister/ex3/LinkedList.javaKlassen LinkedList med pakke-synlig Linkable som inner class.

Klassen LinkedList med pakke-synlig Linkable som inner class. Vi har valgt at give Linkable pakke synlighed. Hvis vi lader Linkable være privat kan vi ikke oversætter liste applikationen, idet Linkable dermed ikke kan ses uden for LinkedList.

/user/normark/courses/prog1/prog1-01/sources/java/noteEksempler/arrays-lister/ex3/ListApplication.javaListe applikationen repræsenteret ved klassen ListApplication.

Liste applikationen repræsenteret ved klassen ListApplication. Vi har fremhævet det sted hvor Linkable anvendes. Ideelt set ønsker vi ikke denne anvendelse. På næste side vil vi se, hvordan vi løser problemet.

Hvis Linkable er privat i LinkedList kan vi ikke anvende Linkable fra liste applikationen

På næste side vil vi gen-introducere iterator løsningen, som vi tidligere har set på. Dette giver os mulighed for at have Linkable som en private klasse.