То, что, является хорошим отношением Класса к Строкам кода для Объектно-ориентированных языков? [закрытый]

Вы получаете NullPointerException, потому что sales это null в строке for (row = 0; row < sales.length; row++).

Даже если вы установите значение переменной sales в конструкторе Sales(), вы никогда не вызовете этот конструктор (как new Sales()).

Итак, чтобы исправить это NullPointerException, вы можете вызвать конструктор Sales в методе main() следующим образом:

public static void main(String[] args)
{
  new Sales();

  calCityTotal();
  calMonthlyTotal();
  displayTable();
}

РЕДАКТИРОВАТЬ
После исправления NullPointerException в вашем коде осталось еще несколько проблем.

Внутри calCityTotal(), sales[0].length следует исправить как sales[row].length, я думаю.

citySum массив инициализируется до длины sales. Это означает, что citySum.length равно количеству «строк». Но затем вы пишете citySum[col], что может привести к ArrayIndexOutOfBoundsException, потому что число «столбцов» может превышать citySum.length. (Это действительно происходит в вашей программе. Потому что число строк = 5 и количество столбцов = 6.)

6
задан Robert Gould 9 October 2008 в 15:09
поделиться

3 ответа

LOCs или NLOCs не являются действительно хорошей мерой качества или здоровьем Вашего кода. Я рекомендую использовать статический анализ кода NDEPEND (для Вас взгляды .NET), чтобы видеть, как хорошо Ваше решение проектируется.

Я нахожу, что LOCs является хорошим измерением только на уровне метода. Таким образом, мне обычно нравится, когда мои методы соответствуют на экране (никакие мелкие шрифты). Другие метрики как Цикломатическое Покрытие Сложности и Кода (для Вас TDDers) в дополнение к Вашим модульным тестам могут дать лучшему, сопереживают, насколько здоровый Ваша кодовая база.

8
ответ дан 9 December 2019 в 20:51
поделиться

Там действительно не будет хорошим, категорическим или удовлетворяющим ответом для этого вопроса. Однако я скажу, что, по моему опыту, строки кода в классе уменьшаются с увеличенным опытом в Объектно-ориентированном программировании.

Большинство людей, которые не изучили принципы объектно-ориентированного проектирования, будет склонно иметь классы с партиями и большим количеством строк кода. Люди с большим объектно-ориентированным опытом будут склонны иметь меньше строк кода в классе, но будут иметь намного больше классов. И конечно, оба будут жаловаться друг на друга :-).

2
ответ дан 9 December 2019 в 20:51
поделиться

Если вы действительно ищете практическое правило, я бы сказал, что любой класс, который нельзя распечатать на одном листе бумаги с читаемым разрешением, возможно, слишком длинный. и должен быть переработан. Тогда ваша целевая отметка может быть порядка 100-200 строк, но, на мой взгляд, с фактором количества страниц немного легче справиться.

Я также твердо уверен, что показатель количества страниц следует рассматривать как факторную меру плохих качеств, а не как линейный. Если в базе кода есть класс из десяти страниц, мне кажется, что он как минимум в три миллиона раз хуже, чем небольшой класс с хорошей архитектурой.

2
ответ дан 9 December 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: