2014-09-18 4 views
1

Как я могу ссылаться на объект сканера, который определяется глобально из статического метода (например, main()). То есть, как сделать объект Scanner статичным.Как сделать объект сканера статическим

Программа (# для справки моей проблемы):

import java.util.Scanner; 

class spidy { 

    Scanner input = new Scanner(System.in);    /*DECLARING SCANNER OBJECT OUTSIDE MAIN METHOD i.e Static method */ 


    public static void main(String args[]) { 

     System.out.println("Enter a number"); 
     int n = input.nextInt(); 
    } 
} 

Ошибка: не статическая переменная ввода не может ссылаться из статического контента

+0

объявить 'статическими входной сканер = новый сканер (System.in);' – ortis

+0

Оки! получил это .. :) – Spider

+1

Обратите внимание, что _объект_ не _статический_. A_variable_ (или метод или класс). –

ответ

4

Если я правильно понял ваш вопрос, то вы можете изменить

Scanner input = new Scanner(System.in); 

к (видимой для всех других классов - вы сказали глобальный)

public static Scanner input = new Scanner(System.in); 

или (виден текущий класс - это main())

private static Scanner input = new Scanner(System.in); 
1

Просто используйте static ключевое слово, прежде чем Scanner класса.

Пример:

static Scanner scan=new Scanner(System.in); 

С помощью объекта проверки мы ссылаемся в коде

0

я сталкивался с подобными сомнениями при решении задачи о статическом Initializer блоке. И есть простое решение.

Написать как:

static Scanner input = new Scanner(System.in); 

Вместо:

Scanner input = new Scanner(System.in); 
Смежные вопросы