Implementierung eines Kontos

GaugeX

Mitglied
Hallo liebe User, das ist mein erster Beitrag in diesem Forum, ich habe mich gerade zu später Stunde registriert da ich ziemlich Nachtaktiv bin. :)

Ich möchte mich kurz vorstellen.
ich heiße Nico, bin 17 Jahre alt und komme aus der Region Thüringen, ich bin Hobbyprogrammierer, ich mache nebenbei Musik & besuche eine Berufsschule in Erfurt, ich strebe den Mittleren Bildungsabschluss momentan an, um später in die Richtung IT-Systemelektronik zu gehen. Ich könnte mir gut vorstellen später als Java-Programmierer zu arbeiten aber im moment ist das nicht leicht realisierbar.

Ich programmiere in der Woche ca. 3-4 Stunden und bin momentan Anfänger, ich lerne über einen vollständigen, ausführlichen Videokurs im Internet.
Wenn ihr noch fragen habt könnt ihr mir gerne schreiben. :)

Nun zum Thema, ich versuche im Moment eine Klasse mit dem Namen Konto zu implementieren.
Ich habe als Gegenstück die Klasse Auto und möchte wenn ich mir ein Auto "kaufe" das es mit einer Kontoklasse interagiert, den Betrag abzieht und mir eine Bilanz anzeigt.

Könnt ihr mir den Weg zeigen das zu realisieren, sprich was ich einsetzen muss um das zu erreichen.
Die Grundkenntnisse sind vorhanden, wenn etwas unklar ist frage ich.

Ich würde mich freuen wenn mir jemand hilft
und danke schoneinmal dennen die mir helfen.
Grüße Nico
 
H

hüteüberhüte

Gast
Moin,

so etwas ähnliches gab es vor kurzem hier: http://www.java-forum.org/java-basics-anfaenger-themen/145956-interface.html#post974994 .

Java:
class Konto {

    private int balance;

    public Konto() {
        this(0);
    }

    public Konto(int balance) {
        this.balance = balance;
    }

    public int getBalance() {
        return balance;
    }

    public void setBalance(int balance) {
        this.balance = balance;
    }

    public void add(int a) {
        if (balance + a < 0) {
            throw new IllegalArgumentException("This shouldn't be happening.");
        }
        balance += a;
    }
}

class Auto {

    private String beschreibung;
    private int preis;

    public Auto(String beschreibung, int preis) {
        this.beschreibung = beschreibung;
        this.preis = preis;
    }

    public int getPreis() {
        return preis;
    }

    @Override
    public String toString() {
        return "Auto{" + "beschreibung=" + beschreibung + ", preis=" + preis + '}';
    }
}

class MainClazz {

    public static void main(String[] args) {
        Konto konto = new Konto(999999);
        Auto[] autos = {new Auto("Bmw, Schrott", 600), new Auto("Rolls, Supreme", 6666)};
        while (true) {
            Auto a = autos[(int) (Math.random() * autos.length)];
            konto.add(-a.getPreis());
            System.out.println(a + " gekauft");
            System.out.println("balance = " + konto.getBalance());
        }
    }
}

Natürlich kann die Konto-Klasse auch die Auto-Klasse kennen (oder umgekehrt), aber das wäre etwas verwirrend.

Angenehme Nacht. ^^
 
Zuletzt bearbeitet von einem Moderator:

Landei

Top Contributor
[c]setBalance[/c] sollte es nicht geben, damit kann ja jeder das Konto ohne Überprüfung in die Miesen setzen...
 
H

hüteüberhüte

Gast
[c]setBalance[/c] sollte es nicht geben, damit kann ja jeder das Konto ohne Überprüfung in die Miesen setzen...

Stimmt. Aber vor allem: Nennt man es jetzt balance, beschreibung, preis, oder alles auf Englisch, oder alles auf Deutsch? Bei solchen Sachen bin ich mir immer nicht so sicher, manche machen es so, manche so...

Edit: Zumindest von den Umlauten weiß ich von einem Ibm-entwickler, dass man sie vermeiden sollte, also: ae, oe, ue, Eszett/sz.
 
Zuletzt bearbeitet von einem Moderator:

GaugeX

Mitglied
Ich danke ersteinmal für die Antworten :)

