Note that there are some explanatory texts on larger screens.

plurals
  1. POJava referencing error when calling methods to main function
    primarykey
    data
    text
    <p>Hi I have this problem I get this error in the main function: "non static method cannot be referenced from a static context" all of the methods called are underlined with this error. I've tried a few things and I can't find a way to overcome it and it's doing my head in. Is there a way I can get rid of that error? thanks here is the code:</p> <pre><code>import java.util.Scanner; public class Survey { int age; char gender; char show; int over30MY = 0, over30FY = 0, under30MY = 0, under30FY = 0; int over30MN = 0, over30FN = 0, under30MN = 0, under30FN = 0; int totalCalls; int totalWatchers; float perTotalWatchers; float perU30M, perU30F, perO30M, perO30F, perTotalF, perTotalM; float perTotalU30, perTotalO30, perTotal; public static void main(String[] args) { System.out.println("Thank you for your call,\nPlease take some time to answer a few questions"); Info(); collectData(); getTotals(); printTotals(); }//end of main public void Info() { //Prints student Info System.out.println(""); System.out.println(""); System.out.println(""); System.out.println(""); System.out.println(""); } public void collectData() { Scanner userInput = new Scanner(System.in); //Does everything //ask questions System.out.println("What is your age?\n"); age = userInput.nextInt(); System.out.println("Male or Female (Enter M or Y)"); gender = userInput.next().charAt(0); gender = Character.toLowerCase(gender); System.out.println("Do you watch the show regularly? (Enter Y or N)"); show = userInput.next().charAt(0); show = Character.toLowerCase(show); //store data if((age &gt; 30) &amp;&amp; (gender == 'm') &amp;&amp; (show == 'y')) { over30MY++; } else if((age &gt; 30) &amp;&amp; (gender == 'f') &amp;&amp; (show == 'y')) { over30FY++; } else if((age &lt; 30) &amp;&amp; (gender == 'm') &amp;&amp; (show == 'y')) { under30MY++; } else if((age &lt; 30) &amp;&amp; (gender == 'f') &amp;&amp; (show == 'y')) { under30FY++; } else if((age &gt; 30) &amp;&amp; (gender == 'm') &amp;&amp; (show == 'n')) { over30MN++; } else if((age &gt; 30) &amp;&amp; (gender == 'f') &amp;&amp; (show == 'n')) { over30FN++; } else if((age &lt; 30) &amp;&amp; (gender == 'm') &amp;&amp; (show == 'n')) { under30MN++; } else if((age &lt; 30) &amp;&amp; (gender == 'f') &amp;&amp; (show == 'n')) { under30FN++; }//end of if else }//end of collectData public void getTotals() {//calculate totals for printing totalCalls = over30MY + over30FY + under30MY + under30FY + over30MN + over30FN + under30MN + under30FN; totalWatchers = over30MY + over30FY + under30MY + under30MN; perTotalWatchers = Math.round(totalWatchers / totalCalls); //rounds percentage to nearest whole number perU30F = Math.round(under30FY / totalWatchers); //Total Under 30 Females perU30M = Math.round(under30MY / totalWatchers); //Total Under 30 Males perO30F = Math.round(over30FY / totalWatchers); //Total Over 30 Females perO30M = Math.round(over30MY / totalWatchers); //Total Over 30 Males perTotalF = Math.round(perU30F + perO30F); //Total Females perTotalM = Math.round(perU30M + perO30M); //Total Males perTotalU30 = Math.round(perU30F + perU30M); //Total Under 30 perTotalO30 = Math.round(perO30F + perO30M); //Total Over 30 perTotal = Math.round(perTotalF + perTotalM); //Total }//end of getTotals public void printTotals () { //Prints the Totals System.out.println("Total People called is "+totalCalls); System.out.println("Number of people who watch the show regularly is "+totalWatchers); System.out.println("Percentage of those who watch the show is "+perTotalWatchers); System.out.println(""); System.out.println(""); }//end of printTotals }// end of class </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

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