Note that there are some explanatory texts on larger screens.

plurals
  1. PONon-Static method cannot be referenced from a static context with methods and variables
    text
    copied!<p>In writing a BookStoreApplication which uses Book, Tape, and CD classes to create objects. Although unfinished, the application class should create new BookStoreItems, which are Book, Tape, and CD. They inherit from the BookStoreItems class. In this application class I keep getting the error:</p> <pre><code>error: non-static method printMenu() cannot be referenced from a static context error: non-static method getUserChoice() cannot be referenced from a static context error: non-static variable input cannot be referenced from a static context </code></pre> <p>I've changed it to be static and then not to be static, yet I continue to get this error...</p> <pre><code>import java.util.Scanner; public class BookStoreApp2 { //constants for options static final int ADD_BOOK = 0; static final int ADD_TAPE = 1; static final int ADD_CD = 2; static final int QUIT = -1; Scanner input = new Scanner (System.in); public static void main(String[] args) { BookStoreItem[] item;//declaring array item = new BookStoreItem[10];//initializing array int itemType = -1; printMenu(); getUserChoice(); for (int i = 0; i &lt; item.length; i++){ System.out.print("\n" + i + "\tEnter 0 for Book, 1 for Tape, 2 for CD: "); itemType = input.nextInt(); switch (itemType) { case 0: item[i] = new Book(); break; case 1: item[i] = new Tape(); break; case 2: item[i] = new CD(); break; default: System.out.println("\nInvalid choice."); }//end of switch statement }//end of for loop for (int i = 0; i &lt; item.length; i++) { System.out.println("\nAnimal #" + i + ": "); System.out.println("\n\tTitle: " + item[i].getTitle()); //polymorphic because they can operate on separate objects System.out.println("\n\tAuthor: " + item[i].getAuthor()); }//end of for }//end of main method //PRINT MENU---------------------------------------------------------- public void printMenu(){ System.out.println("\nPress:"); System.out.println("\t" + ADD_BOOK + "\tTo add a book to the book store.\n"); System.out.println("\t" + ADD_TAPE + "\tTo add a tape to the book store.\n"); System.out.println("\t" + ADD_CD + "\tTo add a CD to the book store.\n"); System.out.println("\t" + QUIT + "\tTo exit\n"); } //--------------------------------------------------------------------- //GET USER CHOICE------------------------------------------------------ public int getUserChoice() { int choice; System.out.print("Please enter your choice: "); choice = input.nextInt(); return choice; }//end of getUserChoice //---------------------------------------------------------------------- }//end class </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload