www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Java" - jedes Objekt um eins erhöhen
jedes Objekt um eins erhöhen < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

jedes Objekt um eins erhöhen: Tipp
Status: (Frage) beantwortet Status 
Datum: 22:53 Mo 19.04.2010
Autor: capablanca

Aufgabe
//sämtliche Klassen des Pakets "util" importieren
import java.util.*;

public class Main{

        //Atributendeklaration
        private double rabatt;

        //Scanner mit Objekt s initialisieren
        Scanner s = new Scanner(System.in);
        //Arrays mit drei Objekten von Classe Auftrag erzeugen
        Auftrag[] a = new Auftrag[3];

        //liest alle benötigten Daten für die Aufträge ein
        public static void main(String[] args)
       {
             //for Schleife initialisiert drei verschiedene Objekte
             //von Classe Auftragsverwaltung mit Werten
             for (int i = 0;i<3;i++)
             {
            a[i]=new Auftrag();

            //Auftragsdaten werden eingegeben
              System.out.println("geben Sie bitte folgende Daten ein:");
              System.out.print("Rabatt:");
              double rab = s.nextDouble();
              a[i].setRabatt(rab);
              
        }// ende forschleife

     }//ende main



//zugriff auf Rabatt um änderungen vornehnmen zukönnen mit get, set
    double getRabatt()
    {
        return rabatt;
    }

    void setRabatt(double neuerRabatt)
    {
        rabatt = neuerRabatt;
    }


    //erhöht den Rabatt von allen Aufträgen um Prozent Prozent
    void erhoeheRabatt(double Prozent)
    {
                        

            
    }

}//ende class

Hallo, wie kann man diese Methode:

//erhöht den Rabatt von allen Objekten um Prozent Prozent
void erhoeheRabatt(double Prozent)
{
}

füllen, damit der Rabatt von jedem Objekt erhöht wird?


würde mich über Tipps freuen
gruß

        
Bezug
jedes Objekt um eins erhöhen: Antwort
Status: (Antwort) fertig Status 
Datum: 23:24 Mo 19.04.2010
Autor: Event_Horizon

Hallo!

Wo ist denn dein Problem genau?

Du weißt anscheinend, wie man den Rabatt mit nem neuen Wert überschreibt. Genauso kannst du den Rabatt doch irgendwie mit dem Funktionsargument verrechnen, und das Ergebnis wieder in rabatt speichern...

Bezug
                
Bezug
jedes Objekt um eins erhöhen: Idee
Status: (Frage) beantwortet Status 
Datum: 09:39 Mi 21.04.2010
Autor: capablanca

Aufgabe
public class Main {

    
    public static void main(String[] args) {

        

        Scanner s = new Scanner(System.in);
        Auftragsverwaltung ka = new Auftragsverwaltung();
        
        ka.daten_Einlesen();
        System.out.println("Rabatt wurde bei allen Aufträgen um ein Prozent erhoeht");
        double[] Prozent = new double[3];
        ka.erhoeheRabatt(Prozent);
  }//ende main
}//ende class


import java.util.*;

public class Auftragsverwaltung extends Auftrag
{

     //Scanner mit Objekt s initialisieren
     Scanner s = new Scanner(System.in);
     //Arrays mit drei Objekten von Classe Auftrag erzeugen
     Auftrag[] a = new Auftrag[3];

     //liest alle benötigten Daten für die Aufträge ein
     void daten_Einlesen()
     {
        //for Schleife initialisiert drei verschiedene Objekte
        //von Classe Auftragsverwaltung mit Werten
        for (int i = 0;i<3;i++)
        {
          a[i]=new Auftrag();

//        Auftragsdaten werden eingegeben
          System.out.println("geben Sie bitte folgende Daten ein:");
          System.out.print("Rabatt:");
          double rab = s.nextDouble();
          a[i].setRabatt(rab);
  }// ende forschleife
     }//ende void daten einlesen

  void erhoeheRabatt(double[] Prozent)
     {
        for (int i=0; i<3; i++)
        {
        Prozent[i]=a[i].getRabatt();
        Prozent[i]++;
        }
     }
}//ende class


public class Auftrag {

       private double rabatt;

//zugriff auf Rabatt um änderungen vornehnmen zukönnen mit get, set
    double getRabatt()
    {
        
        return rabatt;
    }

    void setRabatt(double neuerRabatt)
    {
        rabatt = neuerRabatt;
    }

}// ende class