Ich hab mir den Code mal angeschaut, ich kann diesen auch größten Teils nachvollziehen, was mir unklar ist, ist die Zeile: " throw new IllegalArgumentException("This shouldn't be happening."); ".

Sollte ich vlt. zu inneren Klassen zurückgreifen?, sprich alles was mit dem Konto interagiert in eine Klasse setzen? Normalerweiße macht man das doch nicht so oder?

Wenn ich in der Klasse Auto eine Instanz-Variable "preis" habe, könnte ich doch theoretisch durch eine Instanz-Methode den int Betrag von der Instanz-Variable "guthaben" der Klasse Konto abziehen lassen oder?

In etwa so:

public void ausgeben() {
Konto.guthaben = Konto.guthaben - this.preis;
}

Versteht ihr wie ich das meine?
 

Landei

Top Contributor
Du musst irgendwie vermeiden, dass das Konto überzogen wird, und das dem Aufrufer auch mitteilen. Eine Möglichkeit dafür sind Exceptions (Ausnahmen), eine weitere wäre die Rückgabe eines booleans, der anzeigt, ob die Operation auch geklappt hat.
 

Timothy Truckle

Top Contributor
Java:
public void ausgeben() {
Konto.guthaben = Konto.guthaben - this.preis;
}
Die Daumenregel heist: Objektvariablen werden in der Klasse verändert, in der sie deklariert sind. Richtiger wäre es also umgekehrt:
Code:
Auto
implementiert ein Interface, mit dem
Code:
Konto
umgeben kann, zB.
Code:
Ware
;
Java:
interface Ware{
  int getPreis();
}
class Auto implements Ware{
  private /*final*/ int preis;
  public Auto(int preis /*, weitere Eigenschaften */){
    this.preis=preis;
  }
  @Override
  public int getPreis(){
    return preis;
  }
  // weitere Methoden
}

class Konto {
  private int saldo;

 public void bezahle(Ware ware){
   if (saldo < ware.getPreis()) {
     throw new RuntimeException("Konto nicht gedeckt");
   }
   saldo -=ware.getPreis();
 }
}

bye
TT
 

Timothy Truckle

Top Contributor
Du musst irgendwie vermeiden, dass das Konto überzogen wird, und das dem Aufrufer auch mitteilen. Eine Möglichkeit dafür sind Exceptions (Ausnahmen), eine weitere wäre die Rückgabe eines booleans, der anzeigt, ob die Operation auch geklappt hat.
Die Exceptions-Variante ist hierzu bevorzugen: Wenn Du mehrere Waren bezahlen willst iterierst Du einfach über die Liste. Die "Returnwert"-Variante würde 2 Entscheidungen benötigen: die erste, um den Returnwert zu bilden, die zweite um in (in der Schleife) auszuwerten.

bye
TT
 
H

hüteüberhüte

Gast
Kennt die Klasse Konto von TT denn jetzt die Klasse Ware, oder ist das noch keine so starke Relationship? Btw. müsst ihr bedenken, dass preis auch negativ sein könnte, und es deshalb schnell zu unerwünschten Effekten sprich integer overflows kommen kann.

Exception, boolean-Wert oder neuer Kontostand könnte zurückgegeben werden.
 

GaugeX

Mitglied
Ich danke euch für die Lösungsvorschläge, entschuldigt aber meine unwissenheit im Bezug auf Interfaces, die sind im Kurs noch nicht behandelt wurden.

Nun könnt ihr mir bitte diese "Exceptions-Variante" kurz erklären damit ich nachvollziehen kann wie Landei das meint, ist die Exeception eine art Schleife die etwas ausschließt?

Um negative Eingaben auszuschließen setz ich am besten eine for-Schleife ein oder?


Grüße Nico
 

OnDemand

Top Contributor
Hi Nico

hier auch ein Nico :p

Eine Exception fängt fehler ab, die das Progogramm zum Absturz bringen würden. Implementier werden sie ähnlich einer if-Afrage:

Java:
try {
//Hier wird "versucht" Programmcode auszuführen, wenn es geht > Programm wird fortgeführt
}
catch { //Hier wird eine Fehlermeldung ausgegeben, um zu verhindern dass das Programm abstürzt
}

