Java'da scope ya da Türkçe karşılığıyla kapsam, bir değişkenin, metotun veya sınıfın erişilebilir olduğu ve yaşam süresinin tanımlandığı alanı ifade eder. Scope, bir değişkenin nerede oluşturulduğunu, nerede kullanılabileceğini ve ne zaman bellekten silineceğini belirler¹².
Java'da temelde iki tür scope bulunur:
Local Scope (Yerel Kapsam): Bir değişken veya nesne bir metot içinde veya bir blok içinde (örneğin bir
for
döngüsü içinde) tanımlandığında, yalnızca o metot veya blok içinde erişilebilir ve kullanılabilir. Metot veya blok sona erdiğinde, bu değişkenlerin yaşam döngüsü sona erer ve bellekten silinirler².Global Scope (Genel Kapsam): Eğer bir değişken sınıf seviyesinde tanımlanmışsa, yani bir metot dışında ve sınıfın içindeyse, bu değişken genel kapsama sahiptir. Bu tür değişkenlere sınıfın her yerinden ve hatta sınıfın nesneleri oluşturulmadan da erişilebilir. Genellikle
static
anahtar kelimesi ile tanımlanırlar ve program çalıştığı sürece bellekte kalırlar².
Örnek olarak:
public class Example {
// Global Scope
static int globalVariable = 10; // Sınıf seviyesinde tanımlanmış
public static void main(String[] args) {
// Local Scope
int localVar = 5; // Yalnızca main metodu içinde erişilebilir
System.out.println(globalVariable); // Global değişkene erişim
System.out.println(localVar); // Local değişkene erişim
}
}
Bu örnekte, globalVariable
sınıf seviyesinde tanımlandığı için genel kapsamda ve localVar
main
metodu içinde tanımlandığı için yerel kapsamdadır. localVar
yalnızca main
metodu içinde yaşar ve kullanılabilir, main
metodu sona erdiğinde bellekten silinir. Ancak globalVariable
, programın herhangi bir yerinden erişilebilir ve program sona erene kadar bellekte kalır².
Scope kavramının doğru anlaşılması, kodun etkin ve hatasız bir şekilde yazılmasını sağlar ve potansiyel hataları önlemeye yardımcı olur².
Kaynak: Bing ile konuşma, 18.05.2024
(1) Java’da Hafıza Modeli 4 - Kapsam(Scope) - hasancelik.org. https://hasancelik.org/java-hafiza-yonetimi/Java-memory-models-scope/.
(2) Java'da Scope (Kapsam) Nedir? - Mehsatek. https://www.mehsatek.com/java-scope-nedir/.
(3) Java scope nedir? - Galmetsan.gen.tr. https://galmetsan.gen.tr/java-scope-nedir/.
(4) Spring Bean Scope Nedir? » CBT - Java. https://codingbytime.com/spring-bean-scope-nedir/.
Top comments (0)