Java'da paketler
Bell sınıfını kit adlı bir klasöre koyun; ilk satır package kit; olsun ve ding yazdıran static metot ring() yazın. O klasörün yanında — kit içinde değil — Lobby.java içinde main'den kit.Bell.ring(); çağırın. Üst klasörden derleyin ve java Lobby çalıştırın. Ekran bir satır göstermelidir: ding. Paket adı ile klasör adı uyuşur. Önde kit.Bell ile çağırmak bu sayfanın öğrettiği şeydir. import sözcüğünü sonraki sayfaya bırakın.
Dosyanın bildirdiği bir klasör adı
Şimdiye kadar her sınıf tek düz bir klasörde oturuyordu. Paket, sınıfları bir klasör adı altında gruplar. Dosyanın ilk satırı o adı söylemelidir: package kit;. Bell.java dosyası kit adlı bir klasörün içinde yaşamalıdır. Klasör ile package satırı uyuşmazsa javac şikâyet eder.
Önce kit klasörünü oluşturun. İçinde Bell.java oluşturun. İlk satır package kit;'tir. Sonra public class satırı public class Bell'dir. Burada eski bir Gate veya Tag sınıf adı bırakmayın. Bir static metot yazın:
public static void ring() { System.out.println("ding"); }
Metoda public koyun ki paket dışındaki bir sınıf çağırabilsin. Bell.java içinde main yoktur. Derlemeden önce kaydedin.
package kit;
public class Bell {
public static void ring() {
System.out.println("ding");
}
}
Lobby kit.Bell.ring çağırır
Lobby.java'yı üst klasörde oluşturun — kit klasörüyle aynı düzeyde, kit içinde değil. Public class satırı public class Lobby'dir. main içinde kit.Bell.ring(); yazın. Bu sayfada import kit.Bell; yazmayın. Çağrı için tam ad kit.Bell yeterlidir.
Lobby'yu main'i tutan sınıf olarak bırakın. Bu ders için main'i Bell içine koymayın. Access sayfasından kalan bir Pier dosyası hâlâ yakınlardaysa, bu ders için java Pier çalıştırmayın — üst klasörden derledikten sonra java Lobby çalıştırın.
public class Lobby {
public static void main(String[] args) {
kit.Bell.ring();
}
}
Hem Lobby.java'yı hem kit klasörünü tutan üst klasörden javac kit/Bell.java Lobby.java çalıştırın. Windows'ta aynı fikir kit\Bell.java ile de geçerlidir — javac'i paket klasöründeki dosyaya, sonra Lobby.java'ya yöneltin. Parantezler, süslü parantezler ve noktalı virgüller uyuşunca javac kendi satırını yazmaz. Sonra java Lobby çalıştırın — java Lobby.java değil, java kit.Bell de değil. Çalıştırma komutundan .java uzantısını çıkarın. main'i tutan sınıfı başlatın. Aynı komutlar, yollar kabuğunuzla uyuşunca Windows'ta ve macOS'ta çalışır.
Program bir satır yazıp durmalıdır: ding. Sizden yazmanızı istememelidir. Terminal klavye girişi bekliyorsa, eski bir alıştırmadan kalan bir nextLine çağrısı hâlâ bir dosyadadır. O çağrıyı silin; Lobby'da kit.Bell.ring();'i, Bell'de package kit;'i tutun.
Çalıştırmayı bir kez adım adım izleyin. Java Lobby.main'den başlar. kit.Bell.ring() çağrısı kit paketindeki Bell sınıfını bulur ve static metodu çalıştırır. Gövde ding yazdırır. Ekran ding gösterir. Başka bir şey yazılmamalıdır. 9 veya ok görürseniz hâlâ önceki sayfadan eski bir Pier veya Yard programı çalıştırıyorsunuzdur.
Bell.java, dosya hâlâ package kit; derken Lobby.java'nın yanında kit klasörü olmadan duruyorsa javac reddeder. Dosyayı kit içine taşıyın. Paket dışından kit. olmadan Bell.ring(); çağırırsanız, bu sayfada javac kısa adı görmez — kit.Bell.ring(); tutun. Paket adı, sonraki sayfa import'u öğretene kadar türün tam adının parçasıdır.
Klasör ve package satırı yan yana
Kısa bir tablo uyuşmayı net tutar.
📊 folder vs package line
| Parça | Bu sayfada |
|---|---|
| klasör adı | kit |
| Bell.java'daki ilk satır | package kit; |
| Lobby'dan çağrı | kit.Bell.ring(); |
| import | bu sayfada değil — sonraki ders |
Tablo yalnızca bir hatırlatmadır. Tuttuğunuz yazılı parçalar Bell dosyasındaki package kit;, kit altındaki dosya yolu ve Lobby'daki kit.Bell.ring();'dir. |
access ve düz klasörle karşılaştırma
Access sayfasında Gate ve Pier private bir alanla aynı klasörü paylaşıyordu. O hâlâ çalışır. Bu sayfa bir paket klasörü ve bir package satırı ekler. Kalmış bir Gate g = new Gate(9); g.show(); demosu başka bir derstir. Bu sayfa için kit/Bell.java, Lobby.java ve kit.Bell.ring(); tutun.
Küçük demolarda hâlâ düz klasör kullanabilirsiniz. Bu ders, sınıfın önünde adı görmeniz için paketi seçer. Bu sayfada aynı Lobby demosunda g.show() ile kit.Bell.ring()'i karıştırmayın. Tek net yol yeterlidir: package satırı, uyuşan klasör, Lobby'dan tam çağrı.
Yalnızca kit içinden değil, üstten derleyin
Derlerken ve java Lobby çalıştırırken üst klasörde kalın. cd ile kit içine girip classpath'i düzeltmeden Lobby'yu oradan çalıştırmaya kalkarsanız, dersin kısa yolu bozulur. Bu sayfa için üst klasörü çalışma klasörü tutun. İyi bir derlemeden sonra Bell için .class dosyası kit altında, Bell.java'nın yanında görünmelidir.
Ekran 9 veya ok gösteriyorsa hâlâ eski bir Pier veya Yard programı çalışıyordur. java Lobby'ya geçin. javac kit.Bell'i bulamazsa, klasör adı yazımını ve package kit; satırını karakter karakter kontrol edin.
import için ne kalır
Bu sayfa her çağrıda tam ad kit.Bell'i yazar. Sonraki sayfa — import — import kit.Bell;'in Lobby'da kısa ad Bell yazmanıza nasıl izin verdiğini gösterir. Burada tam adla kalın. Bu sayfada import uydurmayın; zaten bilmiyorsanız ders hedefi paket klasörü ve kit.Bell.ring();'dir.
Eski Gate.java veya Pier.java dosyaları hâlâ üst klasördeyse, dokunmayın veya yalnızca derleme komutunu karıştırıyorlarsa silin. Bu dersten paket çiftini derledikten sonra java Lobby çalıştırın.
import'tan önce
Bell.java'yı kit klasörü altına package kit; ve ding yazdıran public static void ring() ile koyabilir, Lobby'dan import olmadan kit.Bell.ring(); çağırabilirsiniz. Üst klasörden derleyin ve java Lobby çalıştırın. Ekran ding gösterir. Paket adı klasörle uyuştu. Sonraki sayfa import'tur; bir import satırından sonra kısa ad yeterlidir.
package kit;'i Bell'de ilk satır tutun. Dosyayı kit içinde tutun. Çağrıyı kit.Bell.ring(); tutun. Bu üç alışkanlık, ilerlemeden önce bu sayfanın kontrol noktasıdır. Üst klasörden ekran ding gösterdiğinde, paket düzeni bu ders için işini yapıyordur.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek