non-static method cannot be referenced from a static context

Status
Niet open voor verdere reacties.

l.degroot01

Gebruiker
Lid geworden
18 jan 2003
Berichten
161
Ik krijg deze foutmelding in Netbeans als ik een getter wil gebruiken bij een toString()

javafout.png


Ik kan ook niet gewoon de variabele invoeren aangezien deze private is.
Hoe kan ik dit het beste doen? Het moet een toString() zijn.

Code:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package college5;

/**
 *
 * @author Leslie de Groot
 */
public class Student extends Persoon {

    private int studentnr;

    public int getStudentnr() {
        return studentnr;
    }
    public String toString(){
        return Persoon.getNaam() + " " + studentnr;
    }
}

Persoon.java

Code:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package college5;

/**
 *
 * @author Leslie de Groot
 */
public class Persoon {

    private String naam;
    private String[] emailadressen = new String[10];
    private int aantal = 0;
    int[][] studiepunten = {
        {15, 13, 15, 12},
        {14, 15, 15, 15},
        {13, 10, 6, 2},
        {12, 6, 0, 0}
    };
    private int totaal = 0;

    public void voegMailToe(String adres) {
        emailadressen[aantal] = adres;
        aantal++;

    }

    public String toString() {
        String adr = "";
        String ec = "";
        // for(int j = 0; emailadressen[j] != null; j++){
        //     adr+=emailadressen[j];
        //     adr+='\n';
        // }
        // return naam + "\n" + adr;
        int jaar = 1;
        for (int i = 0; i < studiepunten.length; i++) {
            ec += "Jaar " + jaar + ": ";
            jaar++;
            int per = 1;
            for (int j = 0; j < studiepunten[i].length; j++) {
                ec += "per" + per + " = " + studiepunten[i][j] + "ec, ";
                totaal += studiepunten[i][j];
                per++;
            }
            ec += "\n";
        }
        return ec + "Totaal: " + totaal;
    }
    public String getNaam(){
        return naam;
    }
}
 
Laatst bewerkt:
Ik heb zelf geen ervaring met Java, maar de foutmelding geeft aan dat 'Persoon.getNaam()' van toepassing is op de klasse zelf en niet op een object daarvan. (even Googlen naar een basis tutorial voor Java en je hebt de oplossing zo gevonden :p)
 
Dit kan niet omdat je geen nieuwe persoon maakt en het is ook niet nodig omdat je afgeleid bent van persoon
Code:
    public String toString(){
        return Persoon.getNaam() + " " + studentnr;
    }
dus zou het zo kunnen maar omdat super voor constructors wordt gebruikt.
Code:
    public String toString(){
        return super.getNaam() + " " + studentnr;
    }
dus zou het zo moeten
Code:
    public String toString(){
        return new String(this.getNaam() + " " + studentnr);
    }
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan