Sobes.tech
Junior

Mis on ulatus (scope) programmeerimises?

sobes.tech AI

Vastus AI-lt

Vaadeldus määrab, kui kättesaadav on muutuja, meetodi või klassi teatud osa programmis. See kontrollib, kus saab kasutada nimetatud üksusi ja kus need lõpetavad olemasolu.

Java peamised vaadeldusvaldkonnad:

  • Block (plokk): piiratud sulgudega {}. Blokis deklareeritud muutujad on saadaval ainult selles plokis ja selle sees olevates plokkides.
  • Method (meetod): piiratud meetodi kehas. Meetodi parameetrid ja meetodi sees deklareeritud muutujad on saadaval ainult selles meetodis.
  • Class (klass): piiratud klassi kehas. Klasisiseseid liikmeid (välju) ja meetodeid saab kasutada igast kohast klassis. Nende kättesaadavus väljaspool klassi sõltub juurdepääsukorraldustest (public, private, protected, default).
  • Package (pakett): kehtib klassidele ja nende liikmetele (ilma juurdepääsukorralduseta). Saadaval igas samas paketis.
  • Global (globaalne): Java-s ei ole tõelist globaalse vaadeldusala nagu C++-s. Kõige lähem on public static final väljad klassides, mis on kättesaadavad kogu programmis.

Bloki vaadeldusala näide:

// Muutuja 'j' ei ole nähtav väljaspool seda bloki
{
    int j = 10;
    System.out.println(j); // Saadaval
}
// System.out.println(j); // Kompileerimisviga: cannot find symbol

Meetodi vaadeldusala näide:

public void myMethod(int parameter) { // 'parameter' on nähtav ainult siin
    int localVar = 5; // 'localVar' on nähtav ainult siin
    System.out.println(parameter); // Saadaval
    System.out.println(localVar); // Saadaval
}
// System.out.println(localVar); // Kompileerimisviga: cannot find symbol

Vaadeldusala aitab vältida nimede konflikte, hallata muutujate elutsüklit ja parandada koodi loetavust.