# Buchführungsprogramm



## sevael (9. Dez 2011)

Hallo Leute!
Ich habe einen Thread zur selben Aufgabe in diesem Forum gefunden, habe allerdings ein anderes Problem mit der Aufgabe; Falls ich mein Problem unter den anderen Thread hätte setzen sollen, bitte ich um Entschuldigung!

Nun zu meiner Aufgabe:

Es sollen Buchfuehrungseintraege verwaltet werden. Erstellen Sie dafuer eine Klasse
BookingEntry. Diese Klasse enthaelt die Attribute consecutiveNumber (ein int),
purpose (ein String) und ein value (ein float).
Schreiben Sie eine Klasse Booking mit einer main-Methode. Hier sollen vier
BookingEntry Objekte erzeugt werden. Fuellen sie die Objekte mit folgenden Werten: [...]

Die Aufgabe ansich war kein Problem, das Programm funktioniert in NetBeans einwandfrei... Das einzige Problem bekomme ich, wenn ich mit javac die Booking.java kompilieren möchte. von der BookingEntry.java ließ sich eine .class Datei erstellen, nur wenn ich von der Booking.java Datei eine .class Datei erstellen möchte, bekomme ich folgenden error:

error: cannot find symbol
   symbol:  class BookingEntry
   location: class Booking

Die BookingEntry.java und die Booking.java sind natürlich im selben Package.

Vielen Dank im Vorraus!


Edit: http://www.java-forum.org/hausaufgaben/128256-buchfuehrungsprogramm.html der Link zum anderen Thread, habe die Aufgabe im Grunde auf die selbe Weise gelöst.


----------



## turtle (9. Dez 2011)

import BookingEntry;

drin?


----------



## sevael (9. Dez 2011)

Wie genau kann ich das importieren? Bekomme nun die Fehlermeldung "Package "BookingEntry" does not exist".

Okay, grad korrigiert; Die Meldung "Import aus dem selben Package" kann ich ignorieren?


----------



## sevael (9. Dez 2011)

```
package booking;

import booking.BookingEntry;

public class Booking {

    public static void main(String[] args) {
        
        BookingEntry bookingentry1 = new BookingEntry();
```

So sieht der Anfang nun aus.


Edit: Grad probiert per cmd auszuführen, klappt noch nicht  Was könnte ich noch falsch machen? Bin totaler Java-Anfänger...


----------



## turtle (9. Dez 2011)

> Grad probiert per cmd auszuführen, klappt noch nicht



Was heisst das?

Rechner stürzt ab, die Erde verdunkelt sich, so dass Du den Bildschirm nicht lesen konntest, oder es kam eine Fehlermeldung, oder?

PS: Wenn beide Klassen im gleichen Package sind, brauchst Du die import-Zeile NICHT.


----------



## sevael (9. Dez 2011)

Es kommt nach wie vor dieselbe Fehlermeldung; 
error: cannot find symbol
symbol: class BookingEntry
location: class Booking


----------



## turtle (9. Dez 2011)

Zeig mal, wie Du alles übersetzt?


----------



## SlaterB (9. Dez 2011)

einen import für Klassen im selben package brauchst du nicht

du musst aber javac vom Grundverzeichnis, ein Verzeichnis höher als die Klasse (da eine package-Ebene) ausführen,
und die Verzeichnisnamen müssen auch immer zu den packages passen

c:/test/booking/BookingEntry.java
c:/test/booking/Booking.java

aus c:/test/ ausführen:
javac booking/Booking.java

evtl.
javac -cp . booking/Booking.java


----------



## sevael (9. Dez 2011)

Falls das irgendwie weiterhilft, hier mal meine Klassen:


```
package booking;

import booking.BookingEntry;

public class Booking {

    public static void main(String[] args) {
        
        BookingEntry bookingentry1 = new BookingEntry();
            bookingentry1.consecutiveNumber = 1;
            bookingentry1.purpose = "bus-ticket";
            bookingentry1.value = -20.00f;
            
        BookingEntry bookingentry2 = new BookingEntry();
            bookingentry2.consecutiveNumber = 2;
            bookingentry2.purpose = "sold book";
            bookingentry2.value = +50.25f;
            
        BookingEntry bookingentry3 = new BookingEntry();
            bookingentry3.consecutiveNumber = 3;
            bookingentry3.purpose = "sold car";
            bookingentry3.value = +4012.12f;
            
        BookingEntry bookingentry4 = new BookingEntry();
            bookingentry4.consecutiveNumber = 4;
            bookingentry4.purpose = "bought used car";
            bookingentry4.value = -2135.13f;
            
         float total;
         total = 500.00f;
        
         
          System.out.println ("1.: " + total);
 
            System.out.println ("2.: " + bookingentry1.consecutiveNumber +" "+bookingentry1.purpose +" "+ bookingentry1.value );
            total = total + bookingentry1.value;
            System.out.println ("3.: " + total);
 
            System.out.println ("4.: " + bookingentry2.consecutiveNumber +" "+bookingentry2.purpose +" "+ bookingentry2.value );
            total = total + bookingentry2.value;
            System.out.println ("5.: " + total);
 
            System.out.println ("6.: " + bookingentry3.consecutiveNumber +" "+bookingentry3.purpose +" "+ bookingentry3.value );
            total = total + bookingentry3.value;
            System.out.println ("7.: " + total);
 
            System.out.println ("8.: " + bookingentry4.consecutiveNumber +" "+bookingentry4.purpose +" "+ bookingentry4.value );
            total = total + bookingentry4.value;
            System.out.println ("9.: " + total);
         
         
        
    }
}
```

Und die 2.:


```
package booking;


public class BookingEntry {
    
    int consecutiveNumber;
    String purpose;
    float value;
}
```


----------



## sevael (9. Dez 2011)

SlaterB hat gesagt.:


> einen import für Klassen im selben package brauchst du nicht
> 
> du musst aber javac vom Grundverzeichnis, ein Verzeichnis höher als die Klasse (da eine package-Ebene) ausführen,
> und die Verzeichnisnamen müssen auch immer zu den packages passen
> ...



Vielen Dank! Genau das wars, hatte javac immer direkt im Verzeichnis booking ausgeführt. mit javac bookin\Booking.java hats geklappt!


----------

