[Java] Wrapper Klasse

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von ChiN, 27. November 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 27. November 2009
    Wrapper Klasse

    Guten Abend
    Ich versuche gerade eine wrapper klasse zum Laufen zu bringen. Ich habe bereits alle anderen Klassen mit set und get methoden ausgestattet was auch super geklappt hat. Auch das erzeugen von Objekten war kein Problem. Nur die Wrapper Klasse macht mir zu schaffen. überall Fehler.

    Code:
    package fahrzeugverleih;
    
    public class ObjektPruefung {
    
     
     public static void main(String[] args) 
     {
     Kunde einKunde = new Kunde();
     Kundenverwaltung kVerwaltung = new Kundenverwaltung(20);
     kVerwaltung.neuerKunde(1, "Max", "Mustermann","Muster 1", 7792, "Lahr");
     
     
     einKunde=kVerwaltung.getKunde.getID();
     
     
     
     } 
     
    }
    
    kann mir jemand sagen warum überall Fehler sind?
     
  2. 27. November 2009
    AW: Wrapper Klasse

    vllt. ist die Vererbung von den Klassen Kundenverwaltung und Kunde nicht richtig!

    Die Klasse Objektprüfung, kennt demnach dann keines der benutzten Klassen!

    Was für Fehler kommen denn, das wäre auch noch sehr hilfreich!
     
  3. 27. November 2009
    AW: Wrapper Klasse

    Fehler entstehen bei


    private Kunde einKunde=new Kunde();

    hier wird new Kunde rot unterstrichen.





    einKunde =new Kunde (-1,"Vorname","Nachname","Straße", 1234, "Ort"

    hier ist alles rot unterstrichen und ein fettes Kreuz an der Seite


    wegen der assoziazion. ich habe die Klasse Kunde und Kundenverwaltung garnicht verbunden. habe es veruscht mit Kundenverwaltung extends Kunde. hat aber auch nicht wirklich geholfen.
     
  4. 27. November 2009
    AW: Wrapper Klasse

    wie ist der genaue fehler?
    es muss ja eine fehlermeldung geben.
    hast du einen standardkonstruktor?
     
  5. 27. November 2009
    AW: Wrapper Klasse

    Die klasse Objektprüfung braucht ja Zugriff auf die 2 anderen Klassen!

    Dann sollte eig. Objektprüfung extends .... richtig sein!

    Was für ne IDE benutzt du denn?
    Denn so wie der die Fehler ausspuckt, ist es bestimmt kein eclipse ^^

    Steig auf Eclipse um, das ist viel besser glaub mir!
     
  6. 27. November 2009
    AW: Wrapper Klasse

    was meinst du mit zugriff auf 2 klassen. ich hab nur mit einer klasse verbunden.

    also

    kundenverwaltung extends Kunde
     
  7. 27. November 2009
    AW: Wrapper Klasse

    ohne die anderen klassen können wir dir wahrscheinlich net weiter helfen
    liegt vielleicht am konstruktor
    wenn du den quelltext net veröffentlichen willst, kannsten auch per pn schicken
     
  8. 27. November 2009
    AW: Wrapper Klasse

    Klasse Fahrzeug
    Code:
    package fahrzeugverleih;
    
    public class Fahrzeug //name der Klasse 
    {
    private String fahrgestellnummer; //Attribute
    private String hersteller;
    private String modell;
    private int ps;
    private int km;
    
    public String getFahrgestellnummer() {
     return fahrgestellnummer;
    }
    
    public void setFahrgestellnummer(String fahrgestellnummer) {
     this.fahrgestellnummer = fahrgestellnummer;
    }
    
    public String getHersteller() {
     return hersteller;
    }
    
    public void setHersteller(String hersteller) {
     this.hersteller = hersteller;
    }
    
    public String getModell() {
     return modell;
    }
    
    public void setModell(String modell) {
     this.modell = modell;
    }
    
    public int getPs() {
     return ps;
    }
    
    public void setPs(int ps) {
     this.ps = ps;
    }
    
    public int getKm() {
     return km;
    }
    
    public void setKm(int km) {
     this.km = km;
    }
    
    }
    
    Klasse Kunde
    Code:
    package fahrzeugverleih;
    
    public class Kunde 
    {
     private String id; //nichts anderes als variablen mit privat davorgestellt
     private String vorname;
     private String nachname;
     private String straße;
     private int plz;
     private String ort;
     
     
     public String getId() { // liest variable aus 
     return id;
     }
     public void setId(String id) { // ändert den Inhalt der varibale
     this.id = id;
     }
     public String getVorname() {
     return vorname;
     }
     public void setVorname(String vorname) {
     this.vorname = vorname;
     }
     public String getNachname() {
     return nachname;
     }
     public void setNachname(String nachname) {
     this.nachname = nachname;
     }
     public String getStraße() {
     return straße;
     }
     public void setStraße(String straße) {
     this.straße = straße;
     }
     public int getPlz() {
     return plz;
     }
     public void setPlz(int plz) {
     this.plz = plz;
     }
     public String getOrt() {
     return ort;
     }
     public void setOrt(String ort) {
     this.ort = ort;
     }
     
     public Kunde(String ID, String Vorname, String Nachname, int PLZ,String Ort){
     this.id=ID;
     this.vorname=Vorname;
     this.nachname=Nachname;
     this.plz=PLZ;
     this.ort=Ort;
     
     }
     
     
    }
    
    Klasse Kundenverwaltung (mit viel rot, nur hier werden Fehler angezeigt)
    Code:
    
    package fahrzeugverleih;
    import java.util.Vector;
    public class Kundenverwaltung {
     private Vector <Kunde>KundenListe = new Vector<Kunde>();
     private Kunde einKunde=new Kunde();
     
     
     
     
     public Kundenverwaltung (int Kunden){
     for(int i =0; i<Kunden;i++){
     einKunde =new Kunde (-1,"Vorname","Nachname","Straße", 1234, "Ort" 
     this.KundenListe.add(einKunde);
     }
     }
    
     public void neuerKunde (int ID,String Vorname, String Nachname, String Straße,
     int PLZ, String Ort){
     einKunde= new Kunde (ID,Vorname,Nachname,Straße,PLZ,Ort);
     KundenListe.set(freierKundenplatz(),einKunde);
     
     }
     
     public int kundenSuchen(int Kundennummer){
     int indexKundennummer = -1;
     for (int i = 0; i < KundenListe.size();i++){
     if(KundenListe.get(i).getID()==Kundennummer){
     indexKundennummer=i;
     break;
     }
     }
     
     return indexNummer;
     }
     
     public int freierKundenplatz(){
     int Kundenplatz =-2;
     for (int i= 0; i < KundenListe.size();i++){
     if (KundenListe.get(i).getID()==-1){
     Kundenplatz =i;
     break;
     }
     }
     return Kundenplatz;
     
     }
     
     public void kundeLöschen(int Kundennummer){
     int indexKundennummer = kundensuche(Kundennummer);
     einKunde=new Kunde(-1,"Vorname", "Nachname","Straße",12345,"Ort");
     KundenListe.set(indexKundennummer, einKunde);
     }
     
     public void kundenUpdate (Kunde einKunde,int Kundennummer){
     Kundenliste.set(kundenSuche(Kundennummer),einKunde);
     }
     
     public Kunde getKunde (int Kundennummer){
     int Kunde =kundensuche(Kundennummer);
     if(kundenSuche(Kundennummer)==-1){
     ein Kunde = new Kunde (-1,"Vorname","Nachname", "Straße", 12345,"Ort",
     
     KundenListe.add(einKunde);
     Kunde =kundenSuchen(-1);
     }
     return KundenListe.get(Kunde);
     }
     
     public void set Kundennummer(int Kundennummer, int KundennummerNeu){
     einKunde =getKunde(Kundennummer);
     einKunde.setID(KundennummerNeu);
     kundenUpdate(einKunde,einKunde.getID());
     
     }
     public String getVorname(int Kundennummer){
     einKunde =getKunde(Kundennummer);
     return einKunde.getVorname();
     }
     public void setVorname(int Kundennummer,String vorname){
     einKunde=getKunde(Kundennummer);
     einKunde.setVorname(vorname);
     kundenUpdate(einKunde, einKunde.getID());
     }
     
     public String gerNachname(int Kundennummer){
     einKunde = getKunde(Kundennummer);
     return einKunde.getNachname();
     }
     public void setNachname(int Kundennummer,String nachname){
     einKunde = getKunde (Kundennummer);
     einKunde = setNachname(nachname);
     kundenUpdate(einKunde, einKunde.getId());
     
     
     
     }
     public String getStraße(int Kundennummer){
     einKunde=getKunde(Kundennummer);
     return einKunde.getStraße();
     }
     public void setStraße(int Kundennummer, String straße){
     einKunde = getKunde(Kundennummer);
     einKunde.setStraße(straße);
     kundenUpdate(einKunde, einKunde.getID());
     
     }
     public int getPLZ(int Kundennummer){
     einKunde=getKunde(Kundennummer);
     return einKunde.getPLZ();
     }
     public void setPLZ (int Kundennummer, int plz){
     einKunde=getKunde(Kundennummer);
     einKunde.setPLZ(plz);
     kundenUpdate(einKunde,einKunde.getId());
     }
     public String getOrt(int Kundennummer){
     einKunde=getKunde(Kundennummer);
     return einKunde.getOrt();
     }
     public void setOrt(int Kundennummerm, String ort){
     einKunde=getKunde(Kundennummer);
     einKunde.setOrt(ort);
     kundenUpdate(einKunde,einKunde.getID());
     }
     
    }
    
    Klasse LKW

    Code:
    package fahrzeugverleih;
    
    public class LKW extends Fahrzeug
    {
    private int achsen;
    private int zugkraft;
    
    public int getAchsen() {
     return achsen;
    }
    public void setAchsen(int achsen) {
     this.achsen = achsen;
    }
    public int getZugkraft() {
     return zugkraft;
    }
    public void setZugkraft(int zugkraft) {
     this.zugkraft = zugkraft;
    }
    public LKW (int Achsen, int Zugkraft, String fahrgestellnummer, String hersteller, String modell,
     int ps, int km)
    {
     this.achsen=Achsen;
     this.zugkraft=Zugkraft;
     super.setFahrgestellnummer(fahrgestellnummer);
     super.setHersteller(hersteller);
     super.setModell(modell);
     super.setPs(ps);
     super.setKm(km);
    }
    
    }
    
    Klasse Motorrad

    Code:
    package fahrzeugverleih;
    
    public class Motorrad extends Fahrzeug
    {
    private int verbrauch;
    private int beschleunigung;
    
    public int getVerbrauch() {
     return verbrauch;
    }
    public void setVerbrauch(int verbrauch) {
     this.verbrauch = verbrauch;
    }
    public int getBeschleunigung() {
     return beschleunigung;
    }
    public void setBeschleunigung(int beschleunigung) {
     this.beschleunigung = beschleunigung;
    }
    
    
    }
    

    Klasse PKW

    Code:
    package fahrzeugverleih;
    
    public class PKW extends Fahrzeug 
    {
     private int verbrauch;
     private int zuladung;
     
     public int getVerbrauch() {
     return verbrauch;
     }
     
     public void setVerbrauch(int verbrauch) {
     this.verbrauch = verbrauch;
     }
     
     public int getZuladung() {
     return zuladung;
     }
     
     public void setZuladung(int zuladung) {
     this.zuladung = zuladung;
     }
     
     
     
    }
    

    als Fehler heisst es "Der Konstruktor Kunde() ist nicht definiert"
     
  9. 27. November 2009
    AW: Wrapper Klasse

    Hier wie ich bereits vermutete --> kein passender Konstruktor:
    BZW passt der Aufruf nicht zu dem Konstruktor
    Der sieht nämlich bei dir so aus!
    Sprich entweder einen 2ten Konstruktor anlegen wie den:
    Code:
    public Kunde(){
    
     }
    
    oder nur bei der Referenz belassen!

    Hier schreibst du eine Zahl in den Kunstruktoraufruf der eigentlich ein String sein sollte!
    Wenn darin nichts stehen soll schreib ""
    Wenn es eine Referenz bleiben soll schreib "null" hinein!
    Dann muss die Exception die im Konstruktor geworfen wird jedoch mit einem try-catch Block abfangen
    ------------------------------------------------------------------------------------------
    Bei dir liefert die Methode getID() nur einen String zurück!
    Willst diesen aber in ein Object der Klasse Kunde hineinschreiben, was nicht möglich ist, weil die Klasse Kunde aus mehreren Variablen besteht!
    Wenn du die ID in den Kunden schreiben willst musst dus so machen
    Code:
    einKunde.id=kVerwaltung.getKunde.getID();
    Da ich aber vermute, das du den ganzen Kunden übernehmen möchtest wäre es vll ganz gescheid eine Funktion zu schreiben die das ganze Kundenobejct zurückliefert



    -----------------------------------------------------------------------------------------------------
    Falls du nicht weißt was ein Konstruktor ist:
    Das ist die Methode die den gleichen Namen wie die Klasse hat und public sein muss!
    Diese wird aufgerufen wenn du das Object mit String x = new String(); anlegst!
    Wenn du kein new machst sondern nur schreibst String x;
    Ist x nur eine Referenz und kein Object!
    Willst du darauf zugreifen wird eine Nullpointer Exception geworfen, da die Referenz (vergleichbar mit einem Pointer) nirgends hinzeigt bzw auf NULL

    -----------------------------------------------------------------------------------------------------
    Nochwas:
    Nachhilfe in Java!!!!
    es gibt 3 definer für Variablen / Methoden:
    * public
    * private
    * protected

    auf public Variablen und Methoden kann jede Klasse bzw. jedes Objekt zugreifen!
    auf private Variablen und Methoden kann nur die Klasse zugreifen in der diese angelegt wurden!
    auf protected Variablen kann nur die Methode zugreifen in der sie angelegt wurden!

    --> Alles nur einfach und grob formuliert
    und das ist nicht einfach nur eine Variable wo private davor steht... *sucht-den-in-ohnmacht-fall-smiley*
     
  10. 27. November 2009
    AW: Wrapper Klasse

    man dankt^^(sehr)
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.