Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[Java] Non-Static Error message.

Pagina: 1
Acties:

  • battler
  • Registratie: November 2004
  • Laatst online: 30-06 15:11
Context:
Een week of 2 geleden heb ik een script gemaakt wat het binomium van newton uitrekent. Nu vindt de docent dat ik het niet allemaal in de main methode moet stoppen. Dus ik aan de slag om in 1ste instantie 1 extra methode aan te maken, die de faculteit berekend en terug geeft.

Probleem:
Op het moment dat ik het voorbeeld van het boek volg, en mijn eigen fantasie erop los gooi kom ik tot een code die de volgende error geeft.
non-static variable faculteit cannot be referenced from a static context.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class binomium 
{
    //Fields
    public int resultaat1 = 1;
    public int faculteit;
    
    //methode
    public static void main(String[] args)
    {
    System.out.println("faculteit n" +faculteit);
    }

    int faculteit(int n)
    {
    for (int teller = 1; teller <= n; teller = teller + 1)
        {
        resultaat1 = resultaat1 * teller;
        }
    resultaat1 = faculteit;
    return faculteit; 
    }
}


Volgens mij (en google) heeft het ermee te maken dat je geen waardes van uit een non-static methode kan aanroepen in een static methode. Nu snap ik het non-static en static gedeelte nog niet helemaal. maar dit is ook een code die het boek gebruikt, wat doe ik verkeerd?

Lux.Architectuur | Van Dromen tot Wonen | www.Lux-a.nl


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 02:24

Creepy

Tactical Espionage Splatterer

Misschien toch eens proberen te snappen wat static en wat non-static is ;) Ik neem aan dat je leraar dat prima uit kan leggen

Je kan namelijk niet vanuit een static methode non-static methoden en variabelen aanroepen. En dat geeft de foutmelding ook netjes aan. Ik denk eerlijk gezegd dat je iets meer hebt aangepast want ik kan me bijna niet voorstellen dat het voorbeeld uit je boek het ook op deze manier doet

Er zijn twee oplossingen:
1 - Maak in je main een instantie van de class binomium aan en roep daarop de factulteit method aan. Gebruik het resultaat om te printen en niet je int faculteit variabele.
2 - Maak je method faculteit static en dan dus ook je int resultaat1 en je int faculteit.

Oplossing 1 heeft de voorkeur wat mij betreft.

[ Voor 9% gewijzigd door Creepy op 05-10-2008 13:50 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney