Value, ValueTest Java < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Aufgabe | Analysieren Sie die abgebildeten Java-Klassen Value und ValueTest. Geben Sie an, was durch die main-Methode der,Klasse ValueTest an den Punkten 1 – 8 ausgegeben wird :
class Value{
2 String string;
3 int integer;
4 Value(){
5 this.string = "AAA"; this.integer = 0;
6 }
7 Value(String string, int integer){
8 this.string = string; this.integer = integer;
9 }
10 Value m(Value v, int w){
11 w = 8;
12 v.string += w;
13 v.integer += w;
14 return this;
15 }
16 void print(){
17 System.out.println(string + " " + integer);
18 }
19 }
20
21 class ValueTest{
22 public static void main(String args[]){
23 Value object1 = new Value();
24 Value object2 = new Value("BBB", 1);
25 Value object3 = new Value("ZZZ", 25);
26 int a = 6;
27 object1.print(); //1.
28 object2.print(); //2.
29 object3.print(); //3.
30 System.out.println( a );//4.
31 object3 = object1.m(object2, a);
32 object1.print(); //5.
33 object2.print(); //6.
34 object3.print(); //7.
35 System.out.println( a );//8.
36 }
37 } |
Ich hab echt keine Ahnung, denke aber:
1 :BBB, 1
2 :ZZZ, 25
3: BBB, 1, a
Ist das soweit richtig?
|
|
|
|
Hallo!
Das sind die Fälle 2, 3, 4 und 5...
object1 wurde ohne Parameter erschaffen:
Value object1 = new Value();
Dadurch wird für diese Instanz der Code der Zeilen 4-6 ausgeführt, während es bei den anderen der Code 7-9 ist.
Dann dein Punkt 3:
Sollte da nicht was mit ZZZ und 25 bei rum kommen?
Und das a wird natürlich mit einem eigenen Print-Befehl ausgegeben, und kommt daher in eine eigene Zeile.
Allerdings ist a eine Variable vom Wert 6, und kein Zeichen.
Und:
Wenn du eine Bildschirmausgabe angeben sollst, ist es sehr wichtig, das möglichst exakt zu tun. Das Komma steht nirgens im Code, und auch deine Numerierung am Anfang der Zeile könnte für verwirrung sorgen. Aber letzteres sollte hier noch OK sein.
Also, dein Teil sollte so aussehen:
AAA 0
BBB 1
ZZZ 25
Für den Rest solltest du ja wissen, daß jedes Objekt seine eigenen Variablen integer und string besitzt, und wenn du die Variablen in einem Objekt änderst, hat das keinen Einfluss auf die Variablen der anderen.
|
|
|
|