Фрагмент от лекция с ментор като част от курса на Codegym University. Запишете се за пълния курс.


„Тук ли си вече, Амиго? Знам, че вече си научил много Java команди. Почти си достигнал моето ниво!“

— Вярно ли е, Диего?

„Разбира се, че не, ха-ха. Имаш още много да учиш и да се учиш. Все пак вече знаеш достатъчно, за да пишеш доста сложни програми. 10, 20, 30 реда code в една програма не е много голяма програма, нали?"

„Предполагам, че си прав. Особено ако поставиш фигурни скоби на отделни редове.“

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

— Искрено се надявам!

„Вашите надежди не са напразни. Възможно е да опростим програмите и методите са тук, за да ни помогнат в това. Те понякога се наричат ​​функции .

"Функции, методи... Ъ-ъ, Howви са те?"

„Казано много просто, методът е група от команди, които имат уникално име . С други думи, ние просто поставяме няколко команди в една група и й даваме уникално име. И това е – бум – имаме метод. често тези команди са групирани според няHowва обосновка, за да решат малка и конкретна задача. Например „метод за отпечатване на редове от файл" Или „метод за повишаване на число до степен".

„И така, разделяме програмата на методи?“

„Да, и това опростява codeа.

Пример:

Без метод С метод
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 може да бъде разделен на отделни методи. Това се прави, за да се опростят нещата: идеята е, че е по-добре да има много малки методи, отколкото един голям.

„Страхотна идея е да разделите програма на методи.

„Скоро ще си спомняте с учудване How сте писали програми, без да създавате свои собствени методи.“

„Готов съм да слушам и да се опитвам да пиша методи! Просто ми кажете How да го направя.“

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

„Как можем да декларираме най-простия метод? Ето How:

public static void name()
{
  method body
}

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

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

name();

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

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

„А сега, Амиго, погледни с нови очи командите, които вече си научил. Например, . Идва ли ти наум нещо относно това Howво всъщност е това?“System.out.println()

„Искате да кажете, че всички тези команди са просто методи, написани от други програмисти?“

"Не всички, но много от тях. Да, точно! Други са ги написали, за да улеснят живота ни."

„Така public static void main(String[] args)е и метод... Сега има повече смисъл!“

„Разбира се, че го прави! Това е програмиране! Оказва се, че главният метод – алфата и омегата на програмата – може да съдържа извиквания към други методи:

Код Забележка
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");
   }
}




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


Декларираме print10TimesWiFiметода


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


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

Показваме " Wi-Fi" на екрана

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

„Отделих някои полезни факти за методите за вас. Ето, насладете се:

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

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

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

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

Факт 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ъв начин.

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

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

"Никога не съм предполагал, че е толкова трудно!"

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

„В Java е обичайно да се следват тези принципи:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Много по-дълго от сега, нали? Това е първата точка.

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

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

Важно:

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

„Това са всички основни принципи, които ръководят именуването на методите в Java. Урокът вече приключи. Отивайте да решавате задачи!“

— Вече бягам, Диего!


Фрагмент от лекция с ментор като част от курса на Codegym University. Запишете се за пълния курс.