Dlaczego: static reference to the non-static method?

0

Witam
dopiero zaczynam z java ... mam taki problem (program jest pogladowy wiec wiec chodzi mi o ideę problemu tzn odwieczne pytanie "Czemu?" )

 public class Jakas{
double zmienna =0.9;
double wynik =0;

public static void main (..){

wynik=P(1,2);
System.out,println(wynik);

}//main

public double P(int m , int n ){
return m*n; //jakies obliczenie 
}//P

}//class

Jest bledne bo Eclipse mowi mi : Cannot make a static reference to the non-static method P(int, int) :/
Nie bardzo wiem czemu gdyby mogł ktoś zmienic ten kod i wytłumaczyć mi czemu tak a nie tak jak ja podałem

dziekuje

0

Do dość proste. Metoda main jest metodą statyczną, czyli może być wywołana bez tworzenia nowego obiektu za pomocą operatora new, a więc w taki sposób: Jakas.main(cos); Błąd powoduje to, że wewnątrz metody main wywołujesz niestatycznego członka klasy, a więc "niezainicjalizawanego", gdyż nie utworzono instancji danej klasy. Abu użyć metody P możesz wykonać 2 operacje:

  1. zadeklarować metodę P w sposób statyczny poprzez dodanie słowa static i odwołać sie do niej w statyczny sposób, czyli np Jakas.P(1,2).
  2. wewnątrz metody main utworzyc nową instancje klasy Jakas i dowoływać sie poprzez nią, np:
    jakas j=new Jakas();
    j.P(3,4);

P.S.: literówka, nie System.out,println(wynik);, a System.out.println(wynik);.

0

Nie wiem czy to miało tak wyglądać:

Path path = Paths.get("//nazwa_sieciowa_komputera/katalog");

FileSystem fs = FileSystems.getDefault();
FileSystemProvider provider = fs.provider();

try {
    provider.checkAccess(path, AccessMode.READ, AccessMode.WRITE);
} catch (IOException e) {
    e.printStackTrace();
}

...ale w wyniku wykonania tego kodu też wyskakuje wyjątek : "Błąd logowania: nieznana nazwa użytkownika lub nieprawidłowe hasło."

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0