1. Локални променливи
Нека поговорим по-сериозно за променливите. Но този път няма да обсъждаме вътрешното им устройство. Вместо това ще се съсредоточим върху това How променливите взаимодействат с codeа, където се намират.
Всички променливи, които са декларирани в методите, се наричат локални променливи . Локална променлива съществува само в блока code, в който е декларирана. Или по-точно съществува от момента, в който е деклариран до края на блока code, в който е деклариран.
За простота, нека разгледаме един пример:
Код | Променлива видимост |
---|---|
|
|
Нека поговорим за достъпа до локални променливи още веднъж. Ето блок code, състоящ се от фигурни скоби: това може да бъде тяло на метод, тяло на цикъл or просто блок code за условен оператор. Променлива, декларирана в блок от code, съществува до края на този блок от code.
Ако променлива е декларирана в тялото на цикъла, тя ще съществува само в тялото на цикъла. Той се създава и унищожава при всяка итерация на цикъла.
Пример:
Код | Променлива видимост |
---|---|
|
|
Успяхме да декларираме втора локална променлива с име b
само защото първата променлива не се вижда в codeовия блок, където е декларирана b
втората променлива.b
2. Параметри
Както казахме преди, всеки метод може да има променливи, които наричаме параметри. Какво ще кажете за тяхната видимост и живот?
Всичко е просто. Параметрите се създават, когато изпълнението влезе в метода (т.е. когато codeът на метода започне да се изпълнява). Те се елиминират, когато методът приключи. Те са видими в цялото тяло на метода.
Пример:
Код | Променлива видимост |
---|---|
|
|
Както казахме по-рано, args
е просто променлива, чийто тип е масив от низове. И Howто всички параметри, той е достъпен навсякъде в тялото на метода. Това каза, ние обикновено го игнорираме в нашите примери.
3. Променливи в клас
Ще си спомните от уроците в ниво 1, че един клас може да има методи и променливи. Методите понякога се наричат методи на екземпляри, а променливите — променливи or полета на екземпляри. Това всъщност са синоними в Java.
Какви са променливите (or полетата) на клас?
Те са променливи, които са декларирани не в метод, а в клас.
Те могат да бъдат достъпни от всеки (нестатичен) метод на клас. Грубо казано, променливите на екземпляра са променливи, които се споделят от всички методи на клас.
Пример:
Код | Променлива видимост |
---|---|
|
|
В този пример имаме два метода — add()
и remove()
. Методът add()
увеличава променливите на екземпляра sum
и count
, а remove()
методът намалява променливите sum
и count
. И двата метода работят върху променливи на споделен екземпляр.
Локалните променливи съществуват, докато се изпълнява метод. Променливите на екземпляра на клас съществуват в обект на клас, докато този обект съществува. Ще научите подробности за обекти от клас в следващото ниво.
4. Статични променливи
Подобно на методите, променливите в класа могат да бъдат статични or нестатични. Статичните методи имат достъп само до статични променливи.
В ниво 11 ще анализираме структурата на статичните променливи и методи и вие ще разберете причините за тези ограничения.
За да направите статична променлива (променлива на класа), трябва да напишете static
ключовата дума в нейната декларация.
Статичните променливи не са обвързани с обект or екземпляр от класа, в който са декларирани. Вместо това те принадлежат към самия клас. Ето защо те съществуват, дори ако не е създаден нито един обект от класа . Можете да се обърнете към тях от други класове, като използвате конструкция като:
ClassName.variableName
Пример:
Код | Променлива видимост |
---|---|
|
|
В горния пример създадохме отделен Storage
клас, преместихме променливите count
и sum
в него и ги обявихме за статични . Публичните статични променливи могат да бъдат достъпни от всеки метод в програма (и не само от метод).
GO TO FULL VERSION