• Keine Ergebnisse gefunden

Exercise2Prototype-basedProgramming Exercise1IntrospectionandReflection PracticeSheet3 AdvancedAspectsofObject-OrientedProgramming(SS2010)

N/A
N/A
Protected

Academic year: 2022

Aktie "Exercise2Prototype-basedProgramming Exercise1IntrospectionandReflection PracticeSheet3 AdvancedAspectsofObject-OrientedProgramming(SS2010)"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. Kathrin Geilmann

University of Kaiserslautern Department of Computer Science Software Technology Group

Advanced Aspects of Object-Oriented Programming (SS 2010) Practice Sheet 3

Date of Issue: 22.04.10

Deadline: 18.04.10 (until 10 a.m. as PDF via E-Mail)

Exercise 1 Introspection and Reflection

With the techniques of introspection and reflection, it is possible to store objects or whole object graphs in a file.

a) Implement the classPersistencyMangagerthat supports writing and reading of arbitrary objects to and from files. Your class should implement the following Interface

i n t e r f a c e P e r s i s t e n c y M a n a g e r {

p u b l i c v o i d w r i t e O b j e c t ( O b j e c t o , S t r i n g t o F i l e N a m e ) ; p u b l i c O b j e c t r e a d O b j e c t ( S t r i n g f r o m F i l e N a m e ) ; }

writeObjectwrites the state of the objecto, the states of the objects in the object graph reachable byoand the reference structure to a newly created file with the given filename. readObjectreads an object graph from the file and reconstructs it, the return value is the object, which acted as entry in the graph during the storage.

b) Look at the following code snippet:

I P e r s i s t e n c y M a n a g e r pm ; O b j e c t o , o2 ;

. . .

pm . w r i t e O b j e c t ( o , ’ ’ F i l e ’ ’ ) ; o2 = pm . r e a d O b j e c t ( ’ ’ F i l e ’ ’ ) ;

Is the object graph referenced to byoequal to the one referenced byo2? If not, what is the difference?

c) Look into the Java-Documentation, which possibilities are offered for storing and retrieving objects? What are the advantages and disadvantages of the different solutions? Compare them with your solution.

Exercise 2 Prototype-based Programming

The programming languageJavaScriptuses the prototype approach to create objects.

a) Download the sources of the current Mozilla JavaScript implementation (seehttp://ftp.mozilla.org/pub/

mozilla.org/js) and build the standalone interpreterjs. On UNIX-Systems, this is done by a simplemake -f Makefile.ref. The executable jsis stored in a subdirectory, that is named dependent on your system architecture.

b) Inform yourself athttp://developer.mozilla.org/en/docs/Introduction_to_the_JavaScript_shell about the usage of the interpreter and about its features.

c) Write an object-oriented JavaScript version of the University Administration System of the first lecture. Your implementation should have the following features:

1. Attributes are set by an appropriate constructor.

2. Attributes are not accessible from other objects.

3. The attributenameshould be part of Person, theprint-method ofPersonprints the current name. The print-implementations ofStudentandProfessorshould reuse the implemenation ofPerson.

4. Which advantages has the prototype-based version over the class-based one?

(2)

Exercise 3 Structural vs. Nominal Typing

Type systems for programming languages can be based on the structure or on the names of types. In nominal type systems types are considered to be equal if they have the same name, whereas in structural type systems types are equal if the have the same structure. In a structural type systems usually a type T is a subtype of S if it offers at least all “features” of S, where features are e.g. attributes and methods.

The following assignment would be legal in structural typed languages, because B has all the attributes A has plus an additional one. It is of course but illegal in nominal type systems.

c l a s s A { c l a s s B {

i n t x ; i n t x ;

i n t y ; i n t y ;

i n t z ;

} ; } ;

A a = new B ( ) ;

Most widely used languages use a nominal type system. An example for a structural typed OO-programming language is Go (seehttp://golang.org). C++, Scala and others use a hybrid type system.

a) What is the advantage of structural typed languages?

b) The University Administration System is now implemented in a language with a structural type system and it is extended with two new modules. One for handling the exams and one for the handling of employes.

c l a s s P e r s o n { c l a s s S t u d e n t { c l a s s P r o f e s s o r { c l a s s Employee {

S t r i n g name ; S t r i n g name ; s t r i n g name ; s t r i n g name ;

v o i d p r i n t ( ) { . . . } i n t reg_num ; s t r i n g room ; i n t reg_num ;

} v o i d p r i n t ( ) { . . . } v o i d p r i n t ( ) { . . . } i n t s a l a r y ;

} } v o i d p r i n t ( ) { . . . }

} c l a s s . . . .

p u b l i c v o i d r e g i s t e r F o r E x a m ( S t u d e n t s ) { . . . }

Which kind of errors can occur now?

Referenzen

ÄHNLICHE DOKUMENTE

That arrangement, where money to be loaned on or invested is funded just by equity, while money which the owner wants to be totally safe is invested just in government debt or

From the disaggregated analysis, the response of a shock to the FFR, global risk, global liquidity, domestic GDP growth, domestic inflation, domestic interest rate and the exchange

The social structure of science pro- vides the context for this inquiry into a complex psychosocial process that affects both the reward system and the

Questo è il motivo per cui EPSON offre inchiostri e un'ampia gamma di supporti originali che consentono di ottenere la migliore qualità di stampa possibile.. Gli inchiostri e i

Attualmente i più luminosi nella categoria dei videoproiettori ultraleggeri con 2500 lumen ANSI, sono silenziosi, economici e di facile utilizzo, pur disponendo di funzioni

Grazie al design elegante e compatto e alle cartucce di inchiostro separate con inchiostri a pigmenti EPSON DURABrite™, EPSON Stylus CX3650 consente di aggiungere qualità,

2 Some critics of deficits would go on to point out that the stimulative short-run economic effects of budget deficits would raise cyclical output and thereby boost

Studien der letzten Jahre haben jedoch verdeutlicht, dass Kolloid nicht gleich Kolloid ist, da jede Substanz durch ein spezifisches pharmakologisches Wirkprofil charakte- risiert