Hallo, ich weiss nicht genau woran es liegt, hier in dem Beispiel meine ich alles berücksichtigt zuhaben aber es klappt trotzdem nicht ?

wo könnte den mein Fehler liegen?

gruss capablanca

Bezug
                        
Bezug
jedes Objekt um eins erhöhen: Ich habe die Lösung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:10 Mi 21.04.2010
Autor: capablanca

in main -->

System.out.println("Rabatt wurde bei allen Aufträgen " +
                            "um ein Prozent erhoeht");
                    double Prozent = ka.getRabatt();
                    ka.erhoeheRabatt(Prozent);


in Auftragsverwaltung -->

void erhoeheRabatt(double Prozent)
     {
        for (int i=0; i<3; i++)
        {
       a[i].setRabatt(a[i].getRabatt()+1);
        }
     }

Bezug
                        
Bezug
jedes Objekt um eins erhöhen: Antwort
Status: (Antwort) fertig Status 
Datum: 12:51 Mi 21.04.2010
Autor: Event_Horizon

Hallo!

Mir scheint, dir fehlt noch ein wenig das objektorientierte Denken.

Warum nicht so:



public class Auftrag {

       private double rabatt;

//zugriff auf Rabatt um änderungen vornehnmen zukönnen mit get, set
    double getRabatt()
    {
        
        return rabatt;
    }

    void setRabatt(double neuerRabatt)
    {
        rabatt = neuerRabatt;
    }


    void erhoeheRabatt(double prozent)
    {
        rabatt = rabatt+prozent;  // Wie auch immer das gerechnet werden soll
    }

}// ende class

sodaß jeder Auftrag das selber machen kann. Und dann in der AUftragsverwaltung einfach

  void erhoeheAlleRabatte(double Prozent)
     {
        for (int i=0; i<3; i++)
        {
        a[i].erhoeheRabatt(Prozent);
        
        }
     }



generell sehe ich dort in deinem Code übrigens Probleme in  deiner Methode:

  void erhoeheRabatt(double[] Prozent)
     {
        for (int i=0; i<3; i++)
        {
        Prozent[i]=a[i].getRabatt();  
        Prozent[i]++;
        }
     }


Wozu ein Array Prozent? Du setzt doch alle Rabatte auf den gleichen Wert, oder? Und was auch immer du der Methode da übergibst, mit

Prozent[i]=a[i].getRabatt();  
Prozent[i]++;

werden die Werte mit den aktuellen Rabattwerten überschrieben, anschließend werden die Werte um 1 vergrößert, und danach nie wieder benutzt, sie sind dann einfach weg. Der vergrößerte Wert landet nie in den Aufträgen!

Wenn, dann geht das so:

  void erhoeheAlleRabatte(double Prozent)
     {
        for (int i=0; i<3; i++)
        {
        a[i].setRabatt(a[i].getRabatt() + Prozent);  

        }
     }

Bezug
                                
Bezug
jedes Objekt um eins erhöhen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:48 Fr 23.04.2010
Autor: capablanca

Hallo erstmal danke für die ausführliche Antwort und die Tipps.
> generell sehe ich dort in deinem Code übrigens Probleme in

das stimmt! hat nicht funktioniert musste geändert werden

> deiner Methode:
>
> void erhoeheRabatt(double[] Prozent)
> {
>          for (int i=0; i<3; i++)
>          {
>          Prozent=a.getRabatt();  
> Prozent++;
>          }
>       }
>
>
> Wozu ein Array Prozent? Du setzt doch alle Rabatte auf den
> gleichen Wert, oder? Und was auch immer du der Methode da
> übergibst, mit
>
> Prozent=a.getRabatt();  
> Prozent++;
>
> werden die Werte mit den aktuellen Rabattwerten
> überschrieben, anschließend werden die Werte um 1
> vergrößert, und danach nie wieder benutzt, sie sind dann
> einfach weg. Der vergrößerte Wert landet nie in den
> Aufträgen!
>
> Wenn, dann geht das so:
>
> void erhoeheAlleRabatte(double Prozent)
> {
>          for (int i=0; i<3; i++)
>          {
>          a.setRabatt(a.getRabatt() + Prozent);  
>
> }
>       }  

guter Vorschlag!


ich muss noch einwenig üben um es besser drauf zuhaben!

gruß capablanca


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]