Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 18

Thema: Java (Anfänger)

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.10.2007
    Beiträge
    20

    Java (Anfänger)

    Hi,
    ich hab hier so eine typische Aufgabe und soll ein Konto erstellen.
    Dadrin muss ich zwei Methoden definieren einmal zahleEin und hebeAb, aber irgendwo ist bei mir ein Fehler

    public class Konto
    {
    private int _saldo;
    private int _kontostand;
    private int _geld;
    private int _neusaldo;

    public Konto()
    {
    _saldo = kontostand;
    _zahleEin = _saldo;
    }

    public int zahleEin
    {
    if _saldo + _geld; (hier soll der Fehler auftretten und zwar soll das Symikolon fehlen)
    return _neusaldo
    }

    public int hebeAb
    {
    if _saldo - _geld;
    return _neusaldo
    }
    }


    Mag mir jemand erklären was ich falsch gemacht habe?

    Grüße,
    Mareike

  2. #2
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Und du bist dir sicher, dass das Java ist?!

    Für mich sähe das etwa so aus:

    Code:
    public class Konto
    {
      private int _saldo;
    
      public Konto(int kontostand)
      {
        _saldo = kontostand;
        return;
      }
    
      public int zahleEin(geld)
      {
        _saldo = _saldo+geld;
        return _saldo;
      }
    
      public int hebeAb(geld)
      {
        if(_saldo - geld <0)
        {
          System.out.println("Sie dürfen keine Schulden machen - Buchung storniert!");
        else
        {
         _saldo= _saldo - geld;
        }
        return _saldo
      }
    }
    MfG Bischi

    PS: Vielleicht solltest du dir die Links hier mal anschauen: http://homepage.sunrise.ch/mysunrise...ials_java.html
    Geändert von bischi (07-11-2007 um 19:05 Uhr)

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.10.2007
    Beiträge
    20
    Hi,
    erstmal danke.
    Es sollte eigentlich Java darstellen.

    public int zahleEin(geld) fehlt der identificer, wo muss ich den reinschreiben?
    Muss ich nicht noch Geld irgendwo definieren?

  4. #4
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Zitat Zitat von Mareike88 Beitrag anzeigen
    public int zahleEin(geld) fehlt der identificer, wo muss ich den reinschreiben?
    Muss ich nicht noch Geld irgendwo definieren?
    Jau, es muss public int zahleEin(int geld) und public int hebeAb(int geld) heißen.

    Jan

    P.S.: IMHO ist es in Java eigentlich nicht üblich, private Variablen mit einem Unterstrich zu beginnen.

  5. #5
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Oh sorry - da ist natürlich das int zwei mal verloren gegangen Und ob da ein Unterstrich kommt, oder nicht ist schlussendlich auch egal

    MfG Bischi

    PS: @ mareike: Ich würde dir wirklich dringendst empfehlen, mal ein Java-Buch aufzuschlagen. www.javabuch.de finde ich persönlich ganz ok (gratis legaler Download). Oder sonst halt eines der anderen auf meiner Linkpage...

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  6. #6
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Zitat Zitat von bischi Beitrag anzeigen
    ... Und ob da ein Unterstrich kommt, oder nicht ist schlussendlich auch egal ...
    Ja, für die Funktion ist es würstchen. Aber es gibt eben einige Empfehlungen von Sun und allgemein praktizierte Stile für die Programmierung - da wollte ich nur drauf hinweisen.

    Jan

  7. #7
    Registrierter Benutzer
    Registriert seit
    06.10.2007
    Beiträge
    20
    Hi bishi ich hab mir das runtergeladen ich hab hier auch ein Buch von der Uni rumliegen.
    Wenn ich die Quelltexte sehe kann ich meistens auch alles zuordnen, aber sobald ich was selber machen soll, weiss ich nicht wo ich anfangen soll, bzw. wo ich was hinschreiben muss.

    Genauso soll ich den "Startwert" des Kontos automatisch auf 10 stehen , wobei ich dann
    private int _saldo+10; geschrieben habe, er sagt zwar nicht das es falsch ist aber geht tut es trotzdem nicht.
    Und da ich momentan alleine zu Hause sitze und niemand hab mit dem ich andere Möglichkeiten diskutieren kann, muss halt das Internet herhalten.

  8. #8
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Zitat Zitat von Mareike88 Beitrag anzeigen
    Genauso soll ich den "Startwert" des Kontos automatisch auf 10 stehen , wobei ich dann
    private int _saldo+10; geschrieben habe, er sagt zwar nicht das es falsch ist aber geht tut es trotzdem nicht.
    Nein, eine Zuweisung eines Werts erfolgt wie fast überall mit "=": private int _saldo = 10;

    2. Variante: Du rufst den Konstruktor der Klasse (nach dem Code von bischi) mit dem Argument 10 auf:
    Konto konto = new Konto(10);

    3. Variante: Du implementierst einen neuen Konstruktor:
    Code:
    public Konto()
    {
        _saldo = 10;
        return;
    }
    Dann hast Du mit:
    Konto konto = new Konto();
    automatisch 10 Mäuse im Konto.

    Jan

  9. #9
    Registrierter Benutzer
    Registriert seit
    06.10.2007
    Beiträge
    20
    Hi,
    vielen Dank für deine ausführliche Erklärung.

    Grüße,
    Mareike

  10. #10
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Und bei hebeAb in Bischis Code würde ich die Subtraktion in der If Bedingung klammern, auch wenn das implizit durch die Operatorprezedenz gemacht wird.

    D.h.
    Code:
    if((_saldo - geld) <0)
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  11. #11
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Zitat Zitat von anda_skoa Beitrag anzeigen
    Und bei hebeAb in Bischis Code würde ich die Subtraktion in der If Bedingung klammern, auch wenn das implizit durch die Operatorprezedenz gemacht wird.
    Naja, auch da kann man geteilter Meinung sein. Ist es nicht LISP, wo so viele Entwickler abhanden kommen, weil sie sich in einem Irrgarten von Klammern verirrt haben und erst nach Jahren wieder rausfinden?

    Ich persönlich setze Klammern gern möglichst sparsam ein, ich finde klammerarmen Code übersichtlicher (wozu sind Operator-Prios sonst da?). Wie gesagt - persönliche Meinung.

    Jan

  12. #12
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    Zitat Zitat von jan61 Beitrag anzeigen
    (wozu sind Operator-Prios sonst da?)
    Damit man bei jeder neuen Programmiersprache, z.Tl. auch Version, immer wieder böse Überraschungen erleben darf, wenn's sich nicht um mathematische handelt.

    so long,
    Bluejay
    Eigentlich ganz einfach, wenn man's weiss!

  13. #13
    Registrierter Benutzer
    Registriert seit
    06.10.2007
    Beiträge
    20
    Hab schon wieder ein Problem und zar hatte ich unten am anfang überall int stehen dann hat er mir gesagt das es mit int nicht geht sondern nur mit boolean, also hab ich mir gedacht na gut setz ich halt boolean rein dann hat er mir gesagt das, das weder mit boolean noch mit int geht, dann hab ich float ausprobiert und dann sagt er mir das ich boolean nehmen soll??

    public class Tamagotchi
    {
    private boolean _hunger;
    private int _durst;
    private int _muedesein;


    public Tamagotchi(boolean hungrig, int durstig, int muede)
    {
    _hunger = hungrig;
    _durst = durstig;
    _muedesein = muede;
    }

    public void fuettern()
    {
    boolean _hunger = _hunger + 1;
    if (_hunger = -10)
    return "fast verhungert";
    else if (_hunger = 10)
    return "überfressen";
    else
    return _hunger;
    }

    .
    .
    .
    Geändert von Mareike88 (17-11-2007 um 17:36 Uhr)

  14. #14
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    Zitat Zitat von Mareike88 Beitrag anzeigen
    public void fuettern()
    {
    boolean _hunger = _hunger + 1;
    if (_hunger = -10)
    return "fast verhungert";
    else if (_hunger = 10)
    return "überfressen";
    else
    return _hunger;
    }
    .
    Dieser Teil ist wohl schuld, dass du das Ganze verschlimmbessert hast.
    Das,was du in der 1. Zeile hast, kann man nur mit Integern machen
    Das, was in der 2.Zeile steht, funktioniert mit Javascript (Achtung! das hast du bestimmt nicht gewollt!), ansonsten setzt man bei Vergleichen meist 2 Gleichheitszeichen.

    Und in einer void-Methode etwas zu returnen hassen die meisten Compiler wie die Pest.

    Dann returnst du obendrein eine Variable, von der man nicht weiss, ob sie als boolean oder Integer fungieren soll, der andere Ausgang ist ein String.

    Das kannste mit Javascript machen, aber nicht mit Java!

    so long,
    Bluejay
    Eigentlich ganz einfach, wenn man's weiss!

  15. #15
    Registrierter Benutzer
    Registriert seit
    06.10.2007
    Beiträge
    20
    Hi,
    danke für deine Antwort.
    Stimmt das hab ich wirklich nicht gewollt.

    Aber mal eine Verständnissfrage: wie würdet ihr diese Aufgabe verstehen?
    Schreibt eine Klasse Tamagotchi, deren Exemplare sich wie sehr einfache Tamagotchis verhalten
    sollen. Jedes Tamagotchi kann hungrig, durstig und müde sein. Der Hunger-Zustand soll
    als Wert zwischen -10 (fast verhungert) und 10 (überfressen) implementiert werden. Der Durst-
    Zustand kann ein Wert zwischen 0 (kein Durst) und 10 (fast verdurstet) sein. Bei der Müdigkeit
    gibt es nur die Wahl zwischen müde und nicht müde. Bei der Erzeugung eines Tamagotchis
    sollen Anfangswerte angegeben werden können (ihr könnt dabei davon ausgehen, dass nur
    gültige Werte angegeben werden). Es soll Methoden zum Füttern (ein Aufruf erhöht den Hunger-
    Zustand um 1), zum Stillen (Effekt ist euch freigestellt) und zum Einlullen (anschließend ist
    das Tamagotchi erfrischt, also nicht mehr müde) geben. Außerdem soll es eine Methode zum Kitzeln geben (Hungerwert wird um 1 kleiner, Durstwert um 1 größer). Unsere Tamagotchis sollen
    nicht selbständig (also unabhängig von Methodenaufrufen) ihren Zustand verändern.


    Würde es dann nicht auch reichen wenn ich:
    public void fuettern()
    {
    _hunger = _hunger + 1;
    fastverhungert = _hunger == -10;
    ueberfressen = _hunger == 10;
    }

    schreiben würde, steht ja nicht da, dass er es wieder ausgeben soll.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •