Vererbung Problem Vererbung/Exceptions

Status
Nicht offen für weitere Antworten.

MacMurdock

Aktives Mitglied
Hallo,
Ich habe eine weitere Frage zu Exceptions/Vererbung und zwar habe ich folgende Aufgabe:

Schreiben Sie eine Klasse Lager, die es erlaubt Lagerartikel in einer ArrayList zu verwalten. Implementieren Sie Methoden zum Anzeigen aller Artikel und zum Einfügen und Suchen von einzelnen Artikeln nach der Modellbezeichnung. Wird ein Artikel bei der Suche nicht gefunden soll eine Exception geworfen werden. Definieren Sie dazu eine eigene Exceptionklasse. Die ANzeige soll sortiert nach ArtikelCode erfolgen.

Was ich nicht verstehe ist wie kann ich im Lager nach dem Attribut Modell suchen wenn eigentlich nur die Klasse Stichsäge über Modell verfügt? Hier mal mein Code:

Klasse LagerArtikel
Java:
public abstract class LagerArtikel {
	
	private static final long groessterArtikelCode = 16012012;
	
	private int regalNr = 0;
	private int fachNr = 0;
	private int artikelCode;

	
	
	
	public LagerArtikel(int regalNr, int fachNr, int artikelCode) {
		if ( regalNr <= 0 )
			 throw new IllegalArgumentException( "Keine RegalNr <= 0 erlaubt!" );
		this.regalNr = regalNr;
		if ( fachNr <= 0 )
		    throw new IllegalArgumentException( "Keine FachNr <= 0 erlaubt!" );
		this.fachNr = fachNr;
		if ( artikelCode <= 0 )
		    throw new IllegalArgumentException( "Kein ArtikelCode <= 0 erlaubt!" );
		this.artikelCode = artikelCode;
	}

	
	
	public void setRegalNr(int regalNr) {
		this.regalNr = regalNr;
		regalNr++;
	}

	public void setFachNr(int fachNr) {
		this.fachNr = fachNr;
		fachNr++;
	}

	public void setArtikelCode(int artikelCode) {
		this.artikelCode = artikelCode;
	}



	public int getRegalNr(){
		return regalNr;
	}
	
	public int getFachNr(){
		return fachNr;
	}
	
	public int getArtikelCode(){
		if(artikelCode < 0)
			  throw new IllegalArgumentException("Fehler, artikelCode muss positiv sein!");
		return artikelCode;
	}
	
}

Klasse HeimwerkerGeraet
Java:
public abstract class HeimwerkerGeraet extends LagerArtikel {

	private String hersteller;
	private String geraeteklasse;
	
	
	public HeimwerkerGeraet(int regalNr, int fachNr, int artikelCode, String hersteller, String geraeteklasse){
		super(17, fachNr, artikelCode);
		this.hersteller = hersteller;
		this.geraeteklasse = geraeteklasse;
		regalNr = 17;
	}
	
	
}

Klasse Stichsäge
Java:
import java.util.Calendar;

public class Stichsaege extends HeimwerkerGeraet {

	private int watt;
	private String Modell;
	
	
	public Stichsaege(int regalNr, int fachNr, int artikelCode,
			String hersteller, String geraeteklasse, int watt, String modell) {
		super(regalNr, fachNr, artikelCode, hersteller, geraeteklasse);
		this.watt = watt;
		Modell = modell;
		fachNr = Calendar.getInstance().get(DAY_OF_WEEK);
	}
	
	
}
Klasse Lager
Java:
import java.util.ArrayList;


public class Lager {
	
	private ArrayList<LagerArtikel> lagerartikel;

	public Lager() {
		super();
		this.lagerartikel = new ArrayList<LagerArtikel>();
	}

	
	
	
	public ArrayList<LagerArtikel> getLagerartikel() {
		return lagerartikel;
	}


	public void add(LagerArtikel la) {
		lagerartikel.add(la);
	}

	public void durchsuche(){
		  if (lagerartikel.contains("Item 1")) {
	            System.out.println("True");
	        } else {
	        	throw new LagerException(getModell(),"Dieses Modell ist nicht vorhanden");
	        }
		
	}
	
	public String toString() {
		return "Lager [lagerartikel=" + lagerartikel + "]";
	}
	
	
	
	
}

