tiktok takipçi satın al tiktok beğeni satın al tiktok izlenme satın al instagram takipçi satın al instagram beğeni satın al instagram izlenme satın al instagram hikaye izlenme satın al instagram canlı yayın izleyici satın al twitter takipçi satın al twitter retweet satın al youtube abone satın al youtube beğeni satın al youtube izlenme satın al

oyun haberleri forum dailymotion video indir akıllı tv video indir pinterest video indir soundcloud video indir twitter video indir facebook video indir tiktok video indir tumblr video indir linkedin video indir izlesene video indir instagram video indir haberler gündem instagram türk takipçi satın al instagram takipçi satın al beğeni satın al tiktok takipçi satın al tiktok beğeni satın al takipçi satın al youtube izlenme satın al canlı yayın izlenme satın al izlenme satın al smm panel server tanıtımı film izle taban puanları instagram takipçi satın al backlink paketleri youtube video indir video indir 192.168.1.1 kıl çadır kıl çadır farmasi üyelik girişi instagram follower kaufen social crm instagram beğeni satın al beğeni satın al instagram takipçi satın al rafting instagram takipçi satın al instagram türk takipçi satın al instagram beğeni satın al facebook beğeni satın al twitter takipçi satın al twitter fav satın al twitter retweet satın al tiktok takipçi satın al youtube abone satın al youtube izlenme satın al takipçi satın al canlı tv izle mobil uygulama geliştirme firmaları epin sosyal medya bayilik paneli instagram panel pubg mobile uc valorant vp satın al oyun haberleri youtube video silme google haber kaldırma internetten haber kaldırma instagram takipçi satın al youtube mp3 dönüştürücü juul iqos cialis cialis 5 mg cialis 600 mg cialis 20 mg cialis fiyat cialis satın al cialis sipariş viagra viagra satın al viagra sipariş novagra novagra sipariş lines pişirme takımları küçük ev aletleri mutfak gereçleri ev tekstili aksesuar çeyiz setleri esnaf haberleri youtube video download youtube video indir sosyal medya bayilik paneli esnaf forumu takipçi satın al instagram takipçi satın al instagram beğeni satın al tiktok takipçi satın al seo seo ajansı maç izle apk indir minecraft forum tiktok takipçi satın al tiktok beğeni satın al tiktok izlenme satın al instagram takipçi satın al instagram beğeni satın al instagram izlenme satın al instagram hikaye izlenme satın al instagram canlı yayın izleyici satın al twitter takipçi satın al twitter retweet satın al youtube abone satın al youtube beğeni satın al youtube izlenme satın al forum irc forum bilgisayar forumu irc forum forum sitesi forum webmaster forum forum oyun forumu türk filmi izle film izle hd film izle macera filmleri komedi filmleri takipçi satın al clubhouse forum tiktok takipçi sohbet youtube abone haber son dakika haberler video indir aktüel ürünler bim aktüel a101 aktüel bitcoin satın al baklava instagram follower hack follower hack

Kullanıcı Tag Listesi

Sayfa 1/2 12 SonSon
6 sonuçtan 1 ile 5 arası

