Java Programlama Interface ( Arayüzler ) Kitap Örneği Kodları Interface_Kitap_Ornek.java Bilimkurgu.java Macera.java Polisiye.java IOzellikler.java [crayon-5becc1e2c6927204070569/] [crayon-5becc1e2c693c780586792/] [crayon-5becc1e2c6944791870857/] [crayon-5becc1e2c694c697781167/] [crayon-5becc1e2c6954935131627/] Genişletilme Özelliği Kodları Interface_Genisletilme_Ozelligi.java ICanli.java IHayvan.java ISurungen.java Tavsan.java Timsah.java [crayon-5becc1e2c695f919767826/] [crayon-5becc1e2c6967503694397/]
[crayon-5becc1e2c696e702155699/] [crayon-5becc1e2c6975403962455/] [crayon-5becc1e2c697c309469147/] [crayon-5becc1e2c6983792935047/] İç İçe Arayüz Kullanımı Calistir.java IArayuz1.java [crayon-5becc1e2c698a884043398/] [crayon-5becc1e2c6992312212470/] Hazırlayan : Muhammed Şamil Özer Kaynakça: Kodlab Yeni Başlayanlar İçin JAVA 8 Java da Soyut (Abstract) Sınıflar ve Metodlar Merhaba arkadaşlar bu yazımızda Java da soyut(abstract) kavramına değineceğiz. Nesneye yönelik programlamada, sınıfları miras bırakırken bazı metotların içeriğinin farklı olmasını isteyebiliriz veya bir üst sınıfa tanımladığımız ortak metot, sınıfı miras bırakacağımız alt sınıfların bazılarının ihtiyacını karşılamıyor olabilir.bu gibi
durumlarda soyut kavramını kullanacağız. Soyut sınıflarda amaç, nesne türetirken şablon oluşturmaktır. Soyut sınıfta tanımlanan şablon, bu sınıfı miras alan alt sınıflarda override edilerek yeniden tanımlanır. Örnek olarak linux dağıtımlarından olan arch linux ve ubuntuyu düşünelim. Örnek olarak verdiğimiz nesnelerin ortak özellikleri linuxun dağıtımı olmasıdır. Farklarına ise basit olarak sürüm numaralarını verebiliriz. Yani linux isminde bir sınıf tanımlasaydık bu sınıfı miras alacak arch linux ve ubuntu sınıfları için sürüm numarası yazdırabilecektik. Bu tip örneklerde üst sınıfı ve alt sınıflar için farklı olacak metodu, soyut tanımlarız. Alt sınıflarda ise soyut tanımladığımız bu metodu override ederek yeniden tanımlarız. Bir metot soyut olarak tanımlandıysa, o metodun olduğu sınıf mutlaka soyut olarak tanımlanmalıdır. Bu sınıflara oluşturulan metotlardan en az birinde metot gövdesi yazılmaz. Soyut sınıftaki soyut metot, alt sınıflarda override edilmezse hata ile karşılaşırız. Soyut sınıflara ait nesne oluşturulamaz. Yukarıda bahsettiğimiz linux hiyerarşisiyle ilgili örneğimizi yapalım. Java da bir sınıfı metodu soyut yapmak istiyorsak abstract anahtar kelimesini kullanılır. Örneğimizde üst sınıf(super-class) linux, alt sınıflarda(sub-class) ubuntu ve arch linuxtur. Yani ata sınıf linux çocuklarda ubuntu ve arch linux olarak düşünebiliriz.
Şekilde soyut paketinin altında class larımızı oluşturduk. [crayon-5becc1e2c8323766531975/] Ata sınıfımız olan linux u soyut bir hale getirdik. [crayon-5becc1e2c833b643939236/] Değişkenlerimizi private olarak tanımladık ve bu değişkenlere ulaşabilmek için getter ve setter metodlarını kullandık. Kısaca kapsülledik. [crayon-5becc1e2c8346512939841/] Soyut sınıfımızın içinde en az bir adet gövdesi olmayan soyut bir sınıf yazmamız gerekiyor. Soyut sınıfımızı tanımını yaptıktan sonra alt sınıfların kodlamasına geçelim. [crayon-5becc1e2c8350235938008/] [crayon-5becc1e2c835b838319437/] Linux sınıfından ubuntu ve archlinux u kalıttıktan sonra ; Linux sınıfında yaz isimli soyut bir metodu, alt sınıfı olan arch linux ve ubuntu da override işlemi yaptık. Alt sınıflara özgün değişkenler tanımladık. Yapıcı metot oluşturup, getter ve setter metotlar tanımladık. Şimdi son olarak tek yapmamız gereken Main metodumuzda sınıflarımızı çağırmak. [crayon-5becc1e2c8366010344741/] Linux sınıfımız soyut bir sınıf olduğundan dolayı; [crayon-5becc1e2c8371377060662/] olarak nesne oluşturamadık. Ancak kalıttığımız sınıfları kullanarak linux sınıfında istenilen değişkenlere ulaştık. Ek bir metot tanımlayıp oluşturduğumuz nesneleri metoda atadık.
yaz() metodu override edilerek çalıştırıldı ve seri numarası ve çıkış yılı ekrana bastırıldı. Kısaca soyutlandırmanın ne işe yaradığından bahsedelim. Bu sınıflar genellikle nesneler arasındaki ortak özellikleri ve metodların bir üst sınıfta toplanarak kod tekrarını önlemek ve kodu diğer sınıflardan soyutlayarak değişim etkisini en alt oluşturulan yapılardır. seviyeye indirmek için Proje Kodları İçin Tıklayınız Yazar : Ömer Can ESKİCİOĞLU KAYNAKLAR : Kodlab Yeni Başlayanlar İçin Java 7 Udemy Emre Altunbilek Java Constructors (Yapılandırıcılar) Yapılandırıcılar bir metod çeşitidir ve oluşturulan nesnenin varsayılan durumunu belirler. Yapılandırıcı metodlar nesne oluşturduğumuz anda çalıştırılan metotlardır. Herhangi bir
geri dönüş tipi yoktur. Yapılandırıcı metodların en önemli özelliklerinden biri nesne oluşturulduğu anda, bu yapının otomatik olarak çağrılıyor olmasıdır. Yapılandırıcı metodlar, new anahtar kelimesi yardımıyla yeni bir nesne oluşturulduğunda otomatik olarak çalıştırılırlar. Bu metodların adı, içerisinde bulunduğu sınıfın adı ile aynı olmak zorundadır. Yani yapılandırıcı metodları diğer metodlardan ayırabilmek için metodun ismine bakmak yeterlidir. Sınıflarda yapılandırıcı metod olması zorunlu değildir. Eğer yapılandırıcı metod kullanılmazsa, derleyici sınıf adıyla aynı ada sahip ve parametre almayan boş bir yapılandırıcı metod olduğunu varsayar. Yapılandırıcı metodlar new operatörü ile birlikte çalışır. Yapılandırıcıların erişim belirteci public olmalıdır. Yapılandırıcılar bellekte nesneye bir yer ayrılmasını sağlarlar. Yapılandırıcılar her çağrılışlarında yeni bir nesne oluştururlar. Sınıf tanımlandığında isim sonuna () konulur. Bu yapılandırıcının çağrıldığı anlamına gelir. Bir sınıf birden fazla yapılandırıcıya sahip olabilir. Yapılandırıcılar varsayılan olarak parametre almazlar. Parametre alabilmeleri için yeni bir yapılandırıcı tanımlanmalıdır. Varsayılıan bir yapılandırıcı örneği; [crayon-5becc1e2c9903788661785/] Parametre alan bir yapılandırıcı örneği; [crayon-5becc1e2c9918841719598/] Örnek :
[crayon-5becc1e2c9924194707282/] Ekran Çıktısı: Hazırlayan: Ayşe Yıldırım Erişim Belirleyiciler(Access Modifiers) Merhaba arkadaşlar bugünkü yazımızda belirleyiciler konusunu ele alacağız. Java da erişim Değişkenler, methodlar, sınıflar ve kısacası tüm tipler erişebilirlik seviyesine sahiptirler. Bu erişebilirlik seviyesi, ilgili tiplerin bulunduğu sınıflardan çevresine olan erişim ve etkisini belirler. Erişim belirleyiciler; değişken, method ve sınıf tanımlarken kullanılır. Bu kavram ile istenilen değişken, method veya sınıf ulaşılabilir veya engellenebilir. Yani tüm tiplerin erişimi çeşitli seviyelerde kısıtlanabilir. Java projelerinde bir class ta oluşturduğumuz verilerde değişkenler global değişken olarak tanımlanmış ise oluşturulduğu class ta erişilebilir eğer bir method içerisinde oluşturulmuş ise oluşturulduğu method da erişilebilir Erişim belirleyiciler sayesinde başka sınıftan hatta başka paketten erişim sağlanabilir. Erişim belirleyiciler 4 tanedir.
Public Private Protected Friendly Public Public erişim belirleyicisine sahip olan method ya da değişkenler sınıf içerisinden,sınıftan oluşturulan nesneden ya da sınıftan oluşturulmuş olan sınıf ve sınıflardan erişime açıktır.aynı zamanda paket içerisinde ve dışından da ulaşıma açıktır.bu tür değişken veya methodlara erişimin açık olduğu gibi değişkenlerin değerlerini çekmek veya değiştirmek de mümkündür. Bu nedenden dolayı yaptığımız projede genelde değişkenleri public olarak tanımlamamız tercih edilmez eğer kullanıcının veriyi görmesi veya işlem yapması gerekiyorsa getter ve setter methodları ile erişimine izin verilir Private Private erişim belirleyicisine sahip method veya değişkenlere sınıftan oluşturulmuş nesnelerden, alt sınıflardan erişim yapılamaz.bu değişken veya metodlar sadece sınıf içerisinden erişime açıktırlar, ama sınıfın erişim belirleyicisi private olamaz. [crayon-5becc1e2ca237414690253/] üst tarafta tanımlanan islemler classı public olan doğru fakat private olarak tanımlanan yanlıştır.çünkü classlar private olarak Tanımlanamazlar. Protected Protected anlam olarak korumalı,korunan demektir. Yani siz protected i bir method veya kullanacağınız bir değişkenin
önüne koyarsanız artık belirttiği method ve değişken korumalı olur. Protected in unutmamamız gereken bir kuralı var. O da sınıfların önüne getiremiyoruz. Değişken yada method korumalı olduğundan sadece alt yani extend sınıflardan ve aynı pakette içerisinde bulunan sınıflardan ulaşılmasına izin verir. Sadece buralarda kullanabilirsiniz. Friendly Bu erişim belirleyicisi aslında bir anahtar kelimeye sahip değildir. Yani herhangi bir erişim belirleyicisi kullanılmadığı zamanda, varsayılan olarak bu erişim belirleyicisi yer alır. Global alanlar, metodlar ve sınıflar bu erişim belirleyicisine sahip olabilir. Bu erişim belirleyicisine sahip alanlar, aynı paket içerisindeki sınıflardan erişilebilir. Ancak diğer paketler içerisinden erişimi mümkün değildir. Protected farklı olarak protected aynı pakette olmasalar da extends ederek yani ulaşmak istediğimiz sınıfını özelliklerini kalıtarak kullanabilir fakat bu friendly de mümkün değildir. Erişim Belirleyici Public Protected Paket içi Erişim Sınıf İçin Erişim Paket Dışından Kalıtımla Erişim Paket Dışından Erişim Evet Evet Evet Evet Evet Evet Evet Hayır
Friendly Private Evet Hayır Evet Evet Hayır Hayır Hayır Hayır Aşağıda örnek kodlar ile yazımızı sona erdireceğiz. üst tarafta erişim belirleyicisi adlı bir class oluşturduk bu classta publicerisim,protectederisim ve privateerisim adında
3 tane method oluşturduk ve bunları sırasıyla yukarıda da gördüğümüz gibi sırasıyla public,protected ve private erişim belirliyeciler ile oluşturduk Daha sonra bunları Main de çağırmak için erisimbelirleyici sınıfından bir nesne oluşturarak bunları main de çağırmayı denedik ve sonuç olarak aynı pakette olduklarından dolayı public, protected te nesne sayesinde main deyazdırdık fakat privateerisim methodunu private erişim belirliyecilerinden oluşturduğumuzdan dolayı hata aldık. https://youtu.be/vskcaqoqotm Sunuma Buradan Ulaşabilirsiniz.. KAYNAKLAR http://www.baskent.edu.tr/~tkaracay/etudio/ders/prg/java/ch11/ accessmods.htm https://www.mobilhanem.com/temel-java-dersleri-erisim-belirley iciler/ http://www.projehocam.com/javada-erisim-belirtecleri-veri-turl eri-operatorler/
ANDROİD STUDİO APK İMZALAMA VE İMZA OLUŞTURMA APK NEDİR? Android Package Kit sözcüklerinin kısaltılmışıdır.apk,android uygulamalarını dağıtmakta ve yüklemekte kullanılan bir formattır. APK dosyası, cihazınızda yüklemeye yapmak için gerekli tüm öğeleri barındırır. Google Play Store dan indirdiğimiz oyun yada uygulama, cihazımıza APK olarak yüklenir. Android cihazlarda varsayılan olarak yüklü halde gelen Google Play servisleri, yüklenen bu APK ların sürekli olarak yeni sürümlerini ve güncelleme durumlarını denetler. Yani Google Play Servisleri uygulaması da bu APK dosyasını denetleyerek size uygulamanın güncel olup olmadığını bildirim olarak belirtir. APK Dosyası Nasıl Yüklenir? 1. Cihazınızın Ayarlar menüsüne giriş yapın. 2. Ayarlar penceresindeki Güvenlik bölümüne giriş yapın. 3. Güvenlik ayarları sayfasında yer alan Bilinmeyen kaynaklar seçeneğini işaretleyin. 4. Artık APK uzantılı dosyaları çalıştırarak Play Store haricinden oyun ve uygulama yükleyebilirsiniz. Not: İnternetten indireceğiniz APK dosyaları.rar veya.zip uzantılı dosya arşivlerinde barınıyor olabilir. Bu dosyaları çalıştırmak için RAR for Android uygulamasını cihazınıza yüklemelisiniz. ANDROİD STUDİO APK İMZALAMA VE İMZA OLUŞTURMA
Android projesini geliştirdiniz. Emülatör de veya doğrudan Android li cihazınızda test ettiniz. Uygulamanızın başka bir cihazda kullanılmasını istiyorsanız,.apk uzantılı bir dosyaya çevirmeniz gerekmektedir. Apk dosyasını bir nevi.exe uzantılı dosya olarak düşünebilirsiniz.android cihazın hafıza kartına veya bluetooth gibi aktarım yoluyla dosyayı başka cihazlara aktarıp kurulum yapmak suretiyle uygulamayı çalıştırabilirsiniz. Şimdi nasıl.apk uzantılı dosya oluşturacağımıza geçelim; Öncelikle Build->Generate Signed APK diyoruz. Sonra module adımızı seçiyoruz.
Sonrasında next deyip gelen ekranda eğer önceden oluşturduysak Choose Existing diyoruz. Eğer oluşturmadıysak Create new butonuna tıklıyoruz.ben Create new ile devam ediyoruz.
Karşımıza yukarıda boş form geliyor. Dataları düzgün bir şekilde dolduruyoruz. İstenilen datalar ise şu şekilde: Key Store Path: Oluşturulan imzayı kaydedeceği yer. Password: Keystore şifresi. Alias:Oluşturacamız dosyanın adı. Password:Az önceki belirlediğimiz şifreyi girebiliriz. Confirm: Şifre tekrar. Validity(years):Ne kadar geçerli olacağı Android 25 yıl belirlememizi önermiş. First And Last Name: Ad Soyad. Organization Unit:Şirketin Depertman adı. Organization:Şirket Adı. City or Locality:Şehir.
State or Province:İlçe diyebiliriz. Country Code:Ülke kodu. Evet gerekli alanları yukarıdaki gibi doldurduktan sonra Ok butonuna basıyoruz.
Bu sefer yukarıda boş gelen sayfanın dolu hali geliyor ve oluşturduğumuz imza seçili geliyor. Gerekli alanlara belirlediğimiz şifreleri girdikten sonra Next e basıyoruz.
Build Type relase seçip Finish e basıyoruz ve bir süre imzalamasını bekliyoruz. İmzalama işi bittikten sonra karşımıza aşağıdaki sayfa geliyor ve imzalı APK nın bulunduğu dizini açabiliyoruz.
Bu işlemlerin ardından artık yeni bir imzamız ve imzalı bir APK mız var. NOT:OLUŞTURDUĞUMUZ İMZAYI ASLA KAYBETMİYORUZ. İMZAYI KAYBEDERSEK UYGULAMAMIZI GÜNCELLEYEMEYİZ.BİR APK BİR İMZA İLE GÜNCELLENİP STORE A ATILDIKTAN SONRA GÜNCELLENMESİ İÇİN AYNI İMZA YI KULLANMAMIZ ŞARTTIR. AYNI ŞEKİLDE İMZANIN ŞİFRESİNİDE UNUTMUYORUZ.UNUTURSAK İMZAYI KULLANAMAYIZ.
MEHMET AKİF ERSOY ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ KADRİYE MELİKE AZBOZ melike.azboz@hotmail.com