Lecture overview -- Keyboard shortcut: 'u'  Previous page: Interfaces i Java Core API: Enumeration -- Keyboard shortcut: 'p'  Next page: Interfaces i Java Core API: Serializable -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Page 22 : 26
Forelæsningsnoter i Objekt-orienteret Programmering
Design af klassehierarkier
Interfaces i Java Core API: Cloneable

En klasse C som implementerer interfacet Cloneable signalerer, at cloning af C-objekter er tilladt

Interfacet Cloneable er tomt

  • Hvordan man en laver en klasse, hvis instanser kan klones

    • Lav en passende subklasse C som implementerer Cloneable

    • Definer en clone metode i C, som blot kalder den protectede super.clone() i Object

    • Clone metoden skal - via undetagelseshåndtering - håndtere tilfældet hvor cloning ikke er understøttet

    • Erklær clone metoden i C for public

Det forårsager en undtagelse (exception) hvis man sender besked clone til et objekt, hvis klasse ikke implementerer interfacet Cloneable (hvis klassen ikke har signaleret, at det er OK at clone).

/user/normark/courses/prog1/prog1-01/sources/java/geometric/Point.javaKlassen Point defineret som cloneable.

Klassen Point defineret som cloneable. Klassen Point fra pakken java.awt kan ikke clones. (Eller kan den - den's superklasse java.awt.geom.Point2D kan faktisk clones). Derfor definerer vi her en triviel subklasse af java.awt.point, som kan clones