Junior — Middle
Bir sınıfın özel metodunu tanımının dışından çağırmak mümkün mü?
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da, bir sınıfın özel (private) metodunu doğrudan onun tanımının dışından çağırmak mümkün değildir, çünkü private belirteci erişimi yalnızca sınıf içinde sınırlar.
Ancak, yansıma (reflection) kullanılarak, bu sınırlamalara rağmen özel metodlara erişip çağırmak mümkündür. Örneğin:
import java.lang.reflect.Method;
class MyClass {
private void secret() {
System.out.println("Özel metod çağrıldı");
}
}
public class Test {
public static void main(String[] args) throws Exception {
MyClass obj = new MyClass();
Method method = MyClass.class.getDeclaredMethod("secret");
method.setAccessible(true); // erişim kısıtlamasını kaldır
method.invoke(obj); // özel metodu çağır
}
}
Bu şekilde, normal çağrı mümkün değildir, ancak yansıma bu kısıtlamayı aşmaya olanak tanır.