Java程序中的错误,y=mx+;b.有方法

Java程序中的错误,y=mx+;b.有方法,java,Java,我试图制作一个程序,用户在其中输入变量m和b的值,然后将这些变量传递给一个方法linear(),该方法使用传递的变量打印函数“y=mx+b”。PFB代码: import java.util.Scanner; import java.io.*; public class line { double m, b; public void liner(double m,double b) { System.out.print("y = " + m + "x +

我试图制作一个程序,用户在其中输入变量m和b的值,然后将这些变量传递给一个方法linear(),该方法使用传递的变量打印函数“y=mx+b”。PFB代码:

import java.util.Scanner;
import java.io.*;
public class line
{
    double m, b;

    public void liner(double m,double b)
    {
        System.out.print("y = " + m + "x + " + b);
    }

    public static void main(String args[])
    {
        Scanner reader = new Scanner(System.in);
        System.out.print("What is the Slope");
        m = reader.nextInt();
        reader.close();
        System.out.print("What is the Y Intercept");
        b = reader.nextInt();
        reader.close();
        liner (m, b);
    }
}
运行上述程序时,我遇到以下错误:

 /line.java:17: error: non-static variable m cannot be referenced from a static context
 m = reader.nextInt();
 ^
/line.java:20: error: non-static variable b cannot be referenced from a
static context
 b = reader.nextInt();
 ^
 /line.java:22: error: non-static variable m cannot be referenced from a
 static context
 liner (m , b);
        ^
 /line.java:22: error: non-static variable b cannot be referenced from a
 static context
 liner (m , b);
            ^
/line.java:22: error: cannot find symbol
liner (m , b);
^
symbol:   method liner(double,double)
location: class line
5 errors

您需要将
m
b
的变量声明移动到main方法中,并在
liner
方法上添加一个
static
修饰符

变量
m
b
不在
main
方法的范围内,因此无法访问它们。请在此处阅读有关范围的内容:


如果没有
static
修饰符,则在
main
中调用
liner
方法时,尚未创建该方法,这就是您收到此错误的原因。在这里阅读有关类成员的信息:

添加
import java.util.Scanner,并删除
public void liner(双m,双b)
之后。在方法的声明后面放一个分号。删除它以修复问题。投票结束是一个打字错误。