2013-12-06 2 views
-3

Я пытаюсь создать что-то вроде этого ...Установить длину массива на значение, передаваемый конструктору

Class WordStore { 

    private int size; 
    private String words[]; 

    public WordStore(int n) { 
     size=n; 
     words[]=new String[size]; 
    } 

    ... 
} 

Так что я могу иметь слова, как глобальные переменные, будучи в состоянии получить к нему доступ из любого метода в класса, без необходимости передавать его в качестве аргумента. Длина слов массива должна быть значением int, переданным конструктору, который передается из другого класса. Он должен быть массивом, а не ArrayList или любым другим списком.

Однако в настоящее время он не компилирует, какие исправления мне нужно сделать, чтобы это можно было компилировать.

+2

Так в чем ваш вопрос? – sanket

+0

У вас есть вопросы? –

+0

Вы пробовали код, который вы опубликовали? Если да, то это вызвало какие-либо ошибки? Если да, то какой? – LionC

ответ

1

Это должно быть достаточно

private int size; 

private String words[]; 

public WordStore(int n){ 
    words =new String[n]; 
} 

Если вам не нужен размер, чтобы быть глобальным

1

words[]=new String[size]; должно быть, как это words=new String[n];

+0

Спасибо, теперь он работает :) – user3074612

+0

@Prabhakaran Возможно (и нисходящее не от меня) они хотят, чтобы некоторые объяснение того, почему строка может быть изменена. Хотя я не могу думать ни о каком объяснении, кроме «потому что это так написано java». –

+0

@ user3074612 приветствуется. – Prabhakaran

1

Как и другие заявили, отвечающими вы должны заменить

words[]=new String[size]; с words=new String[n];

Это потому, что [] является частью переменных типа не его имя. Эта путаница понятна, потому что при объявлении переменной необязательно ставить [] с остальной частью типа или имени. По этой причине обычно объявить переменную типа массива, как

private String[] words; //type: String[] name: words 

вместо нестандартных

private String words[]; //still type: String[] name: words, but less clear 

После того, как вы сделаете это, все становится гораздо более последовательным, вы бы не повторять Строковый тип при использовании переменной, чтобы вы не повторяли [].

Дополнительно Класс должен быть классом, поскольку ключевые слова являются строчными буквами в java

Смежные вопросы