有人能告诉我为什么我们要第二次声明一个Scanner
类对象,如果我们想在第一次声明它的main方法之外的方法中使用它的话?
例如:
public static void main(String[] args) {
Scanner j = new Scanner(System.in);
String val = j.next();
}
static void lod() {
Scanner j = new Scanner(System.in);
String m = j.next();
}
在方法lod()中使用Scanner
类对象之前,为什么要再次声明它?
3条答案
按热度按时间xlpyo6sf1#
...如果我们想在main方法之外的方法中使用scanner类对象,为什么要第二次声明它呢?
你不必这样做,这也不是一个干净的方法,我会使用以下方法之一:
1.将
Scanner
对象声明为示例变量。但是,您将无法在static
方法(包括main
)中直接使用它,因为您无法在static
方法中直接访问非static
成员。在static
方法中,您只能通过类的示例访问示例变量,例如:1.将
Scanner
对象声明为类变量(即类级别的静态变量),例如1.将
Scanner
对象传递给从main
调用的方法,例如5gfr0r5j2#
你不需要这样做!你可以在类级别声明Scanner对象,如下所示:
x7rlezfr3#
在Java中,对象可以在方法内部或外部创建,所以它们只针对那个方法或整个类,但我不建议你这么做,因为每次使用类时,方法都会被创建,即使你访问的是一个不使用它的方法,相反,你可以在方法外部声明它,这样类中的所有方法都可以访问它,但是它必须在每个方法中单独创建,并且在方法结束时会被销毁。例如: