Vererbung- Erweiterung von Klassen

Maurice16

Mitglied
Hallo Leute,
also ich habe hier ein Problem.
Ich weiß absolut nicht was ich bei dieser Aufgabenstellung machen soll.
Vllt. könntet ihr mir da mal ein bisschen helfen (ich kann nicht so gut mit Java umgehen).
Wäre gut wenn ihr mir ein Beispiel geben könntet wie ich damit anfangen könnte, so dass ich es dann alleine weiter versuchen kann mit eurer hilfe.

Aufgabenstellung:

1.) In diesem Versuch soll die Klasse Random aus dem Paket java.util beerbt werden.

Die Klasse Random besitzt eine Methode, um eine zufälliges Zeichen in den Grenzen von
' ' (32) bis '~' (126) zu generieren.

Schreibe eine Klasse (MyRandom), die die Klasse Random beerbt.

Ihre Klasse soll 4 Konstuktoren und zwei Methoden sowie Attribute für die obere und untere Grenze enthalten.

Konstruktor 1: Dieser Konstuktor ist parameterlos und initialisiert die Attribute der Klasse
in den oben genannten Grenzen.

Konstruktor 2: Dieser Konstuktor besitzt 2 Parameter dür die obere und unter Grenze. Die
beiden Parameter initialisieren die Attribute der Klasse mit beliebigen Werten.

Die Klasse Random besitzt einen Konstruktor, dem ein long-Wert übergeben wird, um den Zufallsgenerator mit einem festgelegten Startwert zu initialisieren.

Konstruktor 3: Dieser Konstruktor besitzt einen Parameter, um den Zufallsgenerator mit
einem Startwert zu initialisieren, außerdem initialisiert er die Attribute der
Klasse in den oben genannten Grenzen.

Konstruktor 4: Dieser Konstruktor besitzt einen Parameter, der den Startwert des
Zufallsgenerators initialisiert sowie 2 Parameter für die Initialisierung der
Attribute der Klasse mit beliebigen Werten.

Die beiden Methoden, die Ihre lasse besitzt, sollen wie folgt porgrammiert werden.

Methode 1: Diese Methode ist parameterlos und soll ein zufällig generiertes Zeichen in
den Grenzen von ' '(32) bis '~' (126) generieren.

Methode 2: Diese Methode besitzt 2 Parameter für die obere und untere Grenze,
innerhalb derer ein zufälliges Zeichen generiert werden soll.

2.) Schreibe eine Applikation, die 2 Zeichenketten auf dem Bildschirm ausgibt.

Die 1. Zeichenkette soll eine zufällige Länge von 15 bis 20 Zeichen haben und aus zufälligen Zeichen zwischen ' ' (32) bis '~' (126) bestehen.

Die 2. Zeichenkette soll eine zufällige Länge von 8 bis 12 Zeichen haben und aus zufälligen Zeichen von 'A' (65) bis 'Z' (90) besten.

P.S: Eine komplette Lösung möchte ich gar nicht von euch haben, nur paar Tipps und Unterstützung.

Danke euch im Vorraus.
 
Hi

Was möchtest du nun wissen, du hast im Thread titel und auch im Beitrag alles was du brauchst ;)

beerbt klingt zwar komisch, ist aber so :D

also deine Entwicklungsumgebung An werfen und klasse erzeugen lassen, ich bevorzuge Eclipse :)

Java:
class deinklassenname extends Random{...}
damit hast du du die klasse und den rumpf, gegebenenfalls noch paar imports nötig compiler wird dann aber schon meckern und bei Eclipse wird er helfen die imports zu machen ;)

der Konstruktor ist nichts anderes als das womit mein Objekt von einer Klasse erzeugt und hat den selben Namen wie die klasse, also
Java:
class deinklassenname extends Random{
public deinklassenname();//<--Konstruktor
}
für den leeren Konstruktor
oder
Java:
class deinklassenname extends Random{
private typ klassenvar1; //<-- so sind die variablen in der ganzen klasse zu sehen
private typ klassenvar2;
public deinklassenname(typ variable1, typ variable2) {  //<--Konstruktor mit Variablen / Parameter
klassenvar1 = vaeriable1
klassenvar2 = vaeriable2
}
}
für einen mit Variablen, wobei du typ durch String int etc ersetzen musst. Je nachdem was du benötigst. Für die Variablen nimmt man auch Namen die selbst erklärend sind!

Ist zwar alles nur grob um rissen aber für den Anfang sollte es reichen ;)

Ich persönlich kann dir die javainsel ans Herz legen. Zum schreiben von deinem Programm wirst du dort viel finden.

Falls du was nicht verstehst frag einfach ;)
 
Zuletzt bearbeitet von einem Moderator:
Also ich fang ja erstmal an mit
Java:
import java.util.*;

public static void main (String args[]) {
Und dann werden doch erstmal die 2 Startwerte für die Konstruktor deklariert, oder?
Danach kann ich doch mit this.1Wert=1Wert die werte dort reinholen oder?
Müssen die konstruktoren immer public sein?
 
Hallo,
Eigentlich solltest du noch den klassenNamen zwischen dem import und main() haben wie es wakoz geschrieben hat.
Konstruktoren sind ja Funktionen, folglich werden sie nicht in der main() deklariert sondern ausserhalb.
Und Konstruktoren müssen nicht zwingend Public sein , sie können auch private protected oder so sein, wie eine Methode halt auch.
 
Zuletzt bearbeitet:
Irgentwie bekomme ich das einfach nicht hin...
Ich weiß gar nicht was ich da machen muss...
Und für morgen brauche ich das =/:(
Könnte mir einer vllt. das Programm mal schreiben?
Nur wenn es nicht so viel Zeit benötigt...
Ist zwar ne sehr unpassende Art es zu lernen,
jedoch schaffe ich das bis morgen nicht mehr und das gibt dann ziemlich stress..:rolleyes:

Bitte...

MfG Maurice
 
Die 4 Konstruktoren müssen so gewählt werden, dass sie dem entsprechen, was in der Aufgabenstellung gefordert wird. Wakoz hat dir ja bereits beschrieben, wie man einen Konstruktor in einer Klasse erzeugt. In Pseudo(!)code müssen deine Konstruktoren ja das folgende tun:
Code:
konstruktor1()
{
   ObereGrenze = 126; // in der Aufgabenstellung steht nicht direkt ob exklusiv oder inklusiv
   UntereGrenze = 32;
}

konstruktor2(obereGrenze, untereGrenze)
{
   ObereGrenze = obereGrenze;
   UntereGrenze = untereGrenze;
}

konstruktor3(seed) : Random(seed)
{
   ObereGrenze = 126;
   UntereGrenze = 32;
}

konstruktor4(seed, obereGrenze, untereGrenze) : Random(seed)
{
   ObereGrenze = obereGrenze;
   UntereGrenze = untereGrenze;
}
 
Zuletzt bearbeitet:
Wofür ist denn dieses "seed"?
Weil das hatten wir noch gar nicht...
Kann man das evtl. noch anderes schreiben die letzten 2 Konstruktoren?
 
Du musst es sowieso noch anders schreiben - wie ich sagte, das ist Pseudocode, der dir die Textform der Aufgabe etwas näher an Code orientiert darstellt. Du musst nun diesen Pseudocode noch in richtigen Javacode umwandeln.

"seed" ist der Name des Parameters. In der Programmierung werden Startwerte häufig als "seed" bezeichnet daher habe ich dies als Namen für den Parameter genommen.
 
Zurück