Erste Schritte isValidLicenseNumber() - Kennzeichen-Validierung mit Vererbung

gingerkid

Mitglied
Hey Leute,

ich habe folgendes Problem bei der Java-Programmierung...

Ich muss, basierend auf einer gegebenen Klasse LKW, eine Klasse ExtendedLkw erstellen. Dem Konstruktor der Klasse soll als Parameter ein Kennzeichen (String) übergeben werden können und der Parameterwert soll in einer entsprechenden Instanzvariablen abgespeichert werden.

Als nächstes soll in der Klasse ExtendedLkw eine Methode isValidLicenseNumber(), mit der das Kennzeichen auf Gültigkeit geprüft werden kann (Rückgabewert: true oder false) erstellt werden. Das Kennzeichen ist gültig, wenn es folgenden Aufbau besitzt:

- 1-3 Großbuchstaben gefolgt von
- Bindestrich gefolgt von
- 1-2 Großbuchstaben gefolgt von
- Leerzeichen gefolgt von
- 1-4 Ziffern

Also zB. HH-GH 1234

Das ganze dürfte so anfangen, mehr hab ich noch nicht hinbekommen ;)

Java:
LKW lkw = new LKW(0,400,0);
    public void rekFahre(int x) {
        if(x == 0) return;
        lkw.setVisible(true);
        lkw.setGeschwindigkeit(1);
        lkw.fahre(50);
        rekFahre(x-50);

class LKW extends ExtendedLKW();
        {

Das ganze Spielt sich auf einer gegeben Baustelle ab, die unter anderem die Klasse LKW enthält.

Wär echt super, wenn ihr mir irgendwelche Tipps oder Lösungsvorschläge geben könnt. :)
 
Zuletzt bearbeitet von einem Moderator:

gingerkid

Mitglied
Also ich hab da mal etwas vorbereitet und mich ein bisschen an einem Tutorial orientiert, aber so wirklich blick ich da immernoch nicht durch.

Java:
LKW lkw = new LKW(0,400,0);
    public void rekFahre(int x) {
        int ps;
        if(x == 0) return;
        lkw.setVisible(true);
        lkw.setGeschwindigkeit(1);
        lkw.fahre(50);
        rekFahre(x-50);

		this.ps = ps;
	
    }
    public class ExtendedLKW extends LKW{

	private String kennzeichen;
	
	public ExtendedLKW(int ps, String kennzeichen) {
		super(ps);
		this.kennzeichen = kennzeichen;
		
	}
	
	private boolean isValidLicenseNumber() {
		// evtl. in der art if (kennzeichen.matches("[A-Z]{1,3}-[A-Z]{1,2}\\ [0-9]{1,4}"))
		(...)
        return false;
	}


Also ps ist die instanzvariable und bei der Prüfung des Kennzeichens fehlen mir irgenwie die ansätze.
Aber könnte das einigermaßen stimmen, bzw. was ist falsch?
 
G

Gast2

Gast
Naja, teste die Methode halt mal mit nen paar Kennzeichen durch. Auf den ersten Blick schaut das aber gut aus.
 

gingerkid

Mitglied
Bei der Variable ps gibt mir der compiler immer einen fehler raus...cannot find symbol.
und bei der kennzeichenprüfung haut auch irgendetwas nicht hin, oder zumindest bin ich zu dämlich die dort mit einzubauen.
 

CortPoker

Aktives Mitglied
Sieht so aus, als würdest du
Code:
int ps
keinen Wert zuweisen (evtl. seh ich's auch grad einfach nicht). Oder geschieht das vorher irgendwo?
Wie sieht denn dein Code zur Kennzeichenüberprüfung aus?
 

gingerkid

Mitglied
bei this.ps = ps kommt immer die fehlermeldung

kennzeichen.matches("[A-Z]{1,3}-[A-Z]{1,2}\\ [0-9]{1,4}
das ist der code zur kennzeichenüberprüfung



Java:
LKW lkw = new LKW(0,400,0);
    public void rekFahre(int x) {
        int ps;
        if(x == 0) return;
        lkw.setVisible(true);
        lkw.setGeschwindigkeit(1);
        lkw.fahre(50);
        rekFahre(x-50);
        
        this.ps = ps;  //cannot find symbol - variable ps
	
    }
    public class ExtendedLKW extends LKW{

	private String kennzeichen;
	
	public ExtendedLKW(int ps, String kennzeichen) {
		super(ps);
		this.kennzeichen = kennzeichen;
		
	}
	
	
	public boolean isValidLicenseNumber()
	{
     return kennzeichen.matches("[A-Z]{1,3}-[A-Z]{1,2}\\ [0-9]{1,4}");
    }

}
}
 

chalkbag

Bekanntes Mitglied
Java:
public void rekFahre(int x) {
        int ps;
        if(x == 0) return;
        lkw.setVisible(true);
        lkw.setGeschwindigkeit(1);
        lkw.fahre(50);
        rekFahre(x-50);
        
        this.ps = ps;  //cannot find symbol - variable ps
    
    }

Definiere int ps in der Klasse als Klassenvariable und nicht in der Methode. Zusätzlich musst ps in der Methode noch übergeben, sonst kannst du es nicht setzen.

Mit this ist dieses Objekt gemeint.
 

Neue Themen


Oben