java无法从静态上下文中引用非静态。什么意思。

import java.util.Scanner;
class Yuan
{
Float r;
public void input()
{
Scanner scann=new Scanner(System.in);
System.out.println("请输入半径:");
r=scann.nextFloat();
}
public void yuan()
{
System.out.println("半径=:"+r);
System.out.println("周长=:"+2*Math.PI*r);
}
}
class Test
{
public static void main(String[] args)
{
Yuan yuan=new Yuan();
Yuan.input();
Yuan.yuan();
}
}

Yuan.input(); 改成yuan.input();
因为你这里Yuan直接 " . "的意思就是直接引用类Yuan里面的静态方法或者成员变量。而你类Yuan里面是没有静态方法,所以提示这个错误。我估计你是的意思是生成类的对象。再执行方法;
改成yuan就是执行对象的方法;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-05
public class Yuan {
static Float r;

public static void input() {
final Scanner scann = new Scanner(System.in);
System.out.println("请输入半径:");
r = scann.nextFloat();
}

public static void yuan() {
System.out.println("半径=:" + r);
System.out.println("周长=:" + 2 * Math.PI * r);
}

public static void main(final String[] args) {
final Yuan yuan = new Yuan();
Yuan.input();
Yuan.yuan();
}
}

运行结果:

请输入半径:

2

半径=:2.0

周长=:12.566370614359172

相似回答