Klasse LagerException
Java:
public class LagerException extends Exception
{
	String Modell;
    String meldung;
	
	private static final long serialVersionUID = 1L;
	
    

    public LagerException(String modell, String meldung) {
		super();
		Modell = modell;
		this.meldung = meldung;
	}



	public String toString() {
        return "***** Fehler bei Konto " + Modell + "\n***** " + meldung;
    }
}
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
die Aufgabe ist in der Tat recht unklar, da kann sich jeder andere auch nur die Frage stellen,
ob dir wilde Spekulationen helfen oder du eher nachfragen solltest, sei dahingestellt,

möglich wäre, dass jeder Artikel eine toString()-Methode mit seinen Werten befüllt, auf diesen String bietet dann contains() gewisse Möglichkeiten,

------
Kleinigkeiten:

> lagerartikel.contains("Item 1")
für eine Liste von Objekten != String kann dagegen nicht funktionieren,

'lagerartikel' ist auch ein sehr schlechter Variablenname falls nicht vom Typ LagerArtikel, sofern es eine solche Klasse gibt!
nenne das doch 'artikelliste'

unangenehm fällt auch auf, dass du wiederholt Modell großgeschrieben als Variable hast,
Variablen unbedingt durchgehend klein schreiben (also erster Buchstabe klein, darf hinten auch Großbuchstaben haben),
sonst ja auch schon gut so gemacht
 

MacMurdock

Aktives Mitglied
Was ich auch noch nicht so wirklich verstanden habe, ich möchte die Arraylist nach einem String, also nach Modell durchsuchen.
Im Moment ist es ja so, dass die Artikelliste nach "Item1" durchsucht werden, kann ich es auch so machen, dass man selbst einen Begriff eingibt nachdem man sucht? Wenn ja wie geht das?

Und nochmal zu Exception ich bekomme die Fehlermeldung "The Method getModell() is undefined for the type Lager" wenn ich die Exception werfe:

Java:
public void durchsuche(){
		  if (artikelliste.contains("Item 1")) {
	            System.out.println("True");
	        } else {
	        	throw new LagerException(getModell(),"Dieses Modell ist nicht vorhanden");
	        }
		
	}

In der Aufga steht ausdrücklich dass man nach der Modellbezeichnung suchen soll und wenn es die nicht gibt soll eine Exception geworfen werden die von einer eigenen Exceptionklasse kommt.
Das muss doch irgendwie gehen oder?
 
S

SlaterB

Gast
> Im Moment ist es ja so, dass die Artikelliste nach "Item1" durchsucht werden

dass das nicht gutgeht, schrieb ich ja schon

> kann ich es auch so machen, dass man selbst einen Begriff eingibt nachdem man sucht? Wenn ja wie geht das?

wie machst du das add() für einen neuen Artikel? der wird ja auch nicht 'Item1' sein, sondern eben ein Parameter,
variable Übergabe beliebiger Werte, hier genauso, Suchwort übergeben

wie der Aufrufer zu dem kommt ist ein weites Feld,
von der Konsole einlesen usw., das willst du hoffentlich nicht alles hier fragen

> Und nochmal zu Exception ich bekomme die Fehlermeldung "The Method getModell() is undefined for the type Lager" wenn ich die Exception werfe:

in diesem Fall musst du sicher nur den Suchbegriff, den Parameter, in die Exception geben, was sollte getModell() sein/ liefern?
allgemein ist das Problem wie gesagt ungeklärt,

solltest du an irgendeiner Stelle ein konkretes LagerArtikel-Objekt haben, dann könntest du höchstens da das Modell abfragen,
wenn auch kompliziert/ unschön, und nebenbei hat im Moment nichtmal die Klasse Stichsaege eine getModell()-Methode..
 

MacMurdock

Aktives Mitglied
Ich hab es jetzt so gemacht aber das ist falsch, kannst du mir vielleicht ein bisschen praktischer helfen, ich kenne leider niemanden der Java kann und das sind so Kleinigkeiten an denen man ewig hängt wenn man nicht genau weiss wie es funktioniert.
Hier nochmal die Methode:

Java:
public void durchsuche(){
		  if (artikelliste.contains(String suchwort)) {
	            System.out.println("True");
	        } else {
	        	throw new LagerException(getModell(),"Dieses Modell ist nicht vorhanden");
	        }
		
	}
 

Timothy Truckle

Top Contributor
Hier nochmal die Methode:
Wie SlaterB schon schrieb kannst Du nur in [JAPI]String[/JAPI]-Listen mit
Code:
contains()
suchen.
Du musst schon in einer Schleife über die Listenelemente laufen und jedes Element fragen, ob es das Suchkriterium erfüllt.

Der von SlaterB vorgeschlagene Vergleich über Ausgabe von
Code:
toString()
ist recht einfach umsetzbar und für's erste ausreichend...

bye
TT
 
S

SlaterB

Gast
Java:
    public void setRegalNr() {
        this.regalNr = "Item1".length();
    }
vs
Java:
    public void setRegalNr(int regalNr) {
        this.regalNr = regalNr;
    }
erkennst du den Unterschied zwischen einer Methode ohne Parameter, die alles aus eigenem Wissen/ Code machen muss
und einer Methode mit Parameter?

was braucht es da Praxis, was kann es viel grundlegenderes geben als eine Methode mit Information von außen,
all die Konstruktoren, set-Methoden, überall wird etwas übergeben...

auch contains() dient als gutes Beispiel, was macht die ArrayList in ihrer Implementierung von contains(), Däumchen drehen, immer dasselbe suchen?
nein, auch dort wird ein Parameter benötigt, den den du hier an contains() zu übergeben versuchst

> if (artikelliste.contains(String suchwort)) {
sinnlos Wörter zusammenwerfen ist dann auch nicht wirklich eine Lösung,
es gibt doch eine gewisse Grundmenge an Java-Syntax, die zu beachten ist,
wie sieht ein Aufruf einer Methode aus usw., im Gegensatz zur Deklaration
 

MacMurdock

Aktives Mitglied
Ich verstehe es nicht wirklich, was ich bräuchte wäre eine Beispiel einer funktionierenden durchsuche Methode.
Ich bin ja für eure Tipps dankbar aber ich glaube nicht dass ich so wirklich was lerne ich komme einfach nicht weiter da kann ich noch Stunden rumprobieren.
 
S

SlaterB

Gast
siehe auch mein Posting kurz zuvor, kann ja im anderen Thema weitergehen alsbald
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
J Konstruktor Problem bei Vererbung Java Basics - Anfänger-Themen 1
S Problem bei Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 3
J Vererbung Kleines Problem bei Vererbung! Java Basics - Anfänger-Themen 2
V Vererbung Folgendes Problem zur Vererbung ... Java Basics - Anfänger-Themen 3
R Vererbung - Unresolved compilation problem Java Basics - Anfänger-Themen 4
L Problem mit Vererbung (extends) cannot find symbol Java Basics - Anfänger-Themen 3
A Problem mit Vererbung Java Basics - Anfänger-Themen 5
M Problem mit Erweitertem Klassenkonzept (Vererbung) Java Basics - Anfänger-Themen 22
P Problem mit: Vererbung , ADT und einer Funktion Java Basics - Anfänger-Themen 10
D Problem mit Objekten Vererbung deklarieren initialisieren usw Java Basics - Anfänger-Themen 12
M Problem mit package und Vererbung Java Basics - Anfänger-Themen 6
C Problem mit Vererbung Java Basics - Anfänger-Themen 10
X Problem bei Vererbung Java Basics - Anfänger-Themen 12
V Problem mit Aggregation und Vererbung Java Basics - Anfänger-Themen 4
S Problem mit Vererbung Java Basics - Anfänger-Themen 4
L Problem mit Vererbung! Java Basics - Anfänger-Themen 4
W Problem bei Vererbung Java Basics - Anfänger-Themen 14
frau-u Problem mit Klassen und Vererbung - benutzen von Methoden Java Basics - Anfänger-Themen 2
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2
J Klassen Problem Java Basics - Anfänger-Themen 8
A Out.format problem. Java Basics - Anfänger-Themen 3
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
W Remote Method Invocation RMI - Problem Java Basics - Anfänger-Themen 0
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
A Problem bei returnen eines Wertes Java Basics - Anfänger-Themen 6
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben