Lecture overview -- Keyboard shortcut: 'u'  Previous page: Information hiding i forskellige objekt-orienterede sprog -- Keyboard shortcut: 'p'  Next page: Information hiding i Konto -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Play sound for this page -- Keyboard shortcut: 'y'  Page 10 : 33
Forelæsningsnoter i Objekt-orienteret Programmering
Objekt-orienteret programmering i Java, del 2
Information hiding i Java

Vi vil nu se på hvordan Java understøtter information hiding. For fuldstændighedens skyld nævner vi også nogle synlighedsforhold, som først for alvor gør sig gældende når vi begynder at beskæftige os med nedarvning. I diskussionen på de følgende sider omtaler vi pakker (packages). En pakke er en samling af klasser, som hører logisk sammen (og som befinder sig i samme katalog i filsystemet). Vi ser på pakker senere i denne lektion.

  • Java benytter følgende 'modifiers' til definition af variable's og metoder's synlighed

    • private

      • Egenskaben er privat i denne klasse

      • Kan dog ses fra andre objekter af samme klasse

      • Synlig for sig selv

    • public

      • Egenskaben kan ses af alle klasser i alle pakker

      • Synlig for alle

    • package - angives uden modifier (default synlighed)

      • Egenskaben kan ses af alle klasser i samme pakke som denne klasse

      • Synlig for naboerne

    • protected

      • Egenskaben kan ses i klassen selv, i alle subklasser

      • ... og i alle klasser i samme pakke

      • Der er specialregler for subklasser i andre pakker

      • Synlig i familien

Java benytter såkaldte modifiers til angivelse af synlighed. Modifiers benyttes også til angivelse af andre egenskaber, såsom 'final' (konstant) og 'static'

Det virker sært at Java ikke understøtter en 'modifier' for package synlighed.

Protectede egenskaber er underligt urene i Java, idet denne form for synlighed både involverer pakke-synlighed og subklasse-synlighed. Specielt er det tricket at forstå hvorledes subklasser i fremmede pakker håndteres. Mere om dette i lektionen om nedarvning.