Методичні вказівки до виконання курсової роботи з курсів "Програмування на Java" та "Основи крос-платформеного програмування"

Страницы работы

32 страницы (Word-файл)

Фрагмент текста работы

Второй стиль требует 8 пробелов перед строками продолжения.

// INDENT 8 SPACES TO AVOID VERY DEEP INDENTS private static synchronized horkingLongMethodName(int anArg,         Object anotherArg, String yetAnotherArg,      Object andStillAnother) {  ... } 

Первый стиль предпочтительней, так как читается лучше.

Переносы в вызовах методов и арифметических выражениях

Ниже приведены два примера вызовов методов:

function(longExpression1, longExpression2, longExpression3,   longExpression4, longExpression5); 

var = function1(longExpression1,  function2(longExpression2,   longExpression3)); 

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

longName1 = longName2 * (longName3 + longName4 - longName5)  + 4 * longname6; // PREFER

longName1 = longName2 * (longName3 + longName4  - longName5) + 4 * longname6; // AVOID

Форматирование тернарных выражений

Ниже приведены три приемлемых способа форматирования тернарных выражений:

   alpha = (longBooleanExpression) ? beta : gamma;

   alpha = (longBooleanExpression) ?

beta : gamma;

   alpha = (longBooleanExpression) ?  beta :  gamma;

8  Комментарии документатора

Комментарии документатора описывают классы Java, интерфейсы, конструкторы, методы и поля – по одному комментарию на каждое объявление. Комментарий должен располагаться непосредственно перед объявлением:

/**  * The Example class provides ...  */ class Example { 

Заметьте, что классы и интерфейсы не имеют сдвига, так же не имеет сдвига и первая строка их комментария. Последующие строки комментария сдвигаются на 1 символ, чтобы выровнять все звездочки по вертикали.

Комментарии членов, включая конструкторы, имеют сдвиг первой строки на 4 символа, а прочих строк - на 5.

9  Объявления

Число объявлений в одной строке

Рекомендуется одно объявление в строке, поскольку это облегчает чтение кода, его документирование и рефакторинг.

Другими словами следует писать

int level;     int size; 

 а не

int level, size; // WRONG!

Расположение объявлений

Располагайте объявления только в начале блоков (блок – это фрагмент кода, окруженный фигурными скобками "{" и "}").

void myMethod() {  int int1; // beginning of method block  if (condition)  {  int int2; // beginning of "if" block  ...  } } 

Не откладывайте объявления переменных до их первого использования, исключением здесь является только объявление управляющей переменной цикла for:

for (int i = 0; i < maxLoops; i++)

{

 ...

Избегайте локальных объявлений, которые скрывают объявления верхних уровней, не объявляйте одноименных переменных во внешнем и внутреннем блоках.

int count; ... int method() {  if (condition)  {  int count; // AVOID!  ...  }  ... } 

Инициализация

Старайтесь инициализировать локальные переменные при объявлении. Единственная причина не делать этого - зависимость начального значения переменной от каких-то вычислений.

10  Операторы

Простые операторы

Каждая строка кода должна содержать не более одного оператора. Это улучшает читабельность и упрощает отладку.

Пишите:

argv++; argc--; // CORRECT 

Вместо:

argv++; argc--; // AVOID!

Составные операторы

Это те, которые содержат последовательность операторов, заключенную в фигурные скобки. Внутренние операторы должны располагаться с одним отступом по отношению к фигурным скобкам.

{  int value = getValue();  doSomethingWithValue(value); } 

 Открывающая скобка должна быть в строке, следующей за начальной строкой составного оператора.

for (int i=0; i < list.size(); i++) {  ... } 

Скобки ставятся всегда, даже вокруг единственного оператора, если он входит в управляющую конструкцию, такую как if-else или for-оператор. Это уменьшает вероятность ошибки при добавлении внутренних операторов.

Пишите

if (object == null) {  return; //CORRECT } 

вместо

if (object == null) return; // WRONG!

Оператор return

Выражение оператора return обычно не берется в скобки, за исключением случаев, когда скобки делают оператор более читабельным.

Пример:

return; return myDisk.size(); return (size ? size : defaultSize);

Операторы if-else, if-else-if-else

Условный оператор имеет две формы:

if (condition) {  statements; } 

if (i < 0) {  statements; } else {  statements; } 

В конструкции  if-else-if второй и последующие if располагаются в одной строке с else.

if (condition) {  statements; } else if (condition) {  statements; } else if (condition) {  statements; } 

Оператор for

Оператор for должен иметь следующую форму:

for (initialization; condition; update) 

{   statements;  } 

Пустой оператор for (в котором всю работу выполняют выражения инициализации, условия и замены) имеет следующую форму:

for (initialization; condition; update);

Оператор while

Оператор while должен иметь следующую форму:

while (condition) {  statements; } 

 Пустой оператор while пишется так:

 while (condition);

Оператор do-while

Оператор do-while должен иметь следующую форму:

do {  statements; } while (condition); 

Оператор switch

Оператор switch должен иметь следующую форму:

switch (condition) {  case ABC:  statements;  /* falls through */  case DEF:  statements;  break;  case XYZ:  statements;  break;  default:  statements;  break; } 

Каждый раз, когда оператор case не оканчивается оператором breake, добавляйте комментарий в то место, где обычно располагается оператор breake.

Не отделяйте продолжающийся case от следующего пустой строкой. Это подчеркнет тот факт, что два блока кода выполняются совместно.

Каждый switch оператор должен включать оператор default. Оператор break в нем избыточен, но его следует писать, чтобы предупредить возможность ошибки при добавлении новых операторов case после default.

Оператор try

try-catch-finally операторы должны иметь следующий формат:

try {  statements; } catch (ExceptionClass e) {  statements; } finally 

{ } 

11  Соглашения о наименовании

Имена классов

Имена классов должны быть существительными или основаны на существительных, не слишком длинными, написанными в стиле «верблюд» и начинаться с прописной буквы.

Старайтесь делать имена классов простыми и информативными

Похожие материалы

Информация о работе