Eclipse Error: cannot make a static reference to a non-static field?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

canvas1 ist non-static, darauf kannst du in "public static void main(...)" nicht zugreifen.

Möglicherweise ist das eine Variable in NeoPixel

dann

Neopixel np = neopixel()

Graphics P = np.canvas1...

31

Groß/Kleinschreibung kannst du hoffentlich selbst korrigieren. Da war die Zeit abgelaufen ...

0

Java stellt verschiedene Möglichkeiten bereit Daten zu speichern, die sich etwas voneinander unterscheiden:

  • Felder (fields): Dies sind Variablen, die zu einem Objekt gehören
  • Klassenvariablen: Dies sind Variablen, die an eine Klasse gebunden sind. Man spricht auch von class variables bzw. static variables

Klassenvariablen sind immer durch ein static gekennzeichnet.

ich weiß nicht, wie ich aus dem "non-static field" ein "static field" machen soll

Dein Code ergibt aus meiner Sicht nicht ganz viel Sinn. Du legst ein Objekt an:

new NeoPixel();

Aber speicherst die Referenz auf das Objekt nicht.

Graphics P = canvas1.getGraphics();

Woher kommt das cancas1 Objekt? Du hast zuvor keine Instanz erzeugt. Demnach müsste dir da doch bereits eine NullPointerException um die Ohren fliegen. Oder gibt es da noch mehr Code, den du uns nicht gezeigt hast.

Und noch ein Tipp von mir: Bitte programmiere in Java nicht ausschließlich mit dem Schlüsselwort static. Das ist nicht guter Java Stil und zudem ein Missbrauch des eigentlichen Sinnes dieses Schlüsselwortes.

canvas1 ist vermutlich nicht statisch…

Java - Ergebnisse einer For- Schleife anzeigen lassen mit Zufallszahlen. Wie geht dass?

Hey Leute,

Ich habe folgende Aufgabe: "Schreiben Sie ein Programm, das 20 Zufallszahlen erzeugt, diese untereinander anzeigt und zum Schluss die Summe der Zufallszahlen ausgibt."

Mein Problem an der Aufgabe ist, dass ich nicht weiß, wie man die Zufallszahlen am Schluss addieren kann. Hier mein bisheriger Code:

public static void main(String[] args) {
    // TODO code application logic here
    for(int i=0;i<=20;i++)
    {
        int zufallszahl = (int) ((Math.random()*6)+1);
        System.out.println(zufallszahl);
    }
}

}

Als Zufallszahlen habe ich die von 1-6 genommen, da wir dass im Unterricht auch immer so gemacht haben und denke ich auch verlangt ist.

Ich würde mich sehr über eine Antwort freuen!

Mit freundlichen Grüßen David

...zur Frage

Cosinus mit Tyler Funktion in Java implementieren?

Hallo,ich soll den Cosinus meiner double Eingabe x mit Hilfe der Tyler Funktion in Java berechnen lassen. Anbei die Funktion. Leider weiß ich nicht wie ich diese in den Code implementieren kann. Kann mir jemand helfen?

EINSCHRÄNKUNG: Ich darf im gesamten Programm ausschließlich Math.PI aus Math nutzen, keine anderen Math.'s.

Hier mein aktueller Code:

public class Cosinus {
  public static void main(String[] args) {

    double x = Double.parseDouble(args[0]); 

    if(x < 0 || x > (Math.PI * 2)) {    //Beschränkung der Möglichen Eingaben
      System.out.println("ERROR");
    } else {
      System.out.println("Hello");    //Test-Ausgabe Nachricht


      //Berechnung des cos(x)


      // (ergebnis)/100
      // int y = (int) x;             //Beschränkung auf 2 Nachkommastellen
      // System.out.println(y*100);
    }
  }
}
...zur Frage

JAVA - Median berechnen aus 5 Variablen?

Huhu, ich bin grade an einem Programm, welches den Median aus 5 Integern ausgeben soll. Ich habe dazu einen Lösungsansatz, allerdings ist dieser nicht ganz aufgegangen. Mein Code bezieht sich bisher nur darauf die kleinste der 5 Zahlen auszugeben. Mein Ziel ist es die drei kleinsten Zahlen in die richtige Reihenfolge zu bringen und die dritte als Median auszugeben. Hat jemand eine Idee was ich falsch gemacht habe? Hier mein Code:

public class Median3 { public static void main(String[] args) {

if (args.length != 5) {
System.out.println("ERROR");
} else {
int a = Integer.parseInt(args[0]);
    int b = Integer.parseInt(args[1]);
    int c = Integer.parseInt(args[2]);
    int d = Integer.parseInt(args[3]);
    int e = Integer.parseInt(args[4]);
int n0 = 0; 
int n1 = 0;
int n2 = 0;
int n3 = 0;
int n4 = 0;
int median;
    if (a <= 0 || b <= 0 || c <= 0 || d <= 0 || e <= 0) {
    System.out.println("ERROR");    
    } else {
        if (a == b || a == c || a == d || a == e || b == c || b == d || b == e || c == d || c == e || d == e){
        System.out.println("ERROR");
        } else {
            if(a > b) {
            n0 = b;
            }
            else if(a > c && c < n0) {
            n0 = c;
            }
            else if(a > d && d < n0) {
            n0 = d;
            }
            else if(a > e && e < n0) {
            n0 = e;
            }
            else {
            n0 = a;
            }
            System.out.println(n0);
        }
    }
}
//System.out.println(median);
}

}

...zur Frage

Kann mir jemand folgenden Quellcode erklären?

Kann mir jemand folgenden Quellcode (Javascript) step by step erklären. Es geht um ein Sortieralgorithmus namens Bucketsort. Es fällt mir aber extrem schwer, ihn nachzuvollziehen. Danke schon mal im vorraus.

import java.util.*;

public class BucketSort{

public static void sort(int[] a, int maxVal) { int [] bucket=new int[maxVal+1];

  for (int i=0; i<bucket.length; i++) {
     bucket[i]=0;
  }

  for (int i=0; i<a.length; i++) {
     bucket[a[i]]++;
  }

  int outPos=0;
  for (int i=0; i<bucket.length; i++) {
     for (int j=0; j<bucket[i]; j++) {
        a[outPos++]=i;
     }
  }

}

public static void main(String[] args) { int maxVal=5; int [] data= {5,3,0,2,4,1,0,5,2,3,1,4};

  System.out.println("Before: " + Arrays.toString(data));
  sort(data,maxVal);
  System.out.println("After:  " + Arrays.toString(data));

} }

...zur Frage

Was möchtest Du wissen?