Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

non-static variable this cannot be referenced from a static
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> non-static variable this cannot be referenced from a static
 
Autor Nachricht
Mörf
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 30.10.2006
Beiträge: 37

BeitragVerfasst am: 25 Jan 2009 - 20:22:07    Titel: non-static variable this cannot be referenced from a static

nabend leuts, ich steh aufm schlauch.
ich kann zwar die fehlermeldung deuten
(non-static variable this cannot be referenced from a static context)
jedoch weiß ich nicht wie ich sie lösne kann...
[img]
hier mein quelltext zum programm

Code:
abstract class Koerper implements Comparable {

   public abstract double volumen();[/img]
   public abstract double oberflaeche();

   public int compareTo(Object object) {
      
      return 0;
   }
/*   
   public static void sort(Koerper[] k) {
   
   }*/
   
   public class Quader extends Koerper {
      double laenge;
      double breite;
      double hoehe;
      double volumen;
      double oberflaeche;
      
      Quader(double laenge, double breite, double hoehe) {
         if(laenge <0 | breite<0 | hoehe<0) {
            System.exit(1);
         }
         else{
            volumen=hoehe*breite*laenge;
            this.volumen = volumen;
            oberflaeche = 2* (laenge*breite + laenge*hoehe + breite*hoehe);
            this.oberflaeche = oberflaeche;
         }
      }
      public double volumen() {
         return volumen;
      }
      public double oberflaeche() {
         return oberflaeche;
      }   
   }

   public class Zylinder extends Koerper {
      double radius;
      double hoehe;
      double volumen;
      double oberflaeche;
      
      Zylinder (double radius, double hoehe) {
         if( radius <0 | hoehe<0) {
            System.exit(1);
         }
         else {
            volumen = Math.PI * (radius*radius) * hoehe;
            this.volumen = volumen;
            oberflaeche = 2 * Math.PI * radius * (radius + hoehe);
            this.oberflaeche = oberflaeche;
         }
      }
      public double volumen() {
         return volumen;
      }
      public double oberflaeche() {
         return oberflaeche;
      }
   }
   
   public class Kugel extends Koerper {
      double radius;
      double volumen;
      double oberflaeche;
      
      Kugel (double radius) {
         if(radius <0){
            System.exit(1);
         }
         else {
            volumen = (4/3) * Math.PI * (radius*radius*radius);
            this.volumen = volumen;
            oberflaeche = 4*Math.PI*(radius*radius);
            this.oberflaeche = oberflaeche;
         }
      }
      public double volumen() {
         return volumen;
      }
      public double oberflaeche() {
         return oberflaeche;
      }
   }
   public static void main (String[]args) {
      Koerper [ ] k= new Koerper[6];
      k [0] = new Quader (3.0, 2.0, 1.0);
      k [1] = new Quader (1.0, 2.0, 2.0);
      k [2] = new Zylinder (3.0, 2.0);
      k [3] = new Zylinder (2.0, 3.0);
      k [4] = new Kugel (2.0);
      k [5] = new Kugel (2.0);
   }
}


könnt ihr mir schnell aus der patsche helfen?
muss das noch heute fertig bekommen...
danke!

edit: ist natürlich auch noch nicht fertig das programm, hatte nur nen kleinen zwischentest eingelegt und wenn es jetzt schon nicht funktioniert...


Die Aufgabe dazu lautet übrigens:

sarc
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 21.09.2006
Beiträge: 2657

BeitragVerfasst am: 25 Jan 2009 - 23:17:22    Titel:

Diese ganzen Zeilen wie

this.volumen = volumen

kannst du dir sparen. So was brauchst du nur, wenn du lokal ne Variable hasst, die den gleichen Namen wie das Attribut trägt. Allerdings wüsste ich jetzt ned, warum die diesen Fehler hervorrufen sollten...

Allgemein seh ich auch sonst nix, dass diese Fehlermeldung hätte. In welcher Zeile tritt das denn auf?
Smutje
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 18.07.2008
Beiträge: 3004
Wohnort: Gießen

BeitragVerfasst am: 25 Jan 2009 - 23:17:35    Titel:

Ich blick da nicht durch, formatier das besser oder sag wenigstens, wo der Fehler auftritt.

Edit: Ach ja, die Fehlermeldung besagt, das du in 'ner static-Methode keinen this-Zeiger benutzen darfst. Ich seh' zwar keinen Fall hier, in dem das zu träfe, aber scheinbar hast du so was produziert.

Edit2: Als allererstes würde ich übrigens die ganzen "inneren Klassen" da aus dem Koerper raus ziehen, das ist designtechnisch nicht so optimal bzw. falsch.
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> non-static variable this cannot be referenced from a static
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum