CodeBlanks Logo Icon CodeBlanks

native metot

native anahtar kelimesi ile yerel metot tanımını öğrenirsin.

native anahtar sözcüğü

native anahtar sözcüğü, bir metodu Java dışında bir dilde (çoğunlukla C veya C++) uygulandığını işaretler. Böyle bir metodun gövdesi yoktur; noktalı virgülle biter. Çağrı sırasında JVM, JNI (Java Native Interface) üzerinden yerel koda köprü kurar.

native metotlar işletim sistemi çağrıları, eski C kitaplıkları veya donanım erişimi gerektiğinde kullanılır. Modern Java 21'de birçok durum için FFM API tercih edilir; yine de JNI hâlâ yaygındır.

native bildirimi

native metot şöyle bildirilir: native dönüşTipi metotAdı(parametreler);. Gövde yoktur, sadece noktalı virgül. native, static ile birlikte de kullanılabilir. Metot bir sınıfa ait olmalıdır; bağımsız fonksiyonlar Java'da yoktur.

Örnek: class NativeOps { native int sum(int a, int b); }. Bu metot çağrılmadan önce ilgili yerel kütüphane System.loadLibrary ile yüklenmelidir; yoksa UnsatisfiedLinkError fırlatılır.

Uygulama native metot bildir ve işaret yazdır

class NativeOps tanımla; native int sum(int a, int b); metodu olsun (gövdesiz). Main sınıfının main metodunda System.out.println("native declared"); yazdır. native metodu çağırma; yalnızca bildir.

Başlangıç kodu

Main.java
// NativeOps sınıfını tanımla: native int sum(int a, int b)

// Main sınıfını tanımla ve main içinde native declared yazdır

Örnek çözüm

Main.java
class NativeOps {
    native int sum(int a, int b);
}

public class Main {
    public static void main(String[] args) {
        System.out.println("native declared");
    }
}

Beklenen çıktı

native declared

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 native metotların belirgin özelliği nedir?

  • Yalnızca soyut sınıfta bulunur
  • Gövdesi yoktur, başka dilde uygulanır Doğru cevap
  • Sadece static olabilir
  • Otomatik test edilir

Açıklama: native metot gövde içermez; uygulama C veya C++ tarafında yazılır.

2 native metot bildirimini tamamla

Soru
class NativeOps {
    native ____(int a, int b);
}
Cevap
class NativeOps {
    native int sum(int a, int b);
}

Açıklama: native int sum(int a, int b); bildirimi tamamlanır.

3 JNI kavramlarını eşleştir

Kavram Anlamı
native Gövdesiz metot işareti
System.loadLibrary Yerel kütüphane yükler
JNIEnv C tarafı arabirim
javac -h Başlık üretir

Uzman bölümündeki tüm dersler