Als Beispiel: Eine Division durch Null, geht nicht. Ohne try-catch, würde das Programm nichts machen und der User steht da wie bestellt und nicht abgeholt, denn er bekommt keine Meldung warum es nicht weiter geht.
Mit try-catch bekommt er zb eine Anzeige " Durch 0 teilen geht nicht".
 

Timothy Truckle

Top Contributor
Kennt die Klasse Konto von TT denn jetzt die Klasse Ware, oder ist das noch keine so starke Relationship?
Ja. Aber da
Code:
Ware
ein Interface ist ist das ok.
Btw. müsst ihr bedenken, dass preis auch negativ sein könnte,
Dass muss man in der JavaDoc-Beschreibung eben reischreiben, dass der Preis immer positivzu sein hat, und von den Implementierungen gefordert wird, dass bei negativen Preisen eine zu werfen ist...

und es deshalb schnell zu unerwünschten Effekten sprich integer overflows kommen kann.
Wenn man sowas ernsthaft angeht muss man sowieso auch [JAPI]BigInteger[/JAPI] zurückgreifen.

Exception, boolean-Wert oder neuer Kontostand könnte zurückgegeben werden.
Könnte, aber was ist (aus OO-Sicht) sinnvoll? IMHO nur die Exception.

bye
TT
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Implementierung eines Zustandsdiagramms Java Basics - Anfänger-Themen 19
H Implementierung eines Interfaces erweitern Java Basics - Anfänger-Themen 13
B OOP Implementierung eines Heaps Java Basics - Anfänger-Themen 13
S Fragen zur Implementierung eines Binärbaums Java Basics - Anfänger-Themen 3
S Fragen zur Implementierung eines Adressbuches Java Basics - Anfänger-Themen 20
E Performante Implementierung eines "Hintergrundprogramms" Java Basics - Anfänger-Themen 10
D Datentypen Implementierung eines Binärbaumes Java Basics - Anfänger-Themen 7
ruutaiokwu JRE-/JDK-unabhängige PBKDF2WithHmacSHA512-Implementierung Java Basics - Anfänger-Themen 16
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
K Fehler bei der Implementierung Java Basics - Anfänger-Themen 6
J Implementierung gcd();square() Java Basics - Anfänger-Themen 98
J Implementierung von Observer und Singleton-Pattern Java Basics - Anfänger-Themen 9
A Implementierung von String toString methode() Java Basics - Anfänger-Themen 4
G Projekt architektur (implementierung) Java Basics - Anfänger-Themen 3
M Implementierung einer getNextId Methode Java Basics - Anfänger-Themen 5
J Implementierung Listen-ADT Java Basics - Anfänger-Themen 131
I GenericQueue / Implementierung als Ringspeicher Java Basics - Anfänger-Themen 4
MiMa Log4j2 implementierung Java Basics - Anfänger-Themen 4
S Interface Interface und seine Implementierung Java Basics - Anfänger-Themen 5
G Array implementierung Java Basics - Anfänger-Themen 23
J ANTLR Installierung und Implementierung Java Basics - Anfänger-Themen 2
E Hilfe bei Implementierung von Methoden Java Basics - Anfänger-Themen 10
S SkipList Implementierung Java Basics - Anfänger-Themen 1
J Methoden Suche effiziente Implementierung für eine Methode Java Basics - Anfänger-Themen 3
J Interface Probleme bei der Implementierung Java Basics - Anfänger-Themen 1
E hashCode implementierung Java Basics - Anfänger-Themen 9
S Implementierung der Klasse Konto und Nutzung bereits vorhandener Klassen Java Basics - Anfänger-Themen 7
O Generics - Implementierung Java Basics - Anfänger-Themen 7
A Hilfestellung zur Implementierung des Gaußsches Eliminationsverfahren Java Basics - Anfänger-Themen 4
K Bucketsort Implementierung Java Basics - Anfänger-Themen 0
K Mergesort Fehler in der Implementierung Java Basics - Anfänger-Themen 2
K Quicksort Fehler in der Implementierung Java Basics - Anfänger-Themen 2
S Klassen Klassendiagramm Implementierung? Java Basics - Anfänger-Themen 5
J Bucketsort Implementierung Java Basics - Anfänger-Themen 0
C Stack - listenbasierte Implementierung Java Basics - Anfänger-Themen 4
N Was bedeutet "Implementierung vor dem Client verbergen" bei Design Patterns? Java Basics - Anfänger-Themen 2
T Collections LinkedList<LinkedList<T>> - Implementierung Java Basics - Anfänger-Themen 10
F Implementierung von Interfaces -> Problem mit main Java Basics - Anfänger-Themen 12
D Resourcebundle implementierung Java Basics - Anfänger-Themen 2
M Implementierung des Knuth-Morris-Pratt-Algorithmus Java Basics - Anfänger-Themen 0
Q Implementierung von Listenern Java Basics - Anfänger-Themen 4
B Klassen Hilfe bei Implementierung Java Basics - Anfänger-Themen 5
N Compiler-Fehler Comparable / compareTo implementierung Java Basics - Anfänger-Themen 2
I Erste Schritte Implementierung der API Java Basics - Anfänger-Themen 2
M falsche implementierung von currentTimeMillis() ? Java Basics - Anfänger-Themen 14
M Quicksort implementierung Java Basics - Anfänger-Themen 23
SexyPenny90 Implementierung einer doubly linked list Java Basics - Anfänger-Themen 5
N Binärbaum/Implementierung Java Basics - Anfänger-Themen 9
U Doppelte Interfcae Implementierung Java Basics - Anfänger-Themen 10
K Kleiner Fehler bei Methoden Implementierung Java Basics - Anfänger-Themen 6
M Collections Problem bei Überschreibung von hashcode() und equals() bei Hashset-Implementierung Java Basics - Anfänger-Themen 5
S OOP Implementierung Komposition, Aggregation, Assoziation und Generalisierung Java Basics - Anfänger-Themen 2
C Klassenhirarchien zur Implementierung von Fahrzegen Java Basics - Anfänger-Themen 26
BinaryLogic Datentypen Statistik Interface - untersch. Implementierung Java Basics - Anfänger-Themen 5
S Saubere Implementierung Java Basics - Anfänger-Themen 2
K Dijkstra implementierung 2.0 Java Basics - Anfänger-Themen 19
K dijskral implementierung Java Basics - Anfänger-Themen 14
U Probleme mit Server-Client implementierung Java Basics - Anfänger-Themen 5
K Game of Life Implementierung Java Basics - Anfänger-Themen 30
B OOP Problem bei Implementierung von Interface Java Basics - Anfänger-Themen 6
J HashSet Implementierung Java Basics - Anfänger-Themen 16
R NullPointerException in Queue-Implementierung Java Basics - Anfänger-Themen 11
X Frage zur Implementierung von equals() Java Basics - Anfänger-Themen 2
B Effektive Implementierung für Darstellung großer Datenmengen in Jogl Java Basics - Anfänger-Themen 5
B Implementierung Java Basics - Anfänger-Themen 2
N Implementierung Tic tac toc Java Basics - Anfänger-Themen 25
O Stack Implementierung als verkettete Liste Java Basics - Anfänger-Themen 8
Y Implementierung einer Potenzturm Funktion Java Basics - Anfänger-Themen 4
S Implementierung gegen Interfaces / List, ArrayList, LinkedList Java Basics - Anfänger-Themen 11
J Quicksort Implementierung-- Exception ArrayOutOfBounds Java Basics - Anfänger-Themen 6
U Implementierung Constructor Java Basics - Anfänger-Themen 7
T Problem mit Implementierung von einer HashMap aufgabe Java Basics - Anfänger-Themen 2
G Implementierung des Observer/Observable Patterns - Gut so? Java Basics - Anfänger-Themen 3
I Zugriff auf Implementierung verhindern Java Basics - Anfänger-Themen 8
D Implementierung nach MVC Java Basics - Anfänger-Themen 6
B Theoretische Frage zum Programmbau (nun zur Implementierung) Java Basics - Anfänger-Themen 8
H Implementierung von Interfaces Java Basics - Anfänger-Themen 4
G Implementierung von Bäumen Java Basics - Anfänger-Themen 2
N Probleme mit paint() bei Implementierung in ein Panel Java Basics - Anfänger-Themen 4
B Wie funktioniert die implementierung von c code in Java? Java Basics - Anfänger-Themen 7
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
Sachinbhatt Was ist die Notwendigkeit eines Sammlungsframeworks in Java? Java Basics - Anfänger-Themen 2
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben