Java: място на конструкторите, статични методи, публични методи, частни?

Стигнах до въпроса: кой е най-предпочитаният начин за поставяне на методи? Искам да кажа, трябва ли първо да декларирам статични методи, след това конструктори, след това публични методи, след това защитени, след това частни и т.н.? Има ли някаква конвенция, като предполагам, че всеки поставя полета (променливи на екземпляр) върху кода. Има ли същата политика относно методите?

Предполагам, че зависи от езика, който използвате. Какво ще кажете за Java?


person t3rmin41    schedule 08.05.2015    source източник
comment
Редът в Java не е от значение, стига да ги има.   -  person Stultuske    schedule 08.05.2015
comment
Просто бъдете последователни. Попитайте останалата част от вашия екип дали следвате някаква конвенция. Ако не, или ако пишете код сами, изберете конвенция по ваш избор (например официалната конвенция на Java Code от Oracle) и се придържайте към нея.   -  person aioobe    schedule 08.05.2015


Отговори (3)


Това донякъде се основава на мнение, но документът на Google Java Style го описва добре:

Подреждането на членовете на даден клас може да има голям ефект върху обучаемостта, но няма единствена правилна рецепта как да го направите. Различните класове могат да подредят своите членове по различен начин.

Важното е всеки клас да подреди своите членове в някакъв логичен ред, който поддържащият може да обясни, ако бъде помолен. Например, новите методи не просто се добавят обичайно в края на класа, тъй като това би довело до хронологично подреждане по дата на добавяне, което не е логично подреждане.

https://google-styleguide.googlecode.com/svn/trunk/javaguide.html#s3.4.2-class-member-ordering

Повечето от кода, който виждам в света с отворен код, използва някои варианти на

  • статични полета
  • полета за екземпляри
  • конструктори
  • методи (екземпляр и статични)
  • анонимни класове
person Steve Chaloner    schedule 08.05.2015

Всичко се свежда до предпочитанията на екипа, но винаги е добре да следвате конвенцията

person epoch    schedule 08.05.2015

Говорейки за изпълнение, JVM гарантира реда, който не можем да променим.manage.

Но от гледна точка на четливостта на кода подреждането ДА изглежда добре. Следването на стандартите за кодиране е това, което трябва да направите.

Статични полета -> полета/променливи на екземпляр

Както знаем, Static Block винаги се извиква, след като класът е зареден, така че трябва да го имаме.

Тогава constructors, за създаване на обект, няма смисъл да се пише конструктор в края.

също добро четене тук, както е предложено по-горе.

person Ankur Singhal    schedule 08.05.2015
comment
Да, говоря само за четливост. Мястото на декларация няма значение за променливите и методите, тъй като Java няма проблем с препратка към декларацията на класа. - person t3rmin41; 08.05.2015