java怎么用扫描仪_如何在Java中使用扫描仪? [重复]

问题

这个问题已经在这里有了答案:

import java.util.Scanner;

public class Initials {

Scanner getin = new Scanner (System.in);

public static void main(String[] args) {

String Name;

System.out.println("Enter your name's Initials::");

Name=getin.nexlinet();

}

}

错误:不能从静态上下文引用非静态变量?

java

回答

首先, Scanner对象没有名为nexlinet的方法,我想您想使用nextLine() 。

关于错误,您无法从static方法(在这种情况下,该方法为main )引用non-static变量。

为什么? 因为即使没有创建该类的实例,也可以使用static变量。

怎么解决呢?

您可以将变量getin声明为static :static Scanner getin = new Scanner(System.in);

或者,您可以创建该类的实例并访问实例字段getin :Initials some_name = new Initials(); // ... name = t.getin.nextLine();

笔记:

尝试遵循Java命名约定。 对方法/变量使用'mixedCase' ,对类/接口使用'CamelCase' 。

我建议您阅读有关访问修饰符的信息。 为什么? 看第二种解决方法。 Initials类应为实例字段getin提供一个getter / setter方法,因此您没有对此的完全访问权限。 另外,将实例字段声明为private (并使用getters / setters )也是一种好习惯。

回答

尝试这个:

// ur code

public static void main(String[] args) {

Scanner getin = new Scanner (System.in); //

Name=getin.nextLine(); //

// ur code

回答

您必须在main方法内部创建扫描仪类对象。

因为外部声明的非静态变量无法访问静态方法。

public static void main(String[] args)

{

Scanner getin = new Scanner (System.in);

String Name;

System.out.println("Enter your name's Initials::");

Name=getin.nextLine();

}

回答

您不了解静态和非静态变量或方法。

1)可以在任何位置访问静态变量或方法,无论它是静态方法还是非静态方法。 2)非静态方法或变量不能在静态方法中访问。

所以修改后的代码应该是:

import java.util.Scanner;

public class Initials {

public static void main(String[] args) {

String Name;

Scanner getin = new Scanner (System.in);

System.out.println("Enter your name's Initials::");

Name=getin.nexLine();

}

}

否则,将Scanner修改为static Scanner getin = new Scanner (System.in);

回答

静态方法:无法访问非静态变量。 无法调用非静态方法。 无法使用“ this”关键字。 无法使用“超级”关键字。 无法覆盖静态方法。 因此您不能在main方法内部访问非静态对象,因为它是静态方法。

回答

import java.util.Scanner;

public class Initials

{

public static void main(String[] args)

{

Scanner getin = new Scanner (System.in);

String Name;

System.out.println("Enter your name's Initials::");

Name=getin.nexlinet();

}

}

回答

导入java.util.Scanner;

公共课程缩写

public static void main(String[] args) {

Scanner getin = new Scanner (System.in);

String Name;

System.out.println("Enter your name's Initials::");

Name=getin.next();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值