Java – die besten Beiträge

Java-Code? Array?

Wie wird das Array verwendet? Was befindet sich in dem Array? kann jemand mir den Code und die Methode dunkler erklären?

* SWBild ist eine Klasse, die Graustufenbilder repraesentiert und
 * manipuliert. Die Implementierung erfolgt durch ein einfaches
 * Bildformat: Die Bildpunkte werden in einem zweidimensionalen
 * Array von 'short'-Werten gehalten. Jeder Feldeintrag kann einen
 * Wert zwischen 0 und 255 annehmen. Andere Werte sind unzulaessig.
 * Der Wertebereich [0..255] repraesentiert den Graustufenbereich:
 * 0 fuer Schwarz, 255 fuer Weiss und dazwischenliegende Werte fuer
 * die Grauabstufungen.
 * 
 * Beispielmethode 'dunkler': Ein geladenes Bild kann um
 * ein gegebenes 'delta' abgedunkelt werden.
class SWBild
{


    // die Bilddaten dieses Bildes
    private short[][] _bilddaten;


    // die Breite dieses Bildes
    private int _breite;


    // die Hoehe dieses Bildes
    private int _hoehe;


    // Leinwand zur Anzeige
    private Leinwand _leinwand;


    /**
     * Initialisiert ein Bild mit einer Bilddatei. Der Benutzer kann interaktiv mit
     * Hilfe eines Dateidialogs die zu ladende Datei auswaehlen.
     */
    public SWBild()
    {
        _bilddaten = BildEinleser.liesBilddaten();
        if (_bilddaten != null)
        {
            aktualisiereBildgroesse(_bilddaten);
            erzeugeLeinwand();
        }
    }


    /**
     * Initialisiert ein Bild mit einer Bilddatei. Der Dateiname kann als absoluter
     * oder relativer Pfad uebergeben werden.
     * 
     * @param bilddateiName
     *            der Name der Bilddatei
     */
    public SWBild(String bilddateiName)
    {
        _bilddaten = BildEinleser.liesBilddaten(bilddateiName);
        aktualisiereBildgroesse(_bilddaten);
        erzeugeLeinwand();
    }


    /**
     * Dieses Bild um einen Wert abdunkeln. 
     * 
     * @param delta
     *            Wert der Abdunkelung. Es wird mit dem Betrag von delta gerechnet, 
     *            deshalb darf der Parameter sowohl positiv als auch negativ sein.  
     */
    public void dunkler(int delta)
    {
        if (delta < 0)
        {
            delta = -delta;
        }


        /**
         * Durch alle Bytes des Bildes gehen und jeden Wert dekrementieren
         */
        for (int y = 0; y < _hoehe; y++)
        {
            for (int x = 0; x < _breite; x++)
            {
                if ((_bilddaten[y][x] - delta) > 0) // Wert darf 0 nicht unterschreiten
                {
                    _bilddaten[y][x] = (short) (_bilddaten[y][x] - delta);
                }
                else
                {
                    _bilddaten[y][x] = 0;
                }
            }
        }
        // Neuzeichnen der Bildleinwand, basierend auf den Werten in _bilddaten:
        zeichneBild();
    }




Mathematik, programmieren, Java, Informatik, Softwareentwicklung, Wirtschaftsinformatik

JAVA Klassenmethoden- Methoden aufrufen und neue Werte abspeichern. Aber wie?

Hallo Zusammen

Ich brauche bei dem untersten Code Hilfe, weiss leider nicht wo mein Fehler ist..

Aufgabenstellung

Du implementierst eine Plattform, in der Artikel versteigert werden können. Zum Speichern eines Artikels verwendest du die folgende Klasse:

public class Artikel {
   public String name;
   public int preis = 0;
   public int gebote = 0;

   public Artikel(String name, int preis) {
      this.name = name;
      this.preis = preis;
   }
}

Das Attribut name enthält die Beschreibung des Artikels. Das Attribut preis enthält zu Beginn das Mindestgebot und später das bisher höchste Gebot. Die Attribute name und preis werden beide über den Konstruktor gesetzt. Im Attribut gebote wird die Anzahl gültiger Gebote gespeichert. Zu Beginn enthält das Attribut den Wert 0. Ein Gebot ist gültig, wenn eine der folgenden Bedingungen erfüllt ist:

  • Wenn noch kein Gebot abgegeben wurde und der gebotene Betrag mindestens gleich hoch ist wie das Mindestgebot.

Wenn das Gebot höher ist als das bisher höchste Gebot.

Ergänze die Methode so dass sie prüft, ob das übergebene Gebot gültig ist. Bei einem ungültigen Gebot soll nichts gemacht werden. Bei einem gültigen Gebot soll der Preis des Artikels angepasst und die Anzahl gültiger Gebote um eins erhöht werden.

Die Main-Klasse enthält Tests für drei Artikel. Schau dir die Tests an. Wenn du die Methode wie beschrieben erweitert hast, sollte das Programm die folgende Ausgabe machen:

Schrank: Gebote: 0, Preis: 100
Bett: Gebote: 2, Preis: 161
Stuhl: Gebote: 3, Preis: 30

Mein Code sieht folgendermassen aus:
Main Class: 
public class Main {
	
  public static void main(String[] args) {
    
		// In dieser Klasse keine Änderungen machen
		
		Artikel a = new Artikel("Schrank", 100);
		Artikel b = new Artikel("Bett",150);
		Artikel c = new Artikel("Stuhl", 20);
		
		a.biete(99);  // ungültig (Preis unter Minimum)
		b.biete(160);
		b.biete(159); // ungültig (Preis unter höchstem Gebot)
		b.biete(161); 
		c.biete(20);
		c.biete(23);
		c.biete(23);  // ungültig (Preis gleich hoch wie höchstes Gebot)
		c.biete(30);
		
		System.out.println(a.name+": Gebote: "+a.gebote+", Preis: "+a.preis);
		System.out.println(b.name+": Gebote: "+b.gebote+", Preis: "+b.preis);
		System.out.println(c.name+": Gebote: "+c.gebote+", Preis: "+c.preis);
	}
}
Klasse Artikel: 
public class Artikel {
	public String name; //Beschreibung des Artikels 
	public int preis = 0; // enthält erst das Mindestangebot und später das Höchstgebot 
	public int gebote = 0; 
	
	public Artikel(String name, int preis) {
		this.name = name;
		this.preis = preis;
	} 
	
	public void biete(int gebot) {
	  // TODO: Methode implementieren
	  while ((gebote==0 && gebot>preis) || (gebote>0 && gebot>preis)){
	  if ((gebote==0) && (gebot>=preis)) {
            artikel.preis==gebot;
            gebote++;
	      }
	  
	  if (gebote>0 && (preis>gebot){
	      preis==gebot; 
	      gebote++;
    }
    } 
    }
	}

Java, Programmiersprache

Meistgelesene Beiträge zum Thema Java