# Problem beim Kompilieren - cannot find symbol - constructor()



## schmiddi86 (5. Jan 2011)

Hallo,

leider bin ich in Java noch Anfänger und komme bei folgender BlueJ Meldung beim Kompilieren einfach nicht weiter.

BlueJ bringt beim Kompilieren der Subklasse die Meldung:

cannot find symbol - constructor Artikel(Kunde, double, ...)



Superklasse:


> public Artikel(Kunde kunde, double einkaufspreis, double verkaufspreis, double gewicht, String artikelbezeichnung, String reinheit)
> {
> this.einkaufspreis = einkaufspreis;
> this.verkaufspreis = verkaufspreis;
> ...





Subklasse:


> public class Uhr extends Artikel
> {
> 
> public Uhr(Kunde kunde, double einkaufspreis, double verkaufspreis, double gewicht, String artikelbezeichnung, String reinheit)
> ...




Bestimmt hab ich irgendwo was vergessen.
Kann jemand helfen?

Viele Grüße

Christian


----------



## faetzminator (5. Jan 2011)

die [c]reinheit[/c] musst du ebenfalls übergeben.


----------



## schmiddi86 (5. Jan 2011)

faetzminator hat gesagt.:


> die [c]reinheit[/c] musst du ebenfalls übergeben.



Vielen Dank für deine Antwort.



Hääää? Aber [c]reinheit[/c] habe ich doch übergeben???

Oder übersehe ich etwas?


----------



## U2nt (5. Jan 2011)

Sollte

```
super(kunde, einkaufspreis, verkaufspreis, reinheit, gewicht, artikelbezeichnung);
```
nicht eher

```
super(kunde, einkaufspreis, verkaufspreis, gewicht, artikelbezeichnung, reinheit);
```
Sein?
Denke mal du hast gewicht und reinheit vertauscht. Denn deine Klasse Artikel sagt ja, dass ganz am ende der String reinheit angegeben werden muss. Bei deinem super-Aufruf wird sie jedoch an einer Stelle übergeben, an der eig. ein double stehen muss (das Gewicht).


----------



## gman (5. Jan 2011)

Die Reihenfolge der Parameter in dem super(...)-Aufruf ist falsch!


----------



## schmiddi86 (5. Jan 2011)

Achso ok vielen Dank!

Jetzt klappt's!

ich wusste nicht dass die Reihenfolge identisch sein muss!


----------



## gman (5. Jan 2011)

> ich wusste nicht dass die Reihenfolge identisch sein muss!



Die Reihenfolge der Typen muss unterschiedlich sein. Wenn du bei deinem Beispiel "reinheit"
und "artikelbezeichnung" vertauscht hättest, wäre keine Fehlermeldung aufgetreten weil ja
beides Strings sind. So aber konnte der Compiler feststellen das es keinen Konstruktor mit
der Reihenfolge der Typen ("Signatur") gibt und eine Fehlermeldung ausgeben.


----------



## schmiddi86 (5. Jan 2011)

Ok, danke!
Jetzt size ich gerade an einer Enumeration, die mir auch einen Fehler auswirft.
Ich bekomme die Meldung <identifier > expected 
Das bedeutet doch, dass er irgendwo eine Variable erwartet, die aber nicht findet, oder?


```
public enum Reinheit
{
    333("Reinheit 333"),
    555("Reinheit 555"),
    777("Reinheit 777"),
    
    private String reinheit;
    

    Reinheit(String bezeichner)
    {
        this.reinheit = bezeichner;
    }
}
```


In Zeile 2 wirft er mir den Fehler aus.


----------



## tfa (5. Jan 2011)

333 ist eine Zahl und kein Bezeichner für ein enum-Wert. Das erste Zeichen darf keine Ziffer sein.


----------



## schmiddi86 (5. Jan 2011)

Vielen Dank für die Antwort

aber selbst wenn ich 333, 555 und 777 in unterschiedliche Bichstaben/Wörter ändere, wirft er mir den selben Fehler raus, dann aber erst in Zeile 5.


----------



## Runtime (5. Jan 2011)

Nach '<hier steht der neue Name von 777>("Reinheit 777")' kommt ein ';'.


----------



## schmiddi86 (5. Jan 2011)

Vielen Dank!

Funktioniert!

Also Java Neuling bringen einen solche Dinge um den verstand ;-)


----------



## Abawi (11. Jan 2011)

HTW SB 3.Semester??  ;-)


----------

