SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
JAVA’ya Giriş

Rudi Açıkgöz – rudi.acikgoz@arnist.com
Proglama Nedir


      • Kahve Makinesi Problemi
         • Önce su kaynatılır
         • Sonra boş bir bardak hazneye yerleştirilir
         • Sonra bir miktar kahve tozu bardağa boşaltılır
         • Sonra bir miktar şeker bardağa boşaltılır
         • Sonra bir miktar süt tozu bardağa boşaltılır
         • Sonra su bardağa boşaltılır
         • Son olarak hazne kapağı açılır


         ’’ Bilgisayar sistemin anlayacağı şekilde, başlangıç ve bitiş
         noktası belirlenmiş işlerin yerine getirilerek istenen hedefe
                   ulaşılmasını sağlayan işlemler bütünüdür’’




COPYRIGHT @ 2011
Yapısal Proglama (Structured Programming)


      • Program akış sırasının önemi
      • Akışlardaki adımların alt program olması
      • Go-to yapıları
      • Akışın kendisini oluşturan her işin kodlanması
      • Akışın uzunluğuna bağlı olarak karmaşıklığın artması
      • Kod okumanın zorluğu
      • Akışların doğasındaki hiyerarşik ve nesnel yapıyı
        karşılayamama
      • C  C++  Java
      • Yapısal (Functional) Programlama  Nesne Yönelimli
        (Object Oriented) Programlama




COPYRIGHT @ 2011
Nesne Yönelimli (Object-Oriented) Yaklaşım


      • Yapılacaklar listesinin nesneler tarafından
        gerçekleştirilmesi (gerçek hayatta da olduğu gibi !)

      • Yapısal programlama ile çok fazla benzerlik

      • Analiz (Ayrıştırma ve Çözümleme) ‘i destekleme

      • Benzeşim : Her kelime tek başına bir anlam taşımasına
        rağmen; her cümlenin anlamı kelimelerin biraya
        getirilme şekline göre değişir!

      • Nesne dünyasının kurulması programcının elindedir; bu
        nedenle iyi-kötü, hızlı-yavaş, karmaşık-basit ...vs
        dengelerinin (trade-off) tek sorumlusudur.

COPYRIGHT @ 2011
Yaklaşım


      • Gerçek hayattaki probleme uygun nesne yapıları seçilir

      • Attribute (özellik) nesnelerin taşıdığı bilgi; Method
        (Yöntem) nesnelerin yetenekleri olarak belirtilir

      • Akış Şeması (Flow Chart) ve Sınıf Diagramı (Class
        Diagram)

      • Örnek : Taksit Hesaplama Aracı
                   Tutar ve Taksit Sayısı       Taksit Tutarı       Taksit Sağlaması
                          belirle                Hesapla                   Yap




                                      HAYIR    Kalanı Son Taksite
                             OK ?
                                                    Yansıt

                                        EVET                         Taksit Bilgilerini
                                                                       Görüntüle

COPYRIGHT @ 2011
Analiz
                                    Taksit Belirleme Araci
                       - toplamTutar : float
                       - taksitSayisi : int
                       - taksitListesi : float []

                       -   belirle() : void
                       -   hesapla() : float
                       -   saglamaYap() : boolean
                       -   kalaniSonTaksiteEkle() : void
                       -   goruntule() : void


                   Ödeme                                              Taksit
                                                    n
   - toplamTutar : float                                - taksitTutari : float
   - taksitSayisi : int           1..                   - taksitSirasi : int
   - taksitListesi : Taksit []
                                                        - saglamaYap() : boolean
   - belirle() : void                                   - kalaniSonTaksiteEkle() : void
   - hesapla() : float                                  - goruntule() : void
   - goruntule() : void

COPYRIGHT @ 2011
Örnek Akış


      package tr.com.gvg.egitim;

      public class Merhaba {
         public static void main(String args[])
         {
            System.out.println("Hello World");
         }
      }    /* end of program */

      •   Case sensitive
      •   « ; » statement finish
      •   « { } » block usage
      •   Formatting : indentation,space, naming convention...etc
      •   Standard coding style

COPYRIGHT @ 2011
Örnek Nesne

      package tr.com.gvg.egitim;

      public class Taksit {
            private float taksitTutari;
            private int taksitSirasi;

             public void hesapla (float toplamTutar, int taksitSayisi, int taksitSirasi){
                   float lokalTaksitTutari = toplamTutar / taksitSayisi;
                   if(taksitSirasi == taksitSayisi && (taksitSayisi*lokalTaksitTutari) != toplamTutar){
                               this.setTaksitTutari((toplamTutar - (taksitSayisi*(lokalTaksitTutari-1))));
                   }else{
                               this.setTaksitTutari(lokalTaksitTutari);
                   }

             }

             public void goruntule (){
                   System.out.println("Hesaplanan taksit tutari : " + taksitTutari + " taksit sirasi :
                   "+taksitSirasi);
             }

             public float getTaksitTutari() {
                   return taksitTutari;
             }
             public void setTaksitTutari(float taksitTutari) {
                   this.taksitTutari = taksitTutari;
             }
             public int getTaksitSirasi() {
                   return taksitSirasi;
             }
             public void setTaksitSirasi(int taksitSirasi) {
                   this.taksitSirasi = taksitSirasi;
             }
      }
COPYRIGHT @ 2011
İnceleme

      package tr.com.gvg.egitim;

      public class Taksit {
            private float taksitTutari;
            private int taksitSirasi;

             public void hesapla (float toplamTutar, int taksitSayisi, int taksitSirasi){
                   float lokalTaksitTutari = toplamTutar / taksitSayisi;
                   if(taksitSirasi == taksitSayisi && (taksitSayisi*lokalTaksitTutari) != toplamTutar){
                               this.setTaksitTutari((toplamTutar - (taksitSayisi*(lokalTaksitTutari-1))));
                   }else{
                               this.setTaksitTutari(lokalTaksitTutari);
                   }

             }

             public void goruntule (){
                   System.out.println("Hesaplanan taksit tutari : " + taksitTutari + " taksit sirasi :
                   "+taksitSirasi);
             }

             public float getTaksitTutari() {
                   return taksitTutari;
             }
             public void setTaksitTutari(float taksitTutari) {
                   this.taksitTutari = taksitTutari;
             }
             public int getTaksitSirasi() {
                   return taksitSirasi;
             }
             public void setTaksitSirasi(int taksitSirasi) {
                   this.taksitSirasi = taksitSirasi;
             }
      }
COPYRIGHT @ 2011
Sınıf Yapısı (Class Structure)


      class Entry {
             /* fields */
             String name;
             String address;
             String phone;

              /* constructor */
              Entry(String n, String a, String p) { this.name = n;
      this.address = a; this.phone = p; }

                   /* accessors */
                   String getName() { return this.name; }
                   String getAddress() { return this.address; }
                   String getPhone() { return this.phone; } }

COPYRIGHT @ 2011
Derleyici (compiler) tarafından kullanılan sözcükler (keywords)


      abstract      continue       for     new switch
      assert***     default goto* package          synchronized
      boolean       do      if     private this
      break double implements protected            throw
      byte else import public throws
      case enum****         instanceof     return transient
      catch extends         int    short try
      char final interface         static void
      class finally long strictfp**        volatile
      const* float native super while

      *              not used
      **             added in 1.2
      ***            added in 1.4
      ****           added in 5.0
COPYRIGHT @ 2011
İşlem Operatörleri


                   Operators              Precedence
                   postfix                expr++ expr--
                   unary                  ++expr --expr +expr -expr ~ !
                   multiplicative         */%
                   additive               +-
                   shift                  << >> >>>
                   relational             < > <= >= instanceof
                   equality               == !=
                   bitwise AND            &
                   bitwise exclusive OR   ^
                   bitwise inclusive OR   |
                   logical AND            &&
                   logical OR             ||
                   ternary                ?:

                   assignment             = += -= *= /= %= &= ^= |= <<= >>= >>>=




COPYRIGHT @ 2011
Örnek Kullanım

      public static void main(String[] args) {
            for(int i=0; i<5;){
                  System.out.println((++i)+". index");
            }
            System.out.println("");

             for(int i=0; i<5;){
                   System.out.println((i++)+". index");
             }

             System.out.println("");

             boolean dogru = true;
             System.out.println(dogru==true?"Sonuc dogru": "Sonuc yanlis");
             dogru = false;
             System.out.println(dogru==true?"Sonuc dogru": "Sonuc yanlis");
      }




COPYRIGHT @ 2011
Sorular




                   Teşekkürler...




COPYRIGHT @ 2011

Mais conteúdo relacionado

Destaque (6)

Rb slidev4uk
Rb slidev4ukRb slidev4uk
Rb slidev4uk
 
W.i.c elevation b
W.i.c elevation bW.i.c elevation b
W.i.c elevation b
 
Voce
VoceVoce
Voce
 
Nmdl final pp - John Winningham
Nmdl final pp - John Winningham Nmdl final pp - John Winningham
Nmdl final pp - John Winningham
 
Print Portfolio 3
Print Portfolio 3Print Portfolio 3
Print Portfolio 3
 
Hpu.Lecc 3. Periodismo 1980
Hpu.Lecc 3. Periodismo 1980Hpu.Lecc 3. Periodismo 1980
Hpu.Lecc 3. Periodismo 1980
 

Java ile grogramlamaya giris

  • 1. JAVA’ya Giriş Rudi Açıkgöz – rudi.acikgoz@arnist.com
  • 2. Proglama Nedir • Kahve Makinesi Problemi • Önce su kaynatılır • Sonra boş bir bardak hazneye yerleştirilir • Sonra bir miktar kahve tozu bardağa boşaltılır • Sonra bir miktar şeker bardağa boşaltılır • Sonra bir miktar süt tozu bardağa boşaltılır • Sonra su bardağa boşaltılır • Son olarak hazne kapağı açılır ’’ Bilgisayar sistemin anlayacağı şekilde, başlangıç ve bitiş noktası belirlenmiş işlerin yerine getirilerek istenen hedefe ulaşılmasını sağlayan işlemler bütünüdür’’ COPYRIGHT @ 2011
  • 3. Yapısal Proglama (Structured Programming) • Program akış sırasının önemi • Akışlardaki adımların alt program olması • Go-to yapıları • Akışın kendisini oluşturan her işin kodlanması • Akışın uzunluğuna bağlı olarak karmaşıklığın artması • Kod okumanın zorluğu • Akışların doğasındaki hiyerarşik ve nesnel yapıyı karşılayamama • C  C++  Java • Yapısal (Functional) Programlama  Nesne Yönelimli (Object Oriented) Programlama COPYRIGHT @ 2011
  • 4. Nesne Yönelimli (Object-Oriented) Yaklaşım • Yapılacaklar listesinin nesneler tarafından gerçekleştirilmesi (gerçek hayatta da olduğu gibi !) • Yapısal programlama ile çok fazla benzerlik • Analiz (Ayrıştırma ve Çözümleme) ‘i destekleme • Benzeşim : Her kelime tek başına bir anlam taşımasına rağmen; her cümlenin anlamı kelimelerin biraya getirilme şekline göre değişir! • Nesne dünyasının kurulması programcının elindedir; bu nedenle iyi-kötü, hızlı-yavaş, karmaşık-basit ...vs dengelerinin (trade-off) tek sorumlusudur. COPYRIGHT @ 2011
  • 5. Yaklaşım • Gerçek hayattaki probleme uygun nesne yapıları seçilir • Attribute (özellik) nesnelerin taşıdığı bilgi; Method (Yöntem) nesnelerin yetenekleri olarak belirtilir • Akış Şeması (Flow Chart) ve Sınıf Diagramı (Class Diagram) • Örnek : Taksit Hesaplama Aracı Tutar ve Taksit Sayısı Taksit Tutarı Taksit Sağlaması belirle Hesapla Yap HAYIR Kalanı Son Taksite OK ? Yansıt EVET Taksit Bilgilerini Görüntüle COPYRIGHT @ 2011
  • 6. Analiz Taksit Belirleme Araci - toplamTutar : float - taksitSayisi : int - taksitListesi : float [] - belirle() : void - hesapla() : float - saglamaYap() : boolean - kalaniSonTaksiteEkle() : void - goruntule() : void Ödeme Taksit n - toplamTutar : float - taksitTutari : float - taksitSayisi : int 1.. - taksitSirasi : int - taksitListesi : Taksit [] - saglamaYap() : boolean - belirle() : void - kalaniSonTaksiteEkle() : void - hesapla() : float - goruntule() : void - goruntule() : void COPYRIGHT @ 2011
  • 7. Örnek Akış package tr.com.gvg.egitim; public class Merhaba { public static void main(String args[]) { System.out.println("Hello World"); } } /* end of program */ • Case sensitive • « ; » statement finish • « { } » block usage • Formatting : indentation,space, naming convention...etc • Standard coding style COPYRIGHT @ 2011
  • 8. Örnek Nesne package tr.com.gvg.egitim; public class Taksit { private float taksitTutari; private int taksitSirasi; public void hesapla (float toplamTutar, int taksitSayisi, int taksitSirasi){ float lokalTaksitTutari = toplamTutar / taksitSayisi; if(taksitSirasi == taksitSayisi && (taksitSayisi*lokalTaksitTutari) != toplamTutar){ this.setTaksitTutari((toplamTutar - (taksitSayisi*(lokalTaksitTutari-1)))); }else{ this.setTaksitTutari(lokalTaksitTutari); } } public void goruntule (){ System.out.println("Hesaplanan taksit tutari : " + taksitTutari + " taksit sirasi : "+taksitSirasi); } public float getTaksitTutari() { return taksitTutari; } public void setTaksitTutari(float taksitTutari) { this.taksitTutari = taksitTutari; } public int getTaksitSirasi() { return taksitSirasi; } public void setTaksitSirasi(int taksitSirasi) { this.taksitSirasi = taksitSirasi; } } COPYRIGHT @ 2011
  • 9. İnceleme package tr.com.gvg.egitim; public class Taksit { private float taksitTutari; private int taksitSirasi; public void hesapla (float toplamTutar, int taksitSayisi, int taksitSirasi){ float lokalTaksitTutari = toplamTutar / taksitSayisi; if(taksitSirasi == taksitSayisi && (taksitSayisi*lokalTaksitTutari) != toplamTutar){ this.setTaksitTutari((toplamTutar - (taksitSayisi*(lokalTaksitTutari-1)))); }else{ this.setTaksitTutari(lokalTaksitTutari); } } public void goruntule (){ System.out.println("Hesaplanan taksit tutari : " + taksitTutari + " taksit sirasi : "+taksitSirasi); } public float getTaksitTutari() { return taksitTutari; } public void setTaksitTutari(float taksitTutari) { this.taksitTutari = taksitTutari; } public int getTaksitSirasi() { return taksitSirasi; } public void setTaksitSirasi(int taksitSirasi) { this.taksitSirasi = taksitSirasi; } } COPYRIGHT @ 2011
  • 10. Sınıf Yapısı (Class Structure) class Entry { /* fields */ String name; String address; String phone; /* constructor */ Entry(String n, String a, String p) { this.name = n; this.address = a; this.phone = p; } /* accessors */ String getName() { return this.name; } String getAddress() { return this.address; } String getPhone() { return this.phone; } } COPYRIGHT @ 2011
  • 11. Derleyici (compiler) tarafından kullanılan sözcükler (keywords) abstract continue for new switch assert*** default goto* package synchronized boolean do if private this break double implements protected throw byte else import public throws case enum**** instanceof return transient catch extends int short try char final interface static void class finally long strictfp** volatile const* float native super while * not used ** added in 1.2 *** added in 1.4 **** added in 5.0 COPYRIGHT @ 2011
  • 12. İşlem Operatörleri Operators Precedence postfix expr++ expr-- unary ++expr --expr +expr -expr ~ ! multiplicative */% additive +- shift << >> >>> relational < > <= >= instanceof equality == != bitwise AND & bitwise exclusive OR ^ bitwise inclusive OR | logical AND && logical OR || ternary ?: assignment = += -= *= /= %= &= ^= |= <<= >>= >>>= COPYRIGHT @ 2011
  • 13. Örnek Kullanım public static void main(String[] args) { for(int i=0; i<5;){ System.out.println((++i)+". index"); } System.out.println(""); for(int i=0; i<5;){ System.out.println((i++)+". index"); } System.out.println(""); boolean dogru = true; System.out.println(dogru==true?"Sonuc dogru": "Sonuc yanlis"); dogru = false; System.out.println(dogru==true?"Sonuc dogru": "Sonuc yanlis"); } COPYRIGHT @ 2011
  • 14. Sorular Teşekkürler... COPYRIGHT @ 2011