Can't make static reference to non-static method -> huh?! Simple car prgm
Hi fellow javaers. I am trying to write some simple code to practice my switch statements, scanning and general format skills. Basically inside of my class I have 2 methods, one of which is the main. I thought everything should work well but I think I have a fundamental error in the way I am doing this. The error I am receiving upon compilation is
"Cannot make a static reference to the non-static method speedCalc(int,int) from the type Scanner_fun" on the line near the bottom of the main method where double vehSpeed calls the speedCalc method.
and here is the code. Btw I am coding in eclipse.
Code:
import java.util.Scanner;
public class Scanner_fun {
double gear1 = 3.321;
double gear2 = 1.902;
double gear3 = 1.308;
double gear4 = 1;
double gear5 = 0.759;
double gearR = 3;
double finalDrive = 4.083;
double wheelDia = 25; //inches
double inchesToMiles = 1/12/5280;
double wheelCirc = wheelDia*Math.PI*inchesToMiles; //miles
private double speedCalc(int gear, int rpm){
double speed;
switch(gear){
case 0:
speed = rpm/gearR/finalDrive*wheelCirc;
return speed;
case 1:
speed = rpm/gear1/finalDrive*wheelCirc;
return speed;
case 2:
speed = rpm/gear2/finalDrive*wheelCirc;
return speed;
case 3:
speed = rpm/gear3/finalDrive*wheelCirc;
return speed;
case 4:
speed = rpm/gear4/finalDrive*wheelCirc;
return speed;
case 5:
speed = rpm/gear5/finalDrive*wheelCirc;
return speed;
}
return 0.0;
}
public static void main (String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("select gear (0 for R): ");
int gear = scan.nextInt();
System.out.println("select engine speed (rpm): ");
int rpm = scan.nextInt();
double vehSpeed = speedCalc(gear,rpm);
System.out.println("You are in gear: "+gear);
System.out.println("Your engine speed is: "+rpm);
System.out.println("Your vehicle speed is: "+vehSpeed);
}
}