Konu: Javaya Hazırlanalım( part 1 )

  1. #1
    Alexander Graham Bell - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    13.03.2012
    Yer
    Cehennem
    Mesajlar
    9.009
    Bahsedildi
    4 Mesaj
    Etiketlenmiş
    0 Konu
    Rep Puanı
    10

    Standart Javaya Hazırlanalım( part 1 )


    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]

    Merhaba arkadaşlar;

    Günümüzde kullanılan programlama dilleri arasında, şahsi fikrime göre Java en iyi dil. Gerçek anlamda platform bağımsızlığı, zekice hazırlanmış yapısı, hemen hemen herşeyin desteklendiği kütüphaneleri ve yakında açık kaynak koda dönüşecek olmasıyla bundan daha iyi bir dil olduğuna inanmıyorum. Bu yüzden Java'yı, bu dile yakışır şekilde, olabildiğince sade ve bir o kadar da açıklayıcı anlatmaya çalışacağım. Kodlamaya girmeden önce, Java'da kod yazabilmek için gerekli herşeyin adım adım nasıl yapılacağını öğreneceksiniz. Compiler nasıl yüklenir; Java IDE'lerinden Eclipse nasıl kurulur, nasıl kullanılır sorularına bu yazıda cevap bulacaksınız.

    Öyleyse başlayalım:

    Java'nın çalışma prensibi...
    Java alışılageldik programlar gibi çalışmaz. Yazmış olduğunuz Java kodu derlendikten sonra, Bytecode'a çevrilir. Bytecode daha sonra JRE (Java Runtime Environment - Java Çalışma Ortamı) tarafından sunulan JVM (Java Virtual Machine - Java Sanal Makinesi) ile, hangi bilgisayarda kullanıyorsanız o yapıya uygun hale dönüştürülüp çalıştırılır. İşte bu sayede Java'nın platform bağımsızlığı sağlanmış olur. Yani temelde yazdığınız kodlar, direkt olarak makinede değil. Makine üzerinde kurulu olan sanal bir makine (JVM) tarafından çalıştırılır.

    Yeri gelmişken Java'nın fotokopisi C# için de birşeyler söyleyeyim. C# da platform bağımsızdır. Ama kullanmanız gereken platform 'de facto' Microsoft Windows'tur. C#'ta yazıp derlediğiniz kodu, Linux gibi bir platforma taşırsanız bu program çalışmayacaktır. Çünkü Microsoft Linux'a destek vermemektedir ve ürünlerinin hiçbirini de bu platformda çalıştırmamaktadır. Gerçi Novell'in önderliği ile Mono ve GNU'nun önderliği ile yürüyen DotGNU, C# programlarınızı Linux'ta da çalıştırmanızı sağlamaktadır. Ancak bahsetmiş olduğum gibi bu Microsoft'un desteklediği birşey değildir. Umarım bu söylediklerimden sonra, C#'ın Java'dan üstün olduğunu söyleyip, üzerime saldıranlar olmaz.

    C# son derece güzel bir başka dil olmasına rağmen, Java kadar uygun hâle gelebilmesi için yaygınlaşması gerekiyor. Sitemizin sonraki aşamalarında C# ile programlamaya da değineceğiz. Ama bu bazı gerçekleri değiştirmiyor. Neyse, devam edelim...

    Java'nın çalışma yapısını yukarda anlattım. Java ile yazılmış bir programı çalıştırmanız için Java Çalıştırma Ortamına gereksinim duyarsınız. Bu nedenle herşeyin başında, JRE (Java Runtime Environment) yüklemenizi öneririm. İkinci aşamada kuracağımız J2EE içersinde kendi JRE olmasına rağmen, tamamen bağımsız bir JRE kurmanız daha yerinde olacaktır. Çünkü test aşamalarında, standart bir JRE kullanmanız daha doğru sonuçlara neden oluyor. En azından kendi yaşadıklarımı düşününce, atladığım bazı noktaları tekrar yakalamamı sağladığını söyleyebilirim.

    JRE Kurulumu
    JRE (Java Runtime Environment) kurmak için

    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]
    adresine girin. Buradan işletim sisteminize uygun, versiyonu seçip indirmeye başlayabilirsiniz. JRE yüklemek için iki opsiyonunuz vardır. Birisi kullandığınız tarayıcı üzerinden yüklemeyle olurken, diğeri setup dosyasını indirip kurmanız şeklinde oluyor. Verdiğim linkteyse setup dosyasını inidirip kuruyorsunuz. Sonraki kurulumlarda kullanmak açısından, böyle daha iyi olacaktır. JRE'yi yükledikten sonra, Windows için command prompt'u, Linux için shell'i açarak 'java -version' yazın. Eğer karşınıza versiyon bilgileri gelmişse, JRE'yi sorunsuz yüklediniz demektir.

    JDK Tipleri
    Şimdi gelelim Compiler kısmına... Yukarda anlattığım kısım, sadece Java programlarını çalıştırmak içindi. Yazdığınız kodun derlenmesi içinse, bir compiler'a (derleyiciye) ihtiyaç vardır. Java desteklediği özelliklere göre SDK'larını (Software Development Kit) üçe ayırmıştır. Çok kısaca -belki de üstün körü demek daha doğru olur- bahsedecek olursam:

    J2ME(Java 2 Micro Edition): Mobil uygulamaları geliştirebileceğiniz bir ortam sunar. Kullanabileceğiniz fonksiyonlar ve özellikleri çalışacağı ortama göre (cep telefonu vb.) sınırlandırılmıştır.

    J2SE(Java 2 Standart Edition): Standart uygulamalar geliştirmek içindir.

    J2EE(Java 2 Enterprise Edition): Aklınıza gelebilecek hemen herşeyi kapsayan, çok katmanlı yapıda proje geliştirmenizi sağlamak için kullanılır. Servlet, JSP vb. birçok şeyi kapsadığı gibi, J2SE'nin da her özelliğini kapsar. Kısacası en üst düzey bu oluyor.

    Şimdi gelelim hangisini yükleyeceğimize... Ben yaptığım işlerde Servlet kullandığımdan dolayı J2EE'yi tercih ediyorum. Ama Servlet kullanmasaydım da onu tercih ederdim. Çünkü yarın öbür gün kullanmak isteyebileceğim şeyleri de içermektedir. Belki bu biraz bir boy büyük alalım, seneye de giyer mantığından kaynaklanıyor olabilir. Ona karar veremiyorum

    J2EE'yi Yüklemek
    J2EE'yi yüklemek için:


    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]
    adresine girin. ( Yazıyı okuduğunuz tarihte daha üst sürümler çıkabilir. Bu nedenle verdiğim linkler geçerliliğini yitirmiş olabilir. Böyle bir durumla karşılaşırsanız,
    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]
    adresinden, J2EE'nin en güncel versiyonunu zorluk çekmeden bulabilirsiniz. ) Vermiş olduğum adreste parça parça yükleme imkanı bulunmaktadır. Bence hiç uğraşmayın ve All-In-One Bundle seçeniğini yükleyin.

    Eğer Windows işletim sistemi kullanıyorsanız ve kurulum esnasında bir sıkıntı yaşarsanız (örneğin, kurulumun %10'da takılması gibi), panik yapmayın. Çözüm Linkine basın. Burada yazanları uygularsanız, sorun kalmayacaktır. Genelde bu Windows\System32 içersindeki productregistry dosyasından kaynaklanan bir hata oluyor. Verdiğim çözüm linkine basarsanız, çok daha güzel bir yönlendirmeyle sorununuzu çözebilirsiniz.

    Eclipse Kurulumu
    Yükleme bittikten sonra, artık Java programlarını da derleyebilir hale geleceksiniz. Ancak metin belgesinde yazıp, programı derlemeyeceğimize göre, bize bir IDE (Integrated Development Environment - Geliştirme Ortamı) gerekmektedir. Java'da kod geliştirmek için birçok geliştirme ortamı mevcuttur. Şu ana kadar ona yakın geliştirme ortamı kullanmış biri olarak, gözü kapalı Eclipse'i öneririm. Eclipse IBM firması kanalından çıkmış ve tamamen ücretsiz olan gördüğüm en iyi Java geliştirme ortamıdır. Open Source dünyasından inanılmaz bir destek görmektedir. Hemen hemen her konuda plugin bulabileceğiniz adresler mevcuttur.
    Lafı çok uzatmadan bu güzel geliştirme ortamının nasıl yüklenip kurulacağına gelelim. Eclipse kurulmaz Eclipse direkt indirilir, sıkıştırılmış olduğu dosyadan açılır ve çalışmaya hazırdır.

    Önce

    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]
    adresine girin. Burada yukardaki Download kısmından Eclipse'i indirebilirsiniz. İşletim sisteminize uygun versiyonu belirleyin. (Gerçi sistem uygun versiyonu belirleyip, direkt onu yüklemenizi önerecektir.) Sonra verilen linke tıklayıp, sıkıştırılmış boyutta olan programı indirin. Aşağı yukarı 100 MB olan sıkıştırılmış dosyayı indirip açıktan sonra, hemen kullanmaya başlayabilirsiniz. Extract ettiğiniz klasörde Windows için eclipse.exe diye bir çalıştırılabilir dosya göreceksiniz. Buna tıklarsanız Eclipse'i başlatırsınız. İlk başlatmada, size çalışma ortamınızı sorar. Çalışma ortamı (workspace) projelerinizin kaydedileceği ve yürüteleceği temel yerdir. Burayı istediğiniz şekilde belirtebilirsiniz.

    Bundan sonra karşınıza Eclipse'in karşılama ekranı çıkacaktır:


    Herşeyden önce Eclipse'te bazı ayarlar yapmamız gerekiyor. Üst menülerde bulunan Window'a basın. Açılan menüden en altta bulunan Preferences'a basın. Burada Eclipse'e ait hemen hemen bütün yapılandırmaya dair bilgi bulunmaktadır. Bizim yapmamız gereken ilk şeyse, Java Çalışma Ortamını tanıtmaktır. Bunun için yandaki ağaç yapısından Java'ya tıklayın. Çıkan alt menüden Installed JREs kısmına gelin.

    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]

    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]

    Ekranda gördüğünüz gibi Add kısmına basın.


    Karşınıza yeni bir ekran gelecektir. Bu ekranda JRE Name kısmına J2EE veya herhangi bir isim verebilirsiniz. JRE Home Directory kısmındaysa Browse'a basın. Diyelim ki J2EE'yi daha önce C:\Sun klasörü altına kurdunuz. O halde Browse'dan, önce Sun daha sonra jdk'yi seçmeniz gerekmektedir. Tamam'a bastığınızda, aşağıda jar paketleri oluşur. Başarılı bir ekran görüntüsü aşağıdaki gibi olacaktır:

    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]


    Bundan sonra tamam'a basıp bir önceki menüye dönüyoruz. Burada, J2EE adını verdiğimiz çalışma ortamının yanında ki tiki işaretliyoruz. OK'e basıp gerekli yapılandırmayı tamamlıyoruz. Artık proje geliştirmeye başlayabiliriz.

    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]

    Şu an en başa, karşılama ekranına döndük. Yeni bir projeye başlayabilmek için üst menüden File->New Project yolunu takip ediyoruz. Karşımıza gelen ekranda projemize bir isim veriyoruz. İleri dediğimiz anda projemiz oluşmuştur. Eğer direkt olarak çalışma alanına yönlendirilmediyseniz, Karşılama ekranını kapatmanız gerekebilir.

    Yanda olan proje menüsünde, proje adınızın görünüyor olması gerekir. Bunun üzerine sağ fare tuşu ile tıklayarak, New-> Class derseniz, yeni bir sınıf yaratabilirsiniz.

    Örnek bir uygulama için şöyle bir yol izleyelim. Projenizi gösteren klasör üzerine sağ tuşla tıklayın ve New-> Class kısmına basın. Oluşturacağımız sınıfa HelloWorld diyelim. Sonra oluşturduğumuz sınıfa aşağıdaki kodu yazalım:

    public class HelloWorld
    {
    public static **** main( String args[ ] )
    {
    System.out.println("Hello World!");
    }
    }

    Kodu çalıştırmaya gelince... Yukarda play tuşuna benzer bir simge göreceksiniz. Ona tıklayın. Run As'e gelin. Ve Java Application'i seçin. Aşağıdaki resimde görebilirsiniz:


    Daha basit bir yöntem için önce Alt + Shift + X tuşlarına basın. Sonra bunları bırakın ve J'ye basın. (Alt + Shift + X, J) . Yukarda yaptığımız işin kısayol tuşlarıya çalıştırılması da kısacası bu şekildedir.

    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]

    ------------------------------------
    ers 1 - Programlamaya Giriş


    Bu yazıda sizleri Java programlamaya yeni başlamış Eclipse(kodları yazacağımız IDE)’ini yeni yüklemiş Eclipse simgesine tıklamış ama ne yapabileceğini nereye kod yazacağını bilmeyen biri olarak görerekten bende sizinle beraber eclipse’imi açıyorum ve Öğrenmeye başlıyoruz.

    Burada size javaya giriş kapsamında bir kaç örnek kod yazıcam.Öcelikle Eclipse’i açıyoruz.Solda bulunan Package explorer sütunumuz var.Burda paketlerimiz tutuluyor.Bunu daha sonra ayrıntılı olarak söyleyeceğiz zaten. Şimdilik elimiz alışsın diye bir program yazmamız gerek.Evet package axplorer sutununa sağ tıklıyoruz New>New project diyoruz.Daha sonrada projemize bir isim veriyoruz.”BenimDünyam” ismini verelim mesela.Sonra OK’liyoruz.Artık Package Explorer sutunumuzda bir projemiz var.şimdi bu paketin içinde sınıf(Class)ımızı oluşturalım.Bunu oluşturmak için BenimDünyam projesine sağ tıklayıp New>Class’ ı seçiyoruz.Bunun ismini de ne koyalım? “Merhaba Dünyam” koyalım.Ayrı yazdım ve kabul etmedi.Bunu da öğrenmiş olduk.Sınıfa isim verirken birleşik bir kelime kullanmalıyız.Class yani sınıf( artık yabancı terim kullanmaya alışalım) adımızı koyduktan sonra enterlıyoruz ve artık sınıfımız oluşuyor.Farkında bile olmadan program yazmaya başladık bile.Şimdi aşağıdaki resimde aslında programlama bilenler için basit gelsede.Yeni başlayanlar çok şey öğrenicek.Bu kadar ayrıntıya girmem bilenler için komik geliyor olabilir ama temeli sağlam atmaları gerekiyor yeni başlayanların.

    Resimde kafamıza takılan yerleri anlattım.Sınıf adını da dosya adıyla aynı hale getirdikten sonra programımız çalışır hale gelicektir.Ben bu programı nasıl çalıştırcam diyorsunuz duyar gbiyim. Ctrl+f11 kısayolu ile çalıştırabilirsiniz.Ya da üst kısımdaki “run” kısmından halledebilirsiniz.
    Şimdi kafamıza “ya bu public ne static ne **** ne?” diye soru işaretleri olabilir.Olması da çok güzel birşey körü körüne öğrenmemiş olursunuz.Kısaca bunlardan söz edicem ilerde daha açık bir şekilde öğrenicez.

    public static **** main(String[]args
    {
    }


    Bu bizim main method(ana metod) umuz.Her programda bu main metot bulunmak zorunda.
    System.out.println(“”);
    Bu ise java dilinde çıktı vermek için kullanılır eğer ekrana bişeyler yazdırmak istiyorsak bu satırı kullanmak zorundayız.

    Yani biz ne yapacaksak bu main metot içinde mi yapmak zorundayız diye bir soru işareti oluşabilir tabiki de hayır.Başka bir sınıf daha oluştururuz ve bunun içinden diğer sınıftan bir yordam çağırabiliriz.Örnek üzerinde görsek daha iyi olucak.

    public class JavaDunyam
    {
    public static **** main(String[] args)
    {
    System.out.println("Java Dunayasina ilk adimimi attim galiba...");
    }
    public **** Deneme()
    {
    System.out.println("JavaDunyam içinden bir ses ver bana...");
    }
    }


    Bu bizim JavaDunyam sınıfımız diyelim.Bunun çıktısı ne olur.Tabiki de main metodun içini okur program.Main metodun içinde ne var?
    System.out.println("Java Dunayasina ilk adimimi attim galiba...");
    Sadece bu var.Ee alttaki Deneme isimli metodumuzu niye yazdık?tabiki de başka bir sınıftan bunu okumam için.Şimdi ayrı bir sınıf daha oluşturuyoruz.Sınıf olusturmayı öğrenmiştik bir projede yüzlerce sınıf olabilir.O yüzden yeni bir sınıf oluşturun ve ismini “Dıger” koyun.Ya da başka bi şey adı size kalmış.

    public class Diger
    {
    public static **** main(String[] args)
    {
    JavaDunyam jd=new JavaDunyam();
    jd.Deneme();
    }
    }


    Bakın ne yaptım? Diğer isimli bir sınıf oluşturdum.hemen ardından bir main metot tanımladım.

    JavaDunyam jd=new JavaDunyam();

    Bu da neyin nesi diyebilirsiniz.Burda ben bir nesne oluşturdum.Bu kod diyor ki: Buralarda biryerlerde JavaDunyam isimli bir sınıf var ve ben o sınıfın içindeki metotları kullanabilirim demek.Yani artık JavaDunyam sınıfının içine erişebilirim. Bu JavaDunyam nesnesinin ismini jd yaptık.Şimdi önceden yazdığımız Deneme(); isimli kodu kullanabiliriz.Çünkü Deneme isimli metotun içinde bulunduğu sınıfı tanımladık artık tanıyoruz. Jd.Deneme(); satırı bizi jd nesnesinin Deneme(); metoduna gönderiyor.

    Sanırım açıklık getirdim bu duruma.Elimden geldiğince basit anlatmaya çalıştım Kafanız biraz karışmış olabilir.Farklı farklı çıktılar verip elinizi alıştırın.Bir çok kez sınıf oluşturun hepsinin içinde metotlar yazın basit basit ve çıktı alın.


    Bu arada kimse de sormuyor “;” bunu biz niye koyuyoruz diye.Dil bilgisi dersinde görmüşüzdür.Biten cümlenin sonuna ne sonra gelir? Nokta. Bizde de böyle yani biz javacılar her satırın sonuna “;” koyarız.Bazen koymayız ama şimdilik koymucağımız durumları bilmiyoruz.Öğrendiğimizde zaten koymamamız gereken yerleri göreceğiz.

    Unuttuğum yerler inşallah yoktur.Biz de insanız sonuçta bütün herşey aklımıza gelmeyebiliyor.
    Umarım javacılar bütün bu dediklerimi uygular ve en önemli adımı atmış olurlar.
    Hadi kolay gelsin.

    Ders 2 - Herşey Kod Değildir!!

    Bu konuda Class mantığını anlatıcam yeni başlayan arkadaşlara.Class lara başlamadan önce Bilmemiz gerek bir kaç şey var. Java dilinin nasıl bir dil olduğu..Java dili bilindiği gibi OOP yani object oriented programming türkçe haliyle nesneye yönelik programlamadili.Nedir bu nesneye yönelik programlama dili.Düşünenler düşünüyor “ nesneye yönelik nesneye yönelik hani nesne? Yoksa nesne de mi bir bilgisayar terimi” Tabiki de hayır.Bu programlar yazılırken tamamen insan çevresi ihtiyac duyduğu araçlar yani insan ihtiyaçları düşünülmüş.Nesne dediğimiz ise biziz.Yani çevremizdeki herşey yaşadığımız alan. Ben size bunu uzun uzun anlatmak yerine mükemmel şekilde anlatmış bir hocamın yazısından alıntı yaparak bu bilgileri size sunmak istiyorum.Unutmayın ki iyi bir programcı da bu bizim geçtiğimiz yollardan geçti. Şimdi size o kısa yazıyı sunuyorum..

    Java'nın Tadı Sınıflarda Saklı
    Pazar sabahları ne yaparsınız? Peki bir bilgisayar programcısı olsanız ne yaparsınız? Muhtemelen, cumartesi gecesinin sabaha kadar süren çalışmalarından başınızı kaldıramadığınız için, bütün gün uyumak isteyebilirsiniz. Ben çoğunlukla ve düzenli olarak, İstanbul Bostancı sahilinde çok erken saatlerde yürüyüş yaparım. Sabah 6 ile 7 arası inanılmaz bir huzur bulurum burada. Bir yandan denizden gelen tertemiz iyotlu hava, diğer yandan sessizlik, martı seslerinin ahengi ve göz kamaştırıcı güzelliği ile İstanbul boğazının Marmara denizi ile kucaklaşması. Matematikçi olmamın bana verdiği kazanımlardan birisi, etrafta olup bitenleri son derece felsefik inceleyebilme yeteneği. Sizde bilirsiniz ki tarihin en ünlü matematikçileri mantık, sosyoloji, felsefe, psikoloji gibi bilimlerle hep yakından ilgilenmişlerdir. Onlardan birisi olmayı çok isterdim gerçekten.


    Herşeyden önce bir programcı pek çok zorlukla, hayatta karşılaştığından çok, programlarını yazarken karşılaşır. O nedenle, sağlıklı ve ruhsal açıdan huzurlu bir beden, onun bu zorlukları aşmasında en büyük yardımcıdır. Ben bu yürüyüşleri çoğunlukla kafamı boşaltmak, kendi dünyamda huzur bulmak ve gözümden kaçan ayrıntıları daha sağlıklı inceleyebilmek amacıyla yaparım. İşte bu sabahta o amaçla yapılan bir yürüyüşteyim.

    Adımlarımı attıkça, ciğerlerime dolan nefis iyotlu deniz havası daha sağlıklı düşünmemide sağlıyor. Etrafıma baktığımda, her türden nesneyi daha berrak sezinleyebiliyorum. Nesne! O o! Bu lafı bana kim söyletti? Nesne...Nesne...Gerçekten de şöyle bir durdum ve etrafıma bakındım. Her yerim , ben de dahil olmak üzere nesnelerden oluşmaktaydı. Evrenin sahip olduğu gizemi ve mükemmelliği kimse inkar etmez. Çağımız boyunca ve gelecektede pek çok teknolojik, endüstüriyel, matematik yaklaşıma ilham kaynağı olmuş sistematikler içerir. Bu düşünceler ile tekrar yürümeye başladığımda, nasıl olduysa bir anda kendimi bilgisayar dillerinin gelişimini düşünürken buluverdim. Basic, pascal, C, Fortran vesaire... Sonra tekrar durdum. Aklıma C++,Java,C# gelivermişti birden bire. Hepside nesneler ile uğraşan, nesneler üzerine kurulu yapılara sahipti. Hepside Nesneye Dayalı Programlama dillerindendi.

    Nesne kavramını, günümüz modern programlama dillerine kim yerleştirmiş ise eminimki benim gibi bir yürüyüş sırasında bunu yapmıştır diye düşünüyordum. Bir anda kendimi Yazılım Mimarları gibi düşünürken, ayağımı yere sürtüp tepe taklak tabir yerinde ise iki seksen yere uzandım. Allahın tokatı yoktur derler. Neyseki kendime gelmiştim. O adamların tırnağı bile olmak büyük bir onur olurdu sanırım. Evet sonuç itibariyle sabahları bu kadar erken yürümemin nedeni buydu. Tökezleyip düştüğümde etrafta kimsenin olmayışı...Sonuç itibariyle geriye dönüp baktığımda, hem programlama dillerinin nesneye dayalı hale gelmesi ile, yaşamımızın ekosistemini örnek alarak ne kadar büyük üstünlükler sağladığını düşünüyor, bir yandanda ne kadar uzağa yürümüşüm şimdi nasıl geriye dönecem diye veryansın ediyordum. Aklıma her zaman olduğu gibi parlak bir fikir geldi. Dönüşte çevremdeki nesnelerin programlama dillerindeki etkilerini düşünecektim.

    Çevremizde ne kadar çok nesne var. Çiçekler, böcekler, insanlar, arabalar, otobüsler, kuşlar, taşlar, kayalar...Bu liste o kadar kabarıkki saymaya kalkmak bile sonsuzlukla çarpışmak gibi bir şey olsa gerek. Her nesnenin belli bir takım özellikleri, işlevsellikleri ve hatta amaçları var. Bazı nesneler bir araya gelerek başka yeni nesnelerin doğmasına neden olurlarken onlara bir takım ortak özelliklerinide veriyorlar. Aynı insanların bir araya gelerek evlenmesi, çocuk sahibi olması ve çocuklarına kendi özelliklerinden bir takım kalıtımlar bırakması gibi. Bazı nesneler kendi içinde kapalı, sahip olduğu değerleri değiştirilemeyen ama gözlemlenebilen türden. Bazı nesneler ufak değişikliklere uğrayarak başka nesnelere ilham kaynağı olmuşlar. Bu çeşitlilik altındaki tüm neselerin ortak özelliklerini bir arada düşünmek ve bir kenara koymak onları bu ortak niteliklerine göre sınıflandırmaktan başka bir şey değil.

    Otomobilleri bir sınıf altında düşünebiliriz. Her otomobil 4 tekerlekli, motoru olan, ileri geri hareket edebilen, direksiyona sahip ve benzinle çalışan, gaza basıldığında viteste ise hareket eden, frene basıldığında duran ve bunlar gibi pek çok ortak özelliğe ve işleve sahip olan birer nesne. Ama bu sınıfa ait tüm nesneler bir birlerinden farklı olabileceği gibi birbirlerinin aynısıda olabilir. Otomobil firmalarının arabalarını düşündüğümüzde, hepsinin farklı özelliklere sahip ama temel işlevsellikleri neredeyse aynı olan nesneler olduklarını söyleyebiliriz. Hatta üretim hattından yeni çıkmış tüm gri renkli opel vectra 1.6'lar motor seri numaraları hariç birbirlerinin aynısı olan nesnelerden oluşan bir nesne koleksiyonundan başka bir şey değildir.

    İşte gerçek hayattaki nesnelerin bizler için anlamı ve önemi neyse, nesneye dayalı bir programlama dili içinde nesnelerin anlamı o derece önemlidir. Herşeyden önce, bu dillerde bütün kavramlar, nesnelere ve dolayısıyla bu nesneleri oluşturmak yada örneklemek için kullanılan sınıflara bağlıdır. Düşünün ki object sınıfı değilmidir C# dilinde ve hatta Java'da en üst sınıf. Java programlama dilide tam anlamıyla nesneye dayalı bir dil. Dolayısıyla nesneleri kullanan bir dil. Nesneleri, sahip oldukları özellikleri, değerleri ve işlevleri ile kullanan bir dil. Bu düşünceler eşliğinde geri dönüş yolunu tamamladım. Artık eve dönme vaktim gelmişti. Şu andan sonra yapılacak en güzel şey, eve gitmek sıcak bir duş almak ve Pazar sabahının gazetelerini okuyup güne merhaba demekti. Ama ne yazıkki böyle olmamıştı. İçimdeki korkunç öğrenme açlığı, gazete yerine Java ile ilgili kaynakları araştırmama neden oldu. Ama her zaman olduğu gibi yanımda sıcak bir kahvem vardı.

    Uzun süre camdan dışarı bakarak sınıfların yerini düşündüm ve onları daha iyi anlamaya çalıştım. Gerçektende Javada'da diğer nesneye dayalı programlama dillerinde olduğu gibi herşey sınıflar üzerine kurulu idi. Dolayısıyla sınıfları çok iyi kavramak programlama dilini öğrenirken yaşadığım süreçte çok ama çok önemliydi. Önemli olan sadece sınıfların nasıl yazıldığını öğrenmek neleri ihtiva edeceğini bilmek değildi. Sınıfları en uygun şekilde, en etkin ve verimli şekilde kullanabilmekte çok önemliydi. Söz gelimi, bu gün .net dilinde, veritabanlarındaki veriler ile çalışmak için inanılmaz kabiliyetli ve yetenekli sınıflar vardı. Java içinde bunların benzerlerini yazmak istememiz bu tip sınıfları tasarlamamız anlamına geliyordu. Veya veritabanlarından okuduğumuz veri satırlarını düşünelim. Bunları birer sınıf nesnesi olarak uygulamamıza yerleştirmek , işlemlerimizi dahada kolaylaştırmazmıydı. Veritabanına bağlanır istediğimiz satıra ait verileri uygun bir sınıf nesnesine aktarır ve bunları tekrar veritabanına gönderinceye kadar bağlı olmak zorunda kalmazdık. Aynı DataSet kavramı gibi. Ama daha sade, daha kolay ve belkide daha etkili.

    Elbette Java dilinde veritabanları ile ilgili ne tür işlemler yapabileceğimi ne tür kabiliyetlere sahip olduğumu şu an için bilmiyorum ama ileride bunları öğrenmek içinde can atıyorum. Ama şu an için yapacağım sınıfların nasıl oluşturulduğunu ve kullanıldığını anlamak olucak. Java dilini öğrenmeye devam ettikçe sanıyorumki sınıf kavramını çok daha iyi kavrayacağım. Gerçi, bu kavrama C# dilinden oldukça aşine ve hakimim. Ama Sun'ın belkide bilmediğim sürprizleri vardır bu konuda. Neyse deneyip göreceğiz. Normalde kendimce bu kadar çok konuşmam. Aslında daha az söz ve daha çok hareket taraftarıyımdır. Eeee atalırımız ne demiş; nerde hareket orda bereket. Tipik bir uygulamacı işte. O bakımdan makinemin başına geçip ilk sınıfımı yazsam iyi olucak sanırım.

    Hocamızın bu yazısının devamını koymayacağım çünkü ben bu konuda sadece söz ile iletişim kurmak istedim. Kod ile değil.Önce mantık olarak sevmeliyiz bu dili.
    Yukarda hocamızın da yazdığı gibi nesne yönelik programlamanın temelleri atılmış.Şimdi düşünelim etrafımızda herhangi bir cisim düşünelim. Ben eve şöyle bir göz gezdirdim. Karşımda 82 cm bir LCD tv gördüm.Şimdi bu bir televizyon.Bunu nasıl Class’a bağlıcak demeyin.Bakın şimdi nasıl bağlayacağım.Bu LCD televizyon bir sınıfım olsun benim.Bu sınıfın ismi LCD TV olsun.Yani etrafımdaki bir nesneye Programlama dilinde LCDtv ismini verdim.Benim televizyonumbu sınıfa ait.Ama olmayabilirdi de.Ya LCD olmasaydı LED olsydı ne olacaktı sınıfsız mı kalacaktı.Bakın günlük yaşamımızda LED tvler çıkmaya başladı bu da demek olabiliyor ki varolan her şeyin bir sınıfı vardır.Ben o LED tv yi de LEDtv isimli bir sınıfa koyarım kafamda. Bir çok çeşidi sınıflandırırım.
    Şimdi diyeceksiniz ee hepsi televizyon bunların LED de olsa televizyon LCD de olsa televizyon.E tamam bişey demedik zaten Java da karşı gelmiyor buna. İkisininde babası televizyon diyor. TELEVİZYON sınıfının içinde bunlar dallanmış ve kendi sınıflarını oluşturmuşlar. Televizyon sınıfı ,çamaşır makinesi sınıfı, buz dolabı sınıfı vesaire.Bunlarda Elektronik eşya sınıfının içinde dallanmış ve oluşmuş.böyle böyle hepsinin bir sınıfı var gerek alt alta gidiyor bu sınıflandırma gerek farklı farklı ama hepsinin bir sınıfı var.Ve herşeyin bir en üst sınıfı vardır değil mi.”Varlık” Herşey bir varlıktır değil mi.Yani her sınıf ne olursa olsun mesela Tvkumandası, bu da bir varlıktır değil mi.Java da da bu var.Her sınıfın Atası “Object” yani nesne sınıfı.Bakın doğamızla ne kadar da benziyor java.Doğada bulunup da Java programlama dilinde bulunmayan bir şey görmedim ben.
    Şimdi arkadaşlar sınıf kavramını biraz da olsa oturttuk Kısaca Bir sınıfın özelliklerinden bahsedip bitircem.Şimdi az önce biz sınıf saydık saydık saydık da kimse de demedi arkadaş bu sınıflar nedir içlerinde neler vardır.
    Sınıfların içinde neler var bakalım.Yine benim güzel LCDtv sınıfımı örnek vericem.Benim bu sınıfımın nesi var.İçinde neler var.Öncelikle bu televizyonumun bir boyu var , bir eni var, bir ağırlığı var tuş sayısı var her tuşun ayrı bir özelliği var, hatta Kumandası bile var!!
    Ee var da var.İşte sınıfımızın içinde bunlar var.Ben bir televizyon sınıfı oluşturmak istediğimde de bu sınıfın içini değerlerle doldurmalıyım özellikler atamalıyım bu sınıfıma.İşte biz bu sınıfa atadığımız değerlere değişken diyoruz.Biz ağırlık değişkenini, boy değişkenini en değişkenini direk kendimiz belirliyoruz.Yani bi bir televizyon yapıyoruz aslında.
    Sanırım konu burda kod yetmezliğine uğruyor yavaş yavaş.Bu yazıyı burda noktalamak istiyorum bidahaki anlatımda değişken tiplerini ve metodları anlatmayı düşünüyorum.Umarım açıklayıcı olmuştur. Hocama da yazısı için teşekkür sunuyorum.

    Kolay gelsin .. Java java java

    Ders 3 - Değişken veri Tipleri

    Bu yazı dizimizde kısa olarak değişken veri tiplerinden bahsedeceğim.Zaten uzatmanın anlamı yok tamamen bakıp aklımızda tutacağımız kullandıkça artık toplama çıkartma gibi gelicek bir konu.Neyse uzatmadan konuya gireyim.
    Biz bir iş başvurusuna gittiğimizde bize bir form verdiler.Formda doldurmamız gereken yerler ad: soyad: yaş: vs. Bu şekilde gider.ad gördüğümüz yere adımızı yazarız değil mi.Tutup da ad yerine 21 yazarsak Formu okuyacak kişi bunu anlamaz.Değişken veri tipleri de böyledir.Bir program yazarken sayısal verilere ihtiyaç duyarız değil mi.Mesela bir oyun kodlarken arabanın bir hızı vardır değil mi.bu da sayısal bir terimdir.Ya da karakter seçerken her karakterin bir ismi vardır ayrıyetten bu karakterimizin kilosu boyu ve yaşı vardır.
    Mesela bu karakterimizin yaşına 20 gibi bir tam sayı değeri diyebilirken boyuna 1 metre ya da 2 metre diyemeyiz bir buçuk metre ise 1.50 cm deriz.Yani ondalıklı bir sayı kullanırız.İşte programlama dilinde bunlara bizim dediğimiz gibi tamsayı ondalıklı sayı gibi kelimeler yerine bazı sözcükler verilmiş.
    Şimdi size onlardan bahsedeceğim.


    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]


    Yukarıdaki tabloda da görüldüğü gibi.4 tane tamsayı veri tipi,2 tane kesirli sayı tipi,1 tane karakter tipi, 1 tane de mantıksal veri tipi vardır.Şimdi bunları tek tek açıklığa kavuşturacağım.
    Tamsayı veri tiplerine şöyle bir bakalım.Alan büyüklüğü Byte dan başlıyor longa kadar artıyor.
    Neden böyle olduğunu az çok tahmin ediyorsunuzdur.Alan büyüklüğü artarsa içinde tutabileceği değer de artar.
    Mesela bir sayıyı Byte oalrak tanımlayacaksak. Ona -2^7 ile 2^7-1 yani -128 den 127 ye kadar değerleri verebiliriz.Ben programımda doğum yılını istiyorsam Byte’ı kullanamam çünkü 1985 gibi bir rakam girilcek ve bu rakam doğum yılına ait olucak.
    Değerler bu şekildedir.Bunların kullanım sıklığı genelde integer(int) veri tipi tercih edilir.Ama deneyimli bir programcı neyi nerde kullanıcağını bilir. Çünkü byte kullanabileceğin yerde sürekli int kullanırsan yazacağın program tabloda da görüldüğü gibi 8 kat fazla yer kaplıyor değil mi? İşte bu yüzden neyi nerde kullancağınız ilerde önemli olucak.Ben daha yolun başındağım hepsini kullanamıyorum bu sizin için de o kadar öenmli değil mantığını kavrayın yeter.
    Şimdi bu tamsayı veri tipiyle ilgili bir program yazıp bir SS ini alayım.

    Burada programımız çalışmadı. Nedenini de açıklamıştım Byte c değerine aralığı dışında bir değer atadım o yüzden.Bu şekilde değerleri değiştirip deneyebilirsiniz.
    Byte’ ın değer aralığını söyledim ama diğerlerini söylemedim.Onu şöyle hesaplayabilirsiniz. Byte 8 bit alan kaplar, short 16 bitlik , int 32 bitlik. -2^(n-1) den başlayıp +2^(n-1) -1 e kadar gider.

    Tam sayı veri tiplerini anladığımıza göre şimdi kesirli sayı tiplerini şöyle bir özet geçelim.
    Kesirli sayı bildiğimiz gibi ondalıklı 25.6 ya da 98.658 gibi sayılardır.Bu değerleri ben int,byte , short gibi değerlerle gösteremem. Bunların da kendi değerleri vardır.Bunlar double ve float dır.
    Şimdi bir kod parçacığıyla olan biteni açıklığa kavuşturacağım.Ama bu kod parçasında sizin görmenizi isteyeceğim bir şey daha yapacağım.Bakalım..

    Resimde yeterli şekilde anlattım umarım.Kaçırdığım yerler olabilir biz de insanız sonuçta.
    Şimdi elimizde ne kaldı.Sadece char ve boolean.Bunları da anlatıp bitirmek istiyorum.
    Char nedir? Şimdi tamsayıları ondalıklı sayıları gördük ama char sayı değildir arkadaşlar karakter dizisidir.
    “a” bir karakterdir mesela “f” de bir karakterdir.
    Ve javada şu şekilde gösterilir.


    Char MyCharacter = ‘a’;




    Tek tırnak arasında belirtilir.

    Şimdi geldik boolean veri tipine.Bu önemli bir tiptir.Önce sözel olarak anlatıcam sonra bir kod göstericem.
    Şimdi boolean 2 tane değer döndürür.Doğru ya da yanlış yani true ya da false.
    Bilgisayar için bir şey ya True dur ya da False dur. Şimdi aslında biraz düşününde Loops konusunda anlatmam daha iyi olur bu true false kavramını.Ama kullanımını altta vereyim kullanımını bilin siz.



    Boolean MyBoolean = true;



    Bu kodu yazdıktan sonra MyBoolean ifadem true değerini alır. Sayı değil de true ya da false işte
    -------------------------------
    – IF – ELSE IF – ELSE Şartlı İfadeler :
    Java Derslerimize devam ediyoruz..

    Bu makalede JAVA Programlamada , Şartlı ifadeler olarak bilinen (IF – ELSE IF – ELSE ) kavramlarını anlatacağım.
    ŞARTLI İFADELER Nedir ?

    Yazdığımız bir programı dışarıdan gelicek durumlara yada içeride oluşabilecek durumlara göre şu böyleyse şöyle ol, yada öyleyse böyle ol demektir kısaca.

    Örneğin iki değişkenimiz olsun , a ve b isimlerinde ve değerleride ikisinin 10 olsun.

    yani a =10 ; b = 10 => if ( a==b) //böyle ol..eşittir yaz vs..

    Tabi yukarıdaki durum mantıksal olarak yazdığım bir kod örnek olması açısından,javada kullanımı şu şekilde :

    [cc lang='java' ]public class IlkProgram {

    public static **** main(String args[]){

    int a = 10;
    int b = 10;

    if (a > b){
    System.out.println(“a değişkeni b değişkeninden büyüktür”);
    }else if ( a == b){
    System.out.println(“a ve b değerleri birbirine eşittir”);
    }
    else {
    System.out.println(“yukarıdaki her 2 duruma uymayan durum diyelim.”);
    }

    }[/cc]

    Test için a ve b değerlerini değiştirerek programı çalıştırın.Şartlı ifadeler Javada bu şekilde kullanılmaktadır. Temel olarak kullanılan şartlı ifadeler şöyle :

    > : Büyüktür.
    < : Küçüktür.
    >= : Büyük eşit
    <= : Küçük Eşit
    == : Birbirine eşit yada denk
    != : Eşit değilse gibi..
    ---------------------------------
    Gereksiz açıklama satırları
    Kod:
    Kod:
    public class MapObject{02    Map mapData = null;03    MapList mapList = null;04    Vector mapJList = new Vector(4, 1);05 06    /**07     * Consructor, Creates a new instance of MapObject08     */09    public MapObject() {10        MapListLoader mapListLoader = new MapListLoader();11        mapList = mapListLoader.loadMapList();12        Logger.printDebugMessage("Maps loaded...");13        mapJList = createMapJObjects(mapList);14    }15}16 17class User {18    private String address;19    //..20 21    /*22    gets address23     */24    public String getAddress() {25        return address;26    }27}

    Şimdi yukarıdaki kodda gördüğünüz açıklama satırına bir bakalım.MapObject sınıfındaki Consructor’ının üzerine “Consructor, Creates a new instance of MapObject” yani anlamazsınız diye söylüyorum demiş yazan “bu bir yapıcı metod ve bu sınıfın yeni bir örneğini oluşturur.” Evet bunun zaten bir yapıcı metod olduğunu görebiliyoruz. Her Java, C# kullanıcısıda bunun böyle olduğunu açıklama satırını okumadan da anlayabilir.İkinci User sınıfımızda da javada zaten bir getter olan ayrıca gayet anlaşılır getAddress metodunun üzerine “Adresi getirir” açıklama satırı eklenmiş. Bunlara benzer açıklama satırları oldukça gereksizdir. Ekranda boşu boşuna yer kaplayıp diğer kodun okunmasını zorlaştırır.Bu tarz açıklama satırlarını hiç düşünmeden elimizden geldiğince hızlı sililiyoruz.
    Değişkenler için kullanılan açıklama satırları
    Kod:
    Kod:
    public class GetMapInfo{2    private static String strMapDir = ""; // map physical path3    private static String strMapServerURL = ""; // Map Connection URL4    //.................5}

    Yukarıda gördüğümüz açıklama satırlarıda düzgün isim verilmemiş değişkenleri ifade etmek için kullanılmış. Mesela ilk değişkenin ismi strMapDir açıkçası ben ilk gördüğümde harita klasörü gibi bişey anlıyorum fakat yanındaki yorum satırını okuyunca haritanın fiziksel yolunu ifade ettiğini anlıyorum.Diğer strMapServerURL değişkenine baktığımızda da yanına açıklama satırı yazma gereği duyulmuş çünkü değişkenin ismi tam olarak kendini ifade edemiyor bu yüzden açıklama satırlarından yardım alınmış. Şimdi bu değişkenleri düzgün isimlendirip açıklama satırlarını kaldırdığımızda aşağıdaki gibi olan kodumuza bakalım.
    Kod:
    Kod:
    public class GetMapInfo{2    private static String mapPhysicalPath = "";3    private static String mapConnectionURL= "";4    //.................

    Şimdi yukarıdaki koda baktığımızda değişkenlerin isimleri ne olduklarını gayet iyi ifade ediyor.Gördüğünüz gibi değişkenleri düzgün isimlendirdikten sonra bu değişkenler için tekrar açıklama satırı yazmaya gerek kalmadı.
    Metodlar ve parametreleri için kullanılan açıklama satırları
    Kod:
    Kod:
    /**02 * Builds LayerList object with Layer list03 * @
    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]
    list Layer list04 * @
    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]
    LayerList05 */06private LayerList loadLayerList(List list){07 Layer layer = null;08 LayerList layerList = new LayerList();09 for(int i = 0; i<list.size(); i++){10 layer = (Layer) list.get(i);11 layerList.add(layer);12 }13 return layerList;

    Yukarıda gördüğünüz metodun açıklama satırına bakacak olursak metodun ne yaptığını ve parametre olarak gelen list değişkeninin ne ifade ettiğini yazmış.Açıklama satırına bakacak olursak verilen Layer(katman) listesi ile bütün katmanların bilgilerini içinde barındıran LayerList nesnesi oluşturduğunu yazıyor buraya kadar güzel metodun ne yapmak istediğini anlıyoruz.Fakat metod ismine baktığımızda loadLayerList ben açıkçası “harita listesini yükle” anlıyorum.Açıklama satırlarını okumasam sanki bir veritabanından ya da başka biryerden LayerList nesnesini yükleyeceğini sanırdım ama öyle olmadığını açıklama satırı bana söylüyor.İkinci açıklama satırıda parametre olarak alınan list parametresinin bize Layer listesi olduğunu ifade ediyor fakat metoda baktığımızda (List list) gibi parametre aldığını görüyoruz açıklama satırlarını okumadan da bu list parametresinin Layer listesi olduğunu anlamamız çok zor.Buradaki problem düzgün verilmemiş metod ve paramatre isimlerinden kaynaklanıyor. Metod ismi metodun ne yaptığını ifade edemediği için,parametre ismide kendisini ifade edemediği için açıklama satırlarının yardımına başvurulmuş sorun geçici olarak çözülmüş. Fakat biz bu metodu ve aldığı parametreyi aşağıdaki gibi düzgün olarak isimlendirirsek açıklama satırlarına gerek kalmayacak.
    Kod:
    Kod:
    <span style="color: blue">02    private LayerList buildLayerList(List layerList){03        Layer layer = null;04        LayerList layerList = new LayerList();05        for(int i = 0; i<list.size(); i++){06            layer = (Layer) list.get(i);07            layerList.add(layer);08        }09        return layerList;10    }

    Açıklama satırlarını silip metodumuzun ismini private LayerList buildLayerList(List layerList) olarak değiştirdik. Şuanda metodun adını okuduğumda bana direk olarak ne yaptığını ifade edebilir hale geldi adından da anlaşıldığı gibi buildLayerList yani LayerList nesnesi oluşturuyor.Parametre olarak alınan listeninde layerList olduğunu parametre adından kolaylıkla anlayabiliyorum. Gördüğünüz gibi düzgün isimlendirilmiş metod ve parametreler açıklama satırlarına gerek kalmayacak şekilde kodun okunulabilirdiğini arttırıyor.
    Metodların içinde kullanılan açıklama satırları
    Kod:
    Kod:
    private **** Aktivasyon_Load(object sender, System.EventArgs e)02{03    //Disk modelinin bilgilerini al04    ManagementClass clsDiskSurucu = new ManagementClass("Win32_DiskDrive");05    ManagementObjectCollection DiskSurucu = clsDiskSurucu.GetInstances();06    ManagementObjectCollection.ManagementObjectEnumerator DiskSurucuEnumerator;07    DiskSurucuEnumerator=DiskSurucu.GetEnumerator();08    DiskSurucuEnumerator.MoveNext();09    ManagementObject DSS = (ManagementObject)DiskSurucuEnumerator.Current;10    string diskModel = DSS["Model"].ToString();11 12    //BIOS seri numarasının bilgilerini al13    ManagementClass clsBios = new ManagementClass("Win32_BIOS");14    ManagementObjectCollection Bios = clsBios.GetInstances();15    ManagementObjectCollection.ManagementObjectEnumerator BiosEnumerator;16    BiosEnumerator=Bios.GetEnumerator();17    BiosEnumerator.MoveNext();18    ManagementObject BBios = (ManagementObject)BiosEnumerator.Current;19    string biosSeriNumarasi = BBios["Caption"].ToString();20 21    //Disk modeli ile BIOS seri no string olarak alınıyor ve şifre oluşturuluyor22    sifre= biosSeriNumarasi + diskModel;23    //Oluşturulan makina bağımlı string md5 ile hashleniyor24    sifreHash = FormsAuthentication.HashPasswordForStoringInConfigFile(sifre, "md5");25 26 27    //Oluşan hashli stringi alanlarına yerleştiriliyor28    SKod1.Text = sifreHash.Substring(0, 3);29    SKod2.Text = sifreHash.Substring(3, 3);30    SKod3.Text = sifreHash.Substring(6, 3);31    SKod4.Text = sifreHash.Substring(9, 3);32    SKod5.Text = sifreHash.Substring(12, 3);33}

    Yukarıda gördüğümüz bu küçük C# metodu içinde birçok açıklama satırı kullanılmış.Açıklama satırlarını okumadan anlayamıyorsunuz ama Metod kısaca aktivasyon işlemleri için bazı işlemler yapıyor.Yorum satırlarına baktığınızda önce diskin modelini alıyor ardından bios seri numarasını alıyor ardından bunları birleştirerek bazı alanlara yerleştiriyor. Bu tarz; içinde açıklama satırı bulunduran metodların problemi çok fazla iş yapmaları, aslında içlerinde birden fazla potansiyel metod barındırmalarıdır bunu da yorum satırlarından kolaylıkla anlayabilirsiniz. Burada yorum satırları mantıksal olarak ayrı olan üç ayrı işlemi ifade etmek için kullanılmış.Bunlar diskin modelini alma,bios seri numarasını alma ve bunları bazı alanlara yerleştirme.Bu tarz yorum satırları bize kodumuzun Refactoringe ihtiyacı olduğunun sinyalini verir.Kodumuzu tekrar düzenleyerek yorum satırlarını silip aşağıdaki gibi değiştiriyoruz.
    Kod:
    Kod:
    private **** Aktivasyon_Load(object sender, System.EventArgs e)02{      03sifre=GetBiosSeriNumarasi()+GetDiskModel();04sifreHash=FormsAuthentication.HashPasswordForStoringInConfigFile(sifre,"md5");05HashVeriyiAlanlarinaYerlestir();06}07 08private **** HashVeriyiAlanlarinaYerlestir()09{10        SKod1.Text=sifreHash.Substring(0,3);11        SKod2.Text=sifreHash.Substring(3,3);12        SKod3.Text=sifreHash.Substring(6,3);13        SKod4.Text=sifreHash.Substring(9,3);14        SKod5.Text=sifreHash.Substring(12,3);15}16 17private static string GetBiosSeriNumarasi()18{19        ManagementClass clsBios= new ManagementClass("Win32_BIOS");20        ManagementObjectCollection Bios = clsBios.GetInstances();21        ManagementObjectCollection.ManagementObjectEnumerator BiosEnumerator;22        BiosEnumerator=Bios.GetEnumerator();23    BiosEnumerator.MoveNext();24        ManagementObject BBios =(ManagementObject)BiosEnumerator.Current;25    return BBios["Caption"].ToString();26}27 28private static string GetDiskModel()29{30        ManagementClass clsDiskSurucu= new ManagementClass("Win32_DiskDrive");31        ManagementObjectCollection DiskSurucu = clsDiskSurucu.GetInstances();32        ManagementObjectCollection.ManagementObjectEnumerator DiskSurucuEnumerator;33        DiskSurucuEnumerator=DiskSurucu.GetEnumerator();34    DiskSurucuEnumerator.MoveNext();35    ManagementObject DSS = (ManagementObject)DiskSurucuEnumerator.Current;36    return DSS["Model"].ToString();37}

    ----------
    Okunabilir Kod Yazım Standartları “Şiir Gibi Kod Yazmak İçin”
    Okunabilirlik nedir ? Neden önemlidir ?

    Okunabilir kod, kodu yazanını dışında bir programcı tarafından okunduğunda ne işe yaradığı anlaşılabilen, girintilenmesi, değişken adları, fonksiyon adları güzel ayarlanmış koddur. Aslında okunabilir bir kod için yabancı bir programcıya gerek yoktur. Yazdığınız bir projeyi bir süre tekrar baktığınızda nerede ne yaptığınızı anlayamıyorsanız. O kodlar okunabilir değildir. Peki okunabilir kod neden önemlidir? Açık kaynak bir proje yaptığımızı varsayalım. İleride bu projenin başkaları tarafından geliştirilebilmesi için kodların anlaşılır olması gereklidir. Bir kod yazdık bundan bir süre sonra geliştirmek istedik diyelim. Okuyamadığınız bir koda ne ekleme yapabilirsiniz ne çıkarma. Bu sebeple yazdığınız kodları okunaibilirliği göz önünde bulundurarak yazmak önemlidir. Bunun için kontrol etmeniz gereken 4 faktör vardır.
    1.Girintili yazım
    2.Adlandırma
    3.Açıklama satırları
    4.Boşluk kullanımı
    Şimdi bu adımları inceleyelim Java üzerinde.

    Girintili yazım

    Bir kodu yazarken kod bloklarının daha rahat görünmesi açısından, bir bloğun içindeki kodu bir sekme veya en az 4 tane olmak üzere boşluk koyarak girintilemek; kod bloklarının nerede başlayıp nerede biteceği açısından görsel olarak gayet açıklayıcı olacaktır. Şimdi buna dair iki örnek görelim önce okunabilirliği daha düşük olan bir kod örneği sonra aynı kodun daha okunabilir hali.
    Kötü örnek:
    Kod:
    Kod:
    public class Yazim {public static **** main(String[] args) {int a=5,b=3;for(int i=0;i<5;i++){System.out.print(i); }while(a==5){System.out.print("b="+b);a++;}}}

    Bu kodu değil okurken yazarken bile zorlandığımı itiraf etmem lazım. Sırada düzgün girintilenmiş bir örnek görmek var :
    Kod:
    Kod:
    public class Yazim {	public static **** main(String[] args) {		int a = 5, b = 3;		for (int i = 0; i < 5; i++) {			System.out.print(i);		}		while (a == 5) {			System.out.print("b=" + b);			a++;		}	}}

    Görüldüğü gibi her bir kod bloğu bir sekme içeri kayarak okunurluğu kolaylaştırmış, göze hoş bir görüntü sağlamış. Bunu Eclipse gelşitirme ortamında Ctrl + Shift + F tuşlarına basarak Eclipse otomatik yaptırabiliyoruz. Yine de yazarken kendinizin dikkat etmesi daha iyi bir yöntem olacaktır.
    Adlandırma

    Adlandırmalar konusunda standart bir yöntem takip etmek her zaman iyidir. Bu konuda genel yaklaşım değişkenler, sabitler, fonksiyonlar ve sınıflar için ayrıdır. Hepsine kısa kısa değineceğiz.
    Sınıf adları büyük harfle başlar ve eğer bir sınıf adı birden fazla kelime içeriyorsa o sınıf adındaki ikinci kelimede büyük harfle başlar. Örnekler : Dikdortgen, SekilCizmeFonksiyonlari gibi…
    Fonksiyon adlarının fonksiyonun ne iş yaradağını anlatması gerekir. Ayrıca küçük harfle başlamaları, sınıf adlarında olduğu gibi birden fazla kelime içermeleri durumunda ikinci kelimenin büyük harfle başlaması genel kullanım biçimidir. Örnekler dosyayaYaz(), dosyadanOku(), goruntule() gibi…
    Sabitler genel olarak tamamı büyük harfle yazılır ve birden fazla kelime içerdikleri takdirde kelimelerin arasına alt çizgi karakteri konularak ayrılır. Örnekler SABIT, BU_BIR_SABIT gibi…
    Değişkenler konusu biraz daha karmaşık ve tam standarda oturmamış bir konu genel kanı bir değişken adının fonksiyon adıyla aynı nitelikleri taşıması yönünde yani, anlamlı olmalı, küçük harfle başlamalı ve yeni kelimeler büyük harfle başlamalı. Bu kurala uyan örnekler degisken, degiskenBudur … gibi isimlerdir.
    Ancak bir diğer yaklaşım özellikle büyük projelerde değişken isimlerinin değişkeninin veri tipini ifade eden bir harfle başlamasını öngörüyor yani integer bir değişken için iDegisken gibi…
    Bunların dışında bir adlandırma konusu da global değişkenlerde kendini gösteriyor. Global değişkenlerde üç farklı yaklaşım söz konusu bunlar bir sabit gibi isimlendirme, alt çizgi ile başlayıp normal isimlendirme, alt çizgi ile başlayıp bir sabit gibi isimlendirme. Örnekler : GLOBAL, GLOBAL_DEGISKEN, _global, _globalDegisken, _GLOBAL, _GLOBAL_DEGISKEN gibi …
    Bu değişken isimlendirmeleri konusunda benim kullandığm gösterimler ve dersler boyunca sizin de görecek olduğunuz gösterim tipleri:
    değişkenler için veri tipi kısaltması olmadan değişken adı : degisken, degiskenAdi gibi…
    sabitler için büyük yazı tipi : SABIT, SABIT_ADI gibi…
    global değişkenler için ise alt çizgiyi takiben nomal değişken adı: _global, _globalDegisken gibi…
    Açıklama Satırları

    Bir kod yazarken unutulmaması gereken en önemli şeylerden biri açıklama satırlarıdır. Şu anda neyi nasıl yaptığınızı çok iyi biliyor olabilirsiniz. Ancak aradan zaman geçtiğinde kodlarınıza dönüp baktığınızda “Bu neydi?” dememek için açıklama satırlarını kullanmakta yarar var. Özellikle daha sonrada değiştireceğiniz, geliştireceğiniz, açık kaynak olarak dağıtacağınız kodların açıklamalı olması kodu okuyanlar için büyük kolaylık sağlayacaktır.
    Boşluk Kullanımı

    Boşluk kullanımından kastım hem yatay hem de dikey olarak boşluklardan faydalanmak. Bu genel olarak bana ait bir özellik o sebeple okunabilir kod genellemeleri arasında sayılmayabilir ancak özellikle farklı kod blokları arasında bir satır boşluk bırakmak geriye dönüp bakınca neyin nerede bitip nerede başladığını anlamayı kolaylaştırıyor. Çoğu zaman da bir lineer denklem, bir ifade yazarken operatör ve operandlar arasına da bir boşluk koymayı tercih ediyorum. Böylece özellikle uzun lineer ifadelerde okumak daha kolay oluyor. Aşağıdaki örnekleri inceleyelim:
    Boşluksuz
    Kod:
    Kod:
    public class Yazim {	public static **** main(String[] args) {		int a=5,b=3;		for(int i=0; i<5;i++){			System.out.print(i);		}		while (a==5) {			b=a*b%5+(a+b)-2;			System.out.print("b=" + b);			a++;		}	}}

    Kod:
    Kod:
    public class Yazim {	public static **** main(String[] args) { 		int a = 5, b = 3; 		for(int i = 0; i < 5; i++){			System.out.print(i);		}		while (a == 5) {			b = a * b % 5 + (a + b) - 2;			System.out.print("b=" + b);			a++;		}	}}

  2. #2
    Üye Zero Tolerance - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    16.04.2013
    Yer
    Ankara
    Mesajlar
    25.140
    Bahsedildi
    16 Mesaj
    Etiketlenmiş
    0 Konu
    Rep Puanı
    10

    Standart

    Çok yararlı ve başarılı bir konu olmuş
    03.07.2015

  3. #3
    Üye salih161963 - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    26.08.2012
    Mesajlar
    421
    Bahsedildi
    0 Mesaj
    Etiketlenmiş
    0 Konu
    Rep Puanı
    10

    Standart

    Çok Sıkıcı Bir Anlatım olmuş part part yapsaydın iyi olurdu 2 part cidden sıkıyor

  4. #4
    Üye IFeroldayFamerI - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    02.02.2014
    Yer
    İstanbul
    Yaş
    51
    Mesajlar
    19
    Bahsedildi
    0 Mesaj
    Etiketlenmiş
    0 Konu
    Rep Puanı
    0

    Standart Cevap: Javaya Hazırlanalım( part 1 )

    İlkten selamun aleyküm arkadaşım,ben bu programın dowland linkini bir türlü bulamıyorum nütfen elinizde varsa linkinide koyunuz saygılar sevgiler
    ----iMZA-------

  5. #5
    Üye 15963210 - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    20.05.2011
    Yer
    İsviçre / Schweiz
    Mesajlar
    437
    Bahsedildi
    0 Mesaj
    Etiketlenmiş
    0 Konu
    Rep Puanı
    10

    Standart Cevap: Javaya Hazırlanalım( part 1 )

    Okumaya Üşendim

    [Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayın...]

Sayfa 1/2 12 SonSon

Benzer Konular

  1. Bencil fare ( 1. part toplam 2 part var )
    By Young™ in forum Transformice Hikayeleri
    Cevaplar: 0
    Son Mesaj: 20-04-13, 20:23
  2. Camo Set by FoS part.1 (ShaZz Part)
    By Melih TEKİN in forum Wolfteam Resim Video
    Cevaplar: 0
    Son Mesaj: 06-08-12, 21:05

Bu Konudaki Etiketler

Yetkileriniz

  • Konu Acma Yetkiniz Yok
  • Cevap Yazma Yetkiniz Yok
  • Eklenti Yükleme Yetkiniz Yok
  • Mesajınızı Değiştirme Yetkiniz Yok
  •