Vererbung- Erweiterung von Klassen

Welche Funktion der Klasse Random sieht denn mal nicht schlecht aus um eine Zufallszahl in einem Intervall zu generieren? Schau dich mal in der von mir geposteten Referenz durch, sind ja nicht so viele Möglichkeiten.
 
Genau. Da kannst du dann auch einen Maximalwert angeben. Damit hast du dann auch die Lösung des Problems.
 
Wie siehts denn damit aus?
Kann man das auch so schreiben?
Java:
class Tochterklasse2 extends java.util.Random{
	private int grenzeOben;		
	private int grenzeUnten;				//Attribute der Klasse
	
	//Methode1: zufälliges zeichen zw. 32-126, parameterlos
	char zufallszeichen(){ // Zugriffsbezeichner, Typ des Rückgabewertes, Name der Methode (Parameter)	
		char zeichen = (char) (nextInt(95) + 32); // Zahl zwischen 32 und 126, Int Wert wird in cahr Wert umgewandelt
//nextInt liefert eine Zufallszahl als int und ist eine Methode von der Klasse random
		return zeichen;
	}
	//Methode:zufällige zeichen mit parameterliste:
	char zufallszeichenMitGrenzen(int gOben, int gUnten){
		char zeichenMG = (char) (nextInt(gOben-gUnten+1) + gUnten);
		return zeichenMG;
	}
	//Standardkonstruktor, der Grenzen ohne Parameter speichert:
	Tochterklasse2(){
		this.grenzeOben = 126; //Dem Attribut wird ein Wert zugewiesen, grenzeOben = private int grenzeOben
		this.grenzeUnten = 32;
	}
	//Konstruktor initialisiert 2 grenzen mit zu übergebenen Werten:
	Tochterklasse2(int grenzeO, int grenzeU){
		this.grenzeOben = grenzeO;
		this.grenzeUnten = grenzeU;
	}
	//Konstruktor der Klasse Random bekommt über super() den Wert sw zugewiesen:
	Tochterklasse2(long sw){   //Zahlenwert 64-bit)
		super(sw);
		this.grenzeOben = 126;
		this.grenzeUnten = 32;
	}
	//Konstruktor initialisiert die 3 Werten:
	Tochterklasse2(long sw, int oG, int uG){		
		super(sw);
		this.grenzeOben = oG;
		this.grenzeUnten = uG;

	}
}

//Durch extends wird die Klasse java.util.random beerbt. Dadurch sind die Methoden der Elternklasse verfügbar.
//In der Tochterklasse können jetzt Methoden neu kodiert(verändern) werden. Der Konstruktor der Elternklasse wird mit super() aufgerufen.
// this verweist auf Objekte und ist erforderlich da es sonst Namenskonflikte geben würde
// Konstruktoren: 	Tragen den Namen des zu erzeugenden Objekts und initialisiert(setzt/erzeugt) Attribute;
//					Ihm können Parameter übergeben werden; ohne Parameterliste Standartkonstruktor. genannt;
//					 Hat keinen Rückgabewert; werden mit new operator aufgerufen;

App.:
Java:
import java.util.Random;

class Versuch6_1 {
	
	public static void main(String args[]){

//Erste Zeichenkette (15-20 Zeichen)
	Tochterklasse2 a = new Tochterklasse2();	
	int laenge;
	String ausgabe = "";
			
	laenge =(a.nextInt(6) + 15);
	
	for(int i = 0; i<laenge; i++){
		ausgabe += a.zufallszeichen() +" ";
	}
	System.out.println(ausgabe);
	

//Zweite Zeichenkette (8-12 Zeichen)
	ausgabe="";
	laenge=0;
	laenge = (a.nextInt(5) + 8);
	
	for(int i = 0; i<laenge ; i++){
		ausgabe += a.zufallszeichenMitGrenzen(90,65)+ " ";
	}
	System.out.println(ausgabe);
}
}
 
Zurück