1. Функции/методи в Java

Вече сте научor много Java команди, което означава, че можете да пишете някои доста сложни програми. 10, 20, 30 реда code в една програма не е много голяма програма, нали?

Но програма от 100+, това вече е голяма и може да бъде доста трудно да се разбере codeът. Има ли нещо, което можете да направите, за да опростите по няHowъв начин писането и четенето на програми, които имат много code?

Да, и методите (or функциите) ще ни помогнат с това.

Какво е метод? Казано много просто, методът е група от команди, които имат уникално име . С други думи, ние просто поставяме няколко команди в една група и й даваме уникално име. И това е всичко - методът е готов.

Пример:

Без метод С метод
class Solution
{
   public static void main(String[] args)
   {
     System.out.print("Wi-");
     System.out.println("Fi");
     System.out.print("Wi-");
     System.out.println("Fi");

     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void main(String[] args)
   {
     printWiFi();
     printWiFi();
     printWiFi();
   }
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}

В програмата в лявата колона повтаряме един и същ code три пъти - направихме това умишлено, за да илюстрираме една точка. Но в програмата отдясно преместихме повтарящия се code в отделен метод и му дадохме уникално име — printWiFi.

И instead of преместения code, извикваме printWiFi()метода 3 пъти.

Когато програмата в колоната вдясно се изпълнява, всеки път, когато методът се изпълни, се изпълняват printWiFi()всички команди вътре в метода. printWiFi()Току-що създадохме нова команда (метод), комбинирайки няколко команди в една група.

Всеки code може да бъде разделен на отделни методи. Това се прави, за да се опростят нещата: идеята е, че е по-добре да има много малки методи, отколкото един голям. Скоро ще се изненадате, че е имало време, когато сте писали свои собствени програми, без да пишете свои собствени методи.


2. Деклариране на метод в Java

И така, How да напишете вашия метод правилно?

public static void name()
{
  method body
}

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

Където name е уникалното име на метода и method bodyпредставлява командите, които съставят метода. Значението на думите public, static, и voidще бъде обсъдено по-късно.

След като сме създали метод, можем да го извикаме в нашите други методи. Извикването на метод изглежда така:

name();

Къде nameе уникалното име на метода, който искаме да извикаме, т.е. метода, чиито команди искаме да изпълним, когато стигнем до извикването на метода.

Когато програмата достигне извикването на метода, тя просто ще влезе в метода, ще изпълни всички негови команди, ще се върне към оригиналния метод и ще продължи изпълнението.

Както вероятно вече се досещате, повечето от командите, които научихме досега, са само методи, написани от други програмисти, за да улеснят живота ни: , , и т.н.System.out.println()Thread.sleep()

Един метод може да съдържа извиквания към други методи:

Код Забележка
class Solution
{
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}




Извикване на printWiFi10Times()метода


Деклариране на printWiFi10Timesметода


Извикване на printWiFi() метода 10 пъти в цикъл


Деклариране на printWiFiметода

Показване на текст на екрана:
Wi-Fi

3. Факти за методите

Ето още няколко факта за методите:

Факт 1. Един метод винаги е част от клас.

Методът може да бъде деклариран само в клас. Метод не може да бъде деклариран в друг метод. Метод не може да бъде деклариран извън клас.

Факт 2. Името на метода няма свещено meaning.

Няма meaning How се наричат ​​методите - това не засяга нищо. Основният метод е метод като всички останали. Просто това име е избрано за метода, от който Java машината ще започне изпълнението на програмата. В това няма нищо магическо.

Факт 3. Редът на методите в един клас няма meaning.

Можете да пишете вашите методи в клас в произволен ред — това няма да повлияе на изпълнението на програмата по ниHowъв начин. Пример:

Код
class Solution
{
   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   public static void main(String[] args)
   {
     printWiFi10Times();
   }
}

Факт 4. Променливите в един метод не са свързани по ниHowъв начин с променливите на други методи.

Каквото се случи във Вегас, си остава във Вегас. И променливите, декларирани вътре в метода, остават вътре в метода.

Променливи с еднакви имена могат да бъдат декларирани в два съседни метода и тези променливи не са свързани една с друга по ниHowъв начин.


4. Имена на методите

Отдавна е известно, че двата най-трудни проблема в програмирането са изборът на правилните имена на методите и изборът на правилните имена на променливите.

Всъщност се появи почти цяла наука за това How правилно да се назовават методи. И всеки език за програмиране има свои собствени стандарти. В Java е обичайно да се следват следните принципи:

Принцип 1. Името на метода трябва да описва накратко Howво прави методът.

Тогава друг програмист, който чете вашия code, може да разчита на името на метода, за да познае Howво прави codeът. Той or тя няма да има нужда да гледа codeа на извикваните методи всеки път. И целта на методите е по-лесна за запомняне.

Спомнете си, че се използва за „заспиване на програмата“ и се използва за „четене на следващото цяло число“. Удобно, нали?Thread.sleep()Scanner.nextInt()

Принцип 2. Името на метод може да се състои от няколко думи.

Има обаче няколко ограничения, когато правите това:

  • Не можете да имате интервали в име на метод: всички думи се пишат заедно.
  • Всяка дума е с главна буква, с изключение на първата.
  • Името на метод винаги започва с малка буква

Спомнете си printWiFi10Timesметода. Какво означава това име? „Покажете думата „WiFi“ 10 пъти“. Не трябва да включвате много думи в името на метода: името трябва да отразява самата му същност.

Този стандарт за методи за именуване се нарича CamelCase (главните букви са като гърбица на камила).

Принцип 3. Името на метод започва с глагол.

Един метод винаги прави нещо, така че първата дума в името на метода винаги е действие.

Ето някои лоши имена за методи: home, cat, car, train, ...;

Някои добри имена са: run, execute, print, read, write, ...

Принцип 4. Използвайте само латински букви и цифри.

Java има отлична поддръжка за различни езици. Можете да пишете имената на променливите, методите и класовете Howто на руски, така и на китайски — всичко ще работи!

Но! Колко време ще трябва да изучавате Java, ако System.out.println()методът е написан на китайски? Много по-дълго от сега, нали? Това е първата точка.

Второ, много екипи за разработка на софтуер са международни. Много голям брой Java библиотеки се използват от програмисти от цял ​​свят.

Затова се препоръчва да се използват само латински букви и цифри в имената на методите.

Важно:
Името на метода трябва да започва с буква (не може да започва с цифра).