Skip to Content

1.44 Felder, Schleifen, Referenzen

Schreiben Sie eine Methode welche alle Werte eines Felds verdreifacht. Schreiben Sie den Quellcode in den freien Platz der vorgegebenen Methode dreifach(int[] a) der Klasse Feld1.

  • Verdreifachen Sie alle Werte des Feldes a welches als Eingabeparameter übergeben wird
  • Nicht notwendig:
    • Überprüfung auf Überlauf des Wertebereichs von int der einzelnen Feldelemente
    • Typprüfungen für a (a sei eine Nullreferenz oder ein Feld von int)
  • Für volle Punktzahl notwendig:
    • Prüfen, dass die übergebene Variable a nicht eine Nullreferenz ist
    • Verdreifachen aller Werte eines beliebig langen Feldes a
    • Die Feldgrenzen sollen nicht unter- oder überlaufen werden

Gegeben ist das folgende Javaprogramm:

public class Feld1 {
   public static void dreifach(int[] a) {
      // Hier Lösung einfügen
  } // Ende der Methode. Kein Rückgabewert notwendig
} // Ende der Klasse Feld1
Niveau 1
Schwierigkeitsgrad mittel
Zeit 9 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 1.43: Pakete und Sichtbarkeit von Klassen und Methoden

Die notwendigen Änderungen sind fett gedruckt. Bzw. mit horizontaler Linie durchgestrichen.

Datei: KlasseA.java:
package Paket1;
public class KlasseA {
public protected String print()
{return "KlasseA";} }

Datei KlasseAA.java:

package Paket1;
class KlasseAA extends KlasseA{  }

Datei KlasseAB.java:

package Paket1;
public class KlasseAB extends KlasseA{  }
Lage der Klassen in den Paketen
Datei KlasseAC.java:
package Paket2;
import Paket1.KlasseA; class KlasseAC extends KlasseA { }
Datei Klasse KlasseABD.java:
package Paket3;
import Paket1.KlasseAB;
import Paket1.KlasseA;
  
class KlasseABD extends KlasseAB{
KlasseA myRef;
public void test() {
KlasseAB aa = new KlasseAB();
String s = aa.print(); } }

Comments

Protected statt public?

Bzgl. Frage 43:
Reicht nicht "protected" statt "public"? Schließlich lässt dieser Modifier auch Subklassen aus einem anderen Package zu.

Wo genau?

An welcher Stelle?

Überall

Jedes public lässt sich durch protected ersetzen, denke ich.

Protected statt public?

Bzgl. Frage 1.43:
Reicht nicht einfach "protected" statt "public"? Schließlich lässt dieser Subklassen außerhalb des eigenen Packages bereits zu.

KlasseABD braucht public

das Attribut myRef benötigt eine "public" KlasseA

Protected geht auch

Protected funktioniert doch auch - Zugriff bei Protected ist auch über Subklassen welche sich in anderen Packages befinden möglich.
Ein ähnliches Beispiel von Oracle findet man, wenn man folgendes googelt:
"Controlling Access to Members of a Class". Es befindet sich unten auf der Seite.

Leider ist es mir wegen dem Anti-Spam nicht möglich, einen Link zu posten.

Stimmt.

Sie haben recht.



blog | by Dr. Radut