2016-09-14 5 views
-2

Ich wurde für die Java Certified Professional Prüfung einige Beispielfragen, Abstimmen und wollte etwas Klarheit über die Antwort auf eine der Fragen erhalten:Java ‚hat-ein‘ Verhältnis Erklärung

2. Given: 

class Class1 { 
String v1; 
} 
class Class2 { 
Class1 c1; 
String v2; 
} 
public class Class3 { 
Class2 c1; 
String i3; 
} 

Which three options correctly describe the relationship between the classes? 
A) Class2 has-a i3 
B) Class1 has-a v2 
C) Class2 has-a v2 
D) Class3 has-a v1 
E) Class2 has-a Class3 
F) Class2 has-a Class1 

Die Antwort vorgesehen ist : C, D und F

ich, warum C und F korrekt ist, aber ich bin nicht so sicher D.

Mein Verständnis der ‚hat-eine‘ Beziehung, wie sie auf das Objekt beziehen -orientierten Kontext ist, dass wenn A ein Z hat, das bedeutet, dass Klasse A entweder eine Elementvariable (oder attribut) hat e wie es manchmal genannt wird) genannt Z (oder vom Typ Z), OR, das gleiche gilt über die Vererbung, was bedeutet, wenn Klasse A erweitert Klasse B und Klasse B hat ein Z, dann ist es richtig zu sagen, dass Klasse A hat auch ein Z (durch Vererbung).

Von was ich sehe, hat Class3 c1 und hat ein i3, und da Class3 keine Klassen erweitert, ist das, wo die 'hat-a' Beziehung endet.

Ich sehe, dass Class3 hat eine Class2, und Class2 hat eine Class1, und Class1 hat eine v1, aber ich wusste nicht, dass das bedeutet, dass Class3 hat eine v1, scheint mir, dass Class1 hat eine v1.

Dies ist direkt von der Oracle-Website:

http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=303&p_certName=SQ1Z0_804

Antwort

1

Class3 hat eine Klasse 2 genannt c1, die eine Class1 c1 genannt hat, die einen String v1

so Class3 hat eine v1 genannt hat: Class3.c1.c1.v1

1

Ich denke irgendwann hilft das Lesen Ihrer eigenen Frage. Es macht da in einem Auto Beispiel. Ein Auto hat einen Motor, ein Motor hat einen Kolben, daher hat ein Auto einen Kolben. Scheint in der objektorientierten Welt einfach seltsam, mein Verständnis war aus. Ich denke, ich verstehe es jetzt.

+0

Ich fühle mich nutzlos XD – Adalcar

0

Eine has-a Beziehung wird für Objekteindämmung verwendet. Containment bedeutet, ein Objekt enthält ein anderes Objekt. Es kann auch als Zusammensetzung bezeichnet werden.

Zum Beispiel: Ein Auto hat ein Musiksystem, das Musiksystem hat einen Lautsprecher. Daher hat das Auto einen Lautsprecher.

'has-a' Beziehung tritt auf Wenn eine Klasse eine Entity-Referenz hat. Aggregation.

Die Option D ist korrekt, da, Class3 Entitätsreferenz von Class2 enthält und Class2 Entitätsreferenz von Class1 enthält.

Objekte von Class3 haben daher Eigenschaften von Class2, da Class2-Objekte Eigenschaften von Class1 haben, Class3 hat eine Beziehung mit Class1, die als "aggregation/has-a" bezeichnet wird.

Class1 hat eine v1, bedeutet Objekte der Klasse3 enthält Eigenschaft Wert von v1.