JStein52
Top Contributor
Das sagt aus dass du für alle Artikel die das Kriterium erfüllen was ausgeben sollst, also System.out.println(artikel);die die Details aller Artikel ausgibt
Das sagt aus dass du für alle Artikel die das Kriterium erfüllen was ausgeben sollst, also System.out.println(artikel);die die Details aller Artikel ausgibt
public void alleArtikelAnzeigen()
{
for(Artikel aktuellerArtikel: lager){
System.out.println(aktuellerArtikel.toString());
}
den Bestand holen musst
Doch ! Kann ja wohl nicht sein dass du an einer simplen if-Abfrage scheiterst ? Davor hattest du es schon mal richtiger. Dein letzter Versuch ist SchrottNein, ich bekomme das einfach nicht zusammen!
1. Nichtssagender Methodenname "level". Vorschlag: zeigeArtikelUnterMindestbestand.public int level(level)
{
Artikel a = aktuellerArtikel(level);
for(Artikel aktuellerArtikel: lager){
System.out.println(aktuellerArtikel.gibBestand() < 250) {
}
}
}
public void zeigeArtikelUnterMindestbestand.(level)
{
for(Artikel aktuellerArtikel: lager){
if ( aktuellerArtikel.gibBestand() <level ){
System.out.println(aktuellerArtikel.toString());
}
else{
System.out.println("Der Artikel ist nicht unter dem Mindestbestand);
}
}
ich bin mir fast sicher, der weiß es auch nicht besser.
public void zeigeArtikelUnterMindestbestand(int mindestBestand)
{
for(Artikel aktuellerArtikel: lager){
if ( aktuellerArtikel.gibBestand() < mindestBestand ){
System.out.println(aktuellerArtikel.toString());
}
else{
System.out.println( "Der Artikel ist nicht unter dem Mindestbestand);
}
}
System.out.println( "Der Artikel ist nicht unter dem Mindestbestand);
Manchmal führt ein einziger kleiner Tippfehler dazu, das seeehr viel Code auf einmal als falsch markiert wird, weil die IDE mit dem Code, der auf den Fehler folgt, gar nix mehr anfangen kann. Lösung: den Ort suchen, wo das rote Unterkringeln (oder wie auch immer BluJ Fehler anzeigt) anfängt, und dort nach Fehlern suchen.Also im BlueJ Editor werden überall Fehler angezeigt, sogar bei den anderen Methoden die richtig sind
Ups, erwischt! Macht aber nix, ein Wissender pro Forum sollte reichen.ich bin mir fast sicher, der weiß es auch nicht besser
Dann denk doch mal über die Meldung nach, die sagt in Verbindung mit der Zeile schon alles was du wissen musstDa kommt ne Fehlermeldung: unclosed string literal
package paket1;
import java.util.ArrayList;
public class Bestandsverwalter {
private ArrayList<Artikel> lager;
public Bestandsverwalter()
{
lager = new ArrayList<Artikel>();
}
public void zeigeArtikelUnterMindestbestand(int mindestBestand)
{
for(Artikel aktuellerArtikel: lager){
if ( aktuellerArtikel.gibBestand() < mindestBestand ){
System.out.println(aktuellerArtikel.toString());
}
else{
System.out.println( "Der Artikel ist nicht unter dem Mindestbestand");
}
}
}
}
package paket1;
public class Artikel {
public int gibBestand()
{
return gibBestand();
}
}
package paket1;
import java.util.ArrayList;
public class Bestandsverwalter {
public static void main (String[] args) {
}
private ArrayList<Artikel> lager;
public Bestandsverwalter()
{
lager = new ArrayList<Artikel>();
}
public void zeigeArtikelUnterMindestbestand(int mindestBestand)
{
for(Artikel aktuellerArtikel: lager){
if ( aktuellerArtikel.gibBestand() < mindestBestand ){
System.out.println(aktuellerArtikel.toString());
}
else{
System.out.println( "Der Artikel ist nicht unter dem Mindestbestand");
}
}
}
}
Das könnte es sein - oder Eclipse ist noch unausgegoren.Für eclipse bin ich noch nicht reif?
Doch, du schon aber @DerWissende nichtFür eclipse bin ich noch nicht reif?
Keine Beleidigungen, für ihn funktioniert es mit BlueJ, dabei sollte er es auch belassenDoch, du schon aber @DerWissende nicht
tut es eben nicht. Er entwickelt null Verständnis für ein zusammenhängendes Java-Programm. Deshalb BlueJ löschen, Eclipse benutzen.für ihn funktioniert es mit BlueJ
Ok, aber heute nicht mehr. Ich wollte schon vor ner Stunde meinen Vodka Kirsch trinken.jetzt bist du gefragt
public void neuerArtikel(Artikel artikel)
{
lager.add(artikel);
}
Wenn DAS die Artikel-Klasse ist, hast du sie seit deinem ersten Post in diesem Thread massiv verschlimmbessert. Sobald du gibBestand() auf einem Artikel aufrufst, sollte innerhalb von Sekundenbruchteilen ein StackOverflowError geworfen werden.Java:package paket1; public class Artikel { public int gibBestand(){ return gibBestand(); } }
Sehr nützlicher Hinweis. Warum sollte man sich die Bürde einer main-Methode auferlegen, wenn man das, wofür sie gedacht ist, auch auf zig Umwegen erreichen kann.zweitens bei BlueJ brauchst du gar keine main()
Du hast BlueJ noch nicht verstanden - und redest jetzt so daherSehr nützlicher Hinweis. Warum sollte man sich die Bürde einer main-Methode auferlegen, wenn man das, wofür sie gedacht ist, auch auf zig Umwegen erreichen kann
Bitte bleibe doch beim Thema. Es geht in diesem Thread doch gar nicht darum, was ich kann oder verstehe oder auch nicht oder wie oder was (obwohl du aus welchem Grund auch immer dazu tendierst, das zum Thema zu machen), sondern darum, was dem TE beim Verstehen von Java hilft oder eher nicht.Du hast BlueJ noch nicht verstanden
Na dann .... frisch auf ans Werk. Erkläre ihm was er tun muss. Er hat nämlich noch keine Idee wie ein Java-Programm abläuft. Vor allem wenn er mehr machen soll als nur mal new Bestandsverwaltung();erfordert lediglich das Hinzufügen einiger Methoden sowie Aufrufe. Und zwar solche, wie er sie bereits bei BlueJ "angeklickt" hat
Nicht, dass ich gegrillt werde, aber wäre da eines der guten Bücher nicht naheliegender?Er hat nämlich noch keine Idee wie ein Java-Programm abläuft
Er soll nicht mit BlueJ "klarkommen" (das hier ist schliesslich primär kein BlueJ-Erklärungsforum), sondern er soll Java lernen und verstehen.Nochmal, er kommt bis jetzt ganz gut klar mit BlueJ
public void neuerArtikel(int nummer)
{
lager.add(artikel);
for(Artikel aktuellerArtikel: lager){
if (aktuellerArtikel.gibNummer() == nummer) {
(kann nicht eingefügt werden code)
System.out.println("Es existiert bereits ein Artikel mit dieser Nummer!");
}
}
}
public void neuerArtikel(Artikel artikel)
{
// Artikelnummer holen
for(Artikel aktuellerArtikel: lager){
if (aktuellerArtikel.gibNummer() == nummer) {
System.out.println("Es existiert bereits ein Artikel mit dieser Nummer!");
// Methode verlassen und nichts weiter tun
}
}
lager.add(artikel);
}
Vermutlich an dem was du da gemacht hast. Zeig es doch malWoran liegt das?
import java.util.ArrayList;
/**
* Verwalte den Bestand eines Unternehmens.
* Der Bestand ist beschrieben durch einen oder
* mehrere Artikel.
*
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Bestandsverwalter
{
// Das Lager mit den Artikeln
private ArrayList<Artikel> lager;
private int nummer;
/**
* Initialisiere den Bestandsverwalter.
*/
public Bestandsverwalter()
{
lager = new ArrayList<Artikel>();
}
/**
* Führe einen neuen Artikel im Lager ein.
* @param artikel Der Artikel, der neue eingeführt werden soll.
*/
public void neuerArtikel(Artikel artikel)
{
// Artikelnummer holen
for(Artikel aktuellerArtikel: lager){
if (aktuellerArtikel.gibNummer() == nummer) {
System.out.println("Es existiert bereits ein Artikel mit dieser Nummer!");
// Methode verlassen und nichts weiter tun
}
}
lager.add(artikel);
}
public void zeigeArtikelUnterMindestbestand(int mindestBestand)
{
for(Artikel aktuellerArtikel: lager){
if ( aktuellerArtikel.gibBestand() < mindestBestand ){
System.out.println(aktuellerArtikel.toString());
}
else{
System.out.println( "Der Artikel ist nicht unter dem Mindestbestand");
}
}
}
/**
* Nimm eine Lieferung eines Artikels in das Lager auf.
* Erhöhe den Lagerbestand um die angegebene Menge.
* @param nummer Die Artikelnummer des Artikels.
* @param menge Die angelieferte Menge.
*/
public void aufnehmen(int nummer, int menge)
{
Artikel a = findeArtikel(nummer);
if(a != null){
a.erhoeheBestand(menge);
}
}
/**
* Versuche einen Artikel mit der angegebenen Nummer im
* Bestand zu finden.
* @param nummer die Nummer des zu findenden Artikels.
* @return den gefundenen Artikel oder null, falls kein
* passender Artikel gefunden wird.
*/
public Artikel findeArtikel(int nummer)
{
for(Artikel aktuellerArtikel: lager){
if (aktuellerArtikel.gibNummer() == nummer) {
return aktuellerArtikel;
}
}
return null;
}
/**
* Finde einen Artikel mit der angegebenen Nummer und
* liefere seine aktuelle Menge im Bestand.
* Wenn die Nummer auf keinen Artikel passt, wird
* Null zurückgeliefert.
* @param nummer die Nummer des Artikels.
* @return die Menge des Artikels im Bestand.
*/
public int mengeImBestand(int nummer){
Artikel a = findeArtikel(nummer);
if(a != null){
return a.gibBestand();
}
return 0;
}
/**
* Informationen über alle Artikel ausgeben.
*/
public void alleArtikelAnzeigen()
{
for(Artikel aktuellerArtikel: lager){
System.out.println(aktuellerArtikel.toString());
}
}
}