报错无法从非静态上下文中引用非静态 方法nextInt()

a447991498 2011-02-27 11:31:50
各位Java老师们,我是个Java的初学者,问的问题比较幼稚的话不要笑话我,现在老师给我们一道题任意输入两个实数,求它们的和差积商,下面是我写的import java.util.Scanner;
public class Operate
{
public static void main(String[] args)
{
double num1;
double num2;
Scanner scanner=new Scanner(System.in);
System.out.println("请你输入一个数字");
num1=Scanner.nextInt();
System.out.println("请再输入一个数字");
num2=Scanner.nextInt();
System.out.printf("%d+%d=%d,num1",num2,num1+num2);
System.out.printf("%d-%d=%d,num1",num2,num1-num2);
System.out.printf("%d*%d=%d,num1",num2,num1*num2);
System.out.printf("%d/%d=%d,num1",num2,num1/num2);
}
}
再第10行和第十二行报错 无法从非静态上下文中引用静态 方法nextInt()
麻烦各位高手指点一下。。。十分感谢
...全文
1005 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixiang_yexin 2011-02-27
  • 打赏
  • 举报
回复 1
num1=Scanner.nextInt();

这个 Scanner 有问题
要用他的对象 就是Scanner scanner = new Scanner(System.in);
这句代码 创建的 scanner对象

这里区分大小写的
dracularking 2011-02-27
  • 打赏
  • 举报
回复
Scanner.nextInt();

Cannot make a static reference to the non-static method nextInt() from the type Scanner

这样之所以报此错我认为 Eclipse认为类名调用静态方法的行为也包括在引用范畴内,而nextInt是非静态方法,无法被静态引用(类名引用)
dracularking 2011-02-27
  • 打赏
  • 举报
回复

import java.util.Scanner;

public class Operate {
public static void main(String[] args) {
int num1;
int num2;
Scanner scanner = new Scanner(System.in);
System.out.println("请你输入一个数字");
num1 = scanner.nextInt();
System.out.println("请再输入一个数字");
num2 = scanner.nextInt();
System.out.printf("%d+%d=%d\n", num1, num2, num1 + num2);
System.out.printf("%d-%d=%d\n", num1, num2, num1 - num2);
System.out.printf("%d*%d=%d\n", num1, num2, num1 * num2);
System.out.printf("%d/%d=%d\n", num1, num2, num1 / num2);
}
}
zl_love_IT 2011-02-27
  • 打赏
  • 举报
回复
public static void main(String[] args) {
double num1;
double num2;
Scanner scanner=new Scanner(System.in);
System.out.println("请你输入一个数字");
num1=scanner.nextInt();
System.out.println("请再输入一个数字");
num2=scanner.nextInt(); System.out.printf("%d+%d=%d,num1",num2,num1+num2);
System.out.printf("%d-%d=%d,num1",num2,num1-num2);
System.out.printf("%d*%d=%d,num1",num2,num1*num2);
System.out.printf("%d/%d=%d,num1",num2,num1/num2);
}
lanyan_1011 2011-02-27
  • 打赏
  • 举报
回复
用Scanner 的对象引用

你的code中 就是scanner调用nextInt(); 就行了

改成:
scanner.nextInt();

Ok!
a447991498 2011-02-27
  • 打赏
  • 举报
回复
我有个问题 第一如果用int的话,不能满足题意,因为题目中给的是实数而int是整数另外改成int也无法解决这个问题,如果将Scanner 改成scanner可以编译出来但出现异常 ..如果各位老师有时间的话可以帮我做做这个题..任意输入两个实数求他们的和差积商。。。谢谢

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