Auf eine nicht statische Methode (Methodenname ()) kann in einem statischen Kontext nicht verwiesen werden. Warum?

Ich bin wirklich verwirrt damit! Ich habe 2 klassen,Verein undMitgliedschaft. In der Mitgliedschaft habe ich die Methode,getMonth ()und im Club habe ichjoinMonth () Hier wird der Parameter "Monat" verwendet. Ein Benutzer gibt also einen Monat ein und möchte, dass er die Mitgliedschaft zurückgibt, die in diesem bestimmten Monat beigetreten ist.

Ich versuche, die Methode getMonth () aus der Klasse Club aufzurufen, damit ich dann die ganzen Zahlen der Monate vergleichen kann. Aber wenn ich versuche, die Methode aufzurufen, erhalte ich nur die erwähnte "nicht-statische Methode getMonth () kann nicht aus einem statischen Kontext referenziert werden".

Was ist das und wie kann ich es beheben?

Danke im Voraus!

Verein:

public class Club
{
    private ArrayList<Membership> members;
    private int month;

    /**
     * Constructor for objects of class Club
     */
    public Club()
    {
        // Initialise any fields here ...

    }

    /**
     * Add a new member to the club's list of members.
     * @param member The member object to be added.
     */
    public void join(Membership member)
    {
        members.add(member);
    }

    /**
     * @return The number of members (Membership objects) in
     *         the club.
     */
    public int numberOfMembers()
    {
        return members.size();
    }


        /**
    * Determine the number of members who joined in the given month
    * @param month The month we are interested in.
    * @return The number of members
    */
    public int joinedMonth(int month){

        Membership.getMonth();

    }



}

Mitgliedschaft:

public class Membership
{
    // The name of the member.
    private String name;
    // The month in which the membership was taken out.
    public int month;
    // The year in which the membership was taken out.
    private int year;

    /**
     * Constructor for objects of class Membership.
     * @param name The name of the member.
     * @param month The month in which they joined. (1 ... 12)
     * @param year The year in which they joined.
     */
    public Membership(String name, int month, int year)
        throws IllegalArgumentException
    {
        if(month < 1 || month > 12) {
            throw new IllegalArgumentException(
                "Month " + month + " out of range. Must be in the range 1 ... 12");
        }
        this.name = name;
        this.month = month;
        this.year = year;
    }

    /**
     * @return The member's name.
     */
    public String getName()
    {
        return name;
    }

    /**
     * @return The month in which the member joined.
     *         A value in the range 1 ... 12
     */
    public int getMonth()
    {
        return month;
    }

    /**
     * @return The year in which the member joined.
     */
    public int getYear()
    {
        return year;
    }

    /**
     * @return A string representation of this membership.
     */
    public String toString()
    {
        return "Name: " + name +
               " joined in month " +
               month + " of " + year;
    }
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage