Java Code Conventions / Соглашения по оформлению кода Java: Java Code Conventions
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Файлы длиннее 2000 строк громоздки и их следует избегать. belgita80 21.07.11 в 18:02 |
|
|
В качестве примера правильного оформления Java программы, см. "Java Source File Example" на стр. 19. belgita80 21.07.11 в 18:03 |
||
|
3.1. Файлы исходники Java belgita80 21.07.11 в 18:03 3.1. Исходный Java файл kaysen 19.09.11 в 19:09 3.1 Исходные Java-файлы EugeneL 15.01.12 в 14:26 |
||
|
Каждый файл Java исходника содержит один общий класс или интерфейс. Когда частные классы и интерфейсы связаны с общим классом, вы можете поместить их в том же исходном файле, где находится общий класс. Общий класс должен быть в таком случае первым классом или интерфейсом в файле. belgita80 21.07.11 в 18:09 Каждый исходный Java файл содержит один public класс или интерфейс. Когда private классы и интерфейсы связанны с public классом, вы можете поместить их в тот же исходный файл что и public класс. Public класс должен быть первым классом или интерфейсом в файле. kaysen 19.09.11 в 19:10 |
||
|
Файлы исходники Java имеют следующую структуру: belgita80 21.07.11 в 18:11 Исходные Java файлы имеют следующую структуру: kaysen 19.09.11 в 19:11 |
||
|
* Открывающие комментарии (см. "Открывающие комментарии" на стр. 4) belgita80 21.07.11 в 18:12 |
||
|
* Сведения о пакете и импорте; например: belgita80 21.07.11 в 18:13 |
||
|
import java.applet.Applet; vapvap14 04.09.11 в 12:49 |
||
|
import java.awt.*; vapvap14 04.09.11 в 12:50 |
||
|
import java.net.*; vapvap14 04.09.11 в 12:50 |
||
|
* Объявление классов и интерфейсов (см "Объявление классов и интерфейсов" на стр. 4) belgita80 21.07.11 в 18:15 |
||
|
3.1.1. Открывающие комментарии belgita80 21.07.11 в 18:15 |
||
|
Все файлы исходники должны начинаться с комментария в стиле С, который дает список программиста(ов), дату, авторские права, а также краткое описание назначения программы. Например: belgita80 21.07.11 в 18:17 |
||
|
/* vapvap14 04.09.11 в 12:50 |
||
|
* Имя класа vapvap14 04.09.11 в 12:50 |
||
|
* vapvap14 04.09.11 в 12:50 |
||
|
* Информация об версий vapvap14 04.09.11 в 12:50 Информация о версии (анонимно) 05.07.12 в 11:56 |
||
|
* vapvap14 04.09.11 в 12:50 |
||
|
* Примечание к копирайту vapvap14 04.09.11 в 12:51 |
||
|
*/ vapvap14 04.09.11 в 12:51 |
||
|
3.1.2. Сведения о пакете и импорте belgita80 21.07.11 в 18:18 |
||
|
Первая строка не-комментарий в большинстве исходников Java это сведения о пакете, после чего идут сведения о импорте. Например: belgita80 21.07.11 в 18:19 |
||
|
package java.awt; vapvap14 04.09.11 в 12:51 |
||
|
import java.awt.peer.CanvasPeer; vapvap14 04.09.11 в 12:51 |
||
|
3.1.3 Объявление классов и интерфейсов belgita80 21.07.11 в 18:22 |
||
|
Приведенная ниже таблица описывает объявление части класса или интерфейса в порядке их появления. См. "Пример файла исходника Java" на стр. 19 для примера с комментариями. belgita80 21.07.11 в 18:30 |
||
|
|объявление части класса / интерфейса | примечания belgita80 21.07.11 в 18:32 |
||
|
----------------------------------------------------------------------------------- dimox 04.06.13 в 09:07 |
||
|
1 | комментарий по документации класса / интерфейса (/**...*/) | См. "Комментарии к документации" на стр. 9 для подробной информации, которая должна быть включена в этот комментарий. belgita80 21.07.11 в 18:37 1 | Комментарии к документации класса/интерфейса (/**...*/) | Смотрите “Комментарии к документации” на стр. 9 с информацией о том, что должно быть в этом комментарии. kaysen 19.09.11 в 19:16 |
||
|
2 | Операторы class или interface kaysen 19.09.11 в 19:17 |
||
|
3 | Комментарии о реализации класса/интерфейса (/*...*/), если необходимо | Эти комментарии должны содержать расширенную информацию о классе/интерфейсе, которая не относится к комментариям документации класса/интерфейса kaysen 19.09.11 в 19:18 |
||
|
4 | Статические переменные класса | Сначала public переменные класса, затем protected, затем пакетные (без спецификатора доступа) и затем private. kaysen 19.09.11 в 19:19 |
||
|
5 | Не статические переменные | Сначала public, затем protected, затем пакетные (без спецификатора доступа) и затем private. kaysen 19.09.11 в 19:20 |
||
|
6 | Конструкторы kaysen 19.09.11 в 19:21 |
||
|
7 | Методы | Эти методы должны группироваться больше по функциональности чем по области видимости или доступности. Например, private метод класса может быть между двумя случайными public методами. Цель – сделать чтение и понимание кода проще. kaysen 19.09.11 в 19:23 |
||
|
Отступы sabaya 03.09.11 в 13:57 |
||
|
Один отступ должен содержать четыре пробела. Точный формат отступа (пробелы или знаки табуляции) не задан. Табуляция должна содержать 8 пробелов (не 4). sabaya 03.09.11 в 14:00 |
||
|
4.1 Длина строки sabaya 03.09.11 в 14:00 |
||
|
Избегайте строк длиннее 80 символов, потому что они могут быть некорректно восприняты многими терминалами и другими устройствами. sabaya 03.09.11 в 14:07 |
+1 | |
|
Замечание: для примеров, использующихся в документации, длина строки должна быть меньше - обычно не более 70 символов. sabaya 03.09.11 в 14:06 |
||
|
Переносы строк sabaya 03.09.11 в 14:10 |
||
|
В случах, кода выражение не входит на одну строку, сделайте переход на другую в соотвествии с этими общими принципами: sabaya 03.09.11 в 14:11 |
||
|
* начинайте новую строку после запятой sabaya 03.09.11 в 14:11 |
||
|
* начинайте новую строку после оператора sabaya 03.09.11 в 14:11 |
||
|
* переходите на новую строку на более высоком уровне в коде sabaya 03.09.11 в 14:27 |
||
|
* когда часть выражения переносится на новую строку, начинайте ее на том же уровне, на котором находится начало выражения sabaya 03.09.11 в 14:44 |
||
|
* если правила, указанные выше, приводят к тому, что код плохо читается или слишком сдвинут вправо, то просто делайте отступ в 8 пробелов. sabaya 03.09.11 в 14:46 |
||
|
Несколько примеров переноса строк для вызовов методов: sabaya 03.09.11 в 14:47 |
||
|
function(longExpression1, longExpression2, longExpression3, sabaya 03.09.11 в 14:47 |
||
|
longExpression4, longExpression5); sabaya 03.09.11 в 14:47 |
