web java sunumu tez.pdf

Upload: zeki-coezen

Post on 06-Feb-2018

251 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 web java sunumu tez.pdf

    1/213

    T.C.

    SAKARYA NVERSTESFEN BLMLERENSTTS

    JAVA PROGRAMLAMA DLNN WEB

    ZERNDEN SUNUMU

    YKSEK LSANS TEZ

    Ayhan KRAZ

    Eyll 2006

    Enstit Anabilim Dal

    Tez Danman

    :

    :

    Elektronik ve Bilgisayar Eitimi

    Yrd. D. Dr. Ali Fuat BOZ

  • 7/21/2019 web java sunumu tez.pdf

    2/213

    T.C.

    SAKARYA NVERSTESFEN BLMLERENSTTS

    JAVA PROGRAMLAMA DLNN WEBZERNDEN SUNUMU

    YKSEK LSANS TEZAyhan KRAZ

    Bu tez 15/09/2006 tarihinde aadaki jri tarafndan oybirlii ile kabuledilmitir.

    Enstit Anabilim Dal : Elektronik ve Bilgisayar Eitimi

    Yrd. Do. Dr. Ali Fuat BOZ Prof. Dr. Abdullah FERKOLU Yrd. Do. Dr. Rait KKERJri Bakan ye ye

  • 7/21/2019 web java sunumu tez.pdf

    3/213

    ii

    TEEKKR

    Tezin hazrlanaamasnda bana her trl destei veren danman hocam Sayn Yrd.

    Do. Dr. Ali Fuat BOZa, uygulamann yapm aamasnda bana yardmlarn

    esirgemeyen iarkadalarma ve almalarm esnasnda srekli yanmda olan sevgili

    eime sonsuz teekkrlerimi sunarm.

    Eyll 2006

    Ayhan KRAZ

  • 7/21/2019 web java sunumu tez.pdf

    4/213

    iii

    NDEK

    LER

    TEEKKR.ii

    NDEKLER........iii

    SMGELER VE KISALTMALAR LSTES..ix

    EKLLER LSTES....x

    TABLOLAR LSTESxii

    ZET.xiii

    SUMMARY.......xiv

    BLM 1.

    GR1

    1.1. nternet Nedir?.....................................................................................1

    1.2. nternet ve Eitim.1

    1.3. nternet Tabanl Uzaktan Eitim..3

    1.4. nternet Ortamnda Eitim...3

    1.5. Sanal retimin Avantajlar ve Dezavantajlar...4

    1.6. Eitimde nternet Uygulamalarn Kullanmann Faydalar.5

    1.7. Java Dilinin nemi..5

    BLM 2.

    JAVA'NIN GENEL YAPISI....82.1. Javann Tarihi.8

    2.2. Java Dilinin Temelleri11

    2.3. Hogeldin Java Uygulamas...12

    2.3.1. Standart java...14

    2.3.2. Enterprise java ......14

    2.3.3. Java micro edition..15

    2.4. Java Programlama Dili Temel Deiken Trleri...15

  • 7/21/2019 web java sunumu tez.pdf

    5/213

    iv

    2.4.1. Booelan deiken tr....16

    2.4.2. Char deiken tr.17

    2.4.4.Tam say deiken trleri18

    2.4.5. Gerek say deiken trleri...19

    2.4.6. String nesne tipi deikeni.19

    2.4.7. Integer nesne tipi deikeni...20

    2.4.8. Double nesne tipi deikeni...21

    2.4.9. Dier nesne temelli deiken trleri ..22

    2.4.10. Final terimi ve sabitler.22

    2.4.11. Primitive tipler.23

    2.5. Nesneler ve Atamalar.23

    2.6. Java Operatrleri25

    2.6.1. Aritmetik operatrler.26

    2.6.2. likisel operatrler30

    2.6.3. Mantksal operatrler.33

    2.6.4. Bit dzeyinde(Bitwise) operatrler35

    2.6.4.1. Ve(and) operatr...36

    2.6.4.2. Veya(or) operatr..372.6.4.3. Yada(Exclusive or) operatr.38

    2.6.4.4. Tmleme(Not) operatr38

    2.6.5. teleme(Shift) operatrleri39

    2.6.6. Atama operatrleri.41

    2.6.7. String operatr.43

    2.7. Dntrme(Casting) lemi .44

    2.8. Bir Artrma ve Azaltma.452.9. Nesnelerin Karlatrlmas...47

    BLM 3.

    KONTROL FADELER49

    3.1. Karlatrma Deyimleri.49

    3.1.1. If yaps..49

    3.1.2. If-else yaps...51

    3.1.3. Switch ifadesi.57

  • 7/21/2019 web java sunumu tez.pdf

    6/213

  • 7/21/2019 web java sunumu tez.pdf

    7/213

    vi

    BLM 6.

    APPLETLAR108

    6.1. Applet Nedir?...................................................................................108

    6.2. Appleti Web Sayfasna Gmme...111

    6.3. Applet Etiketi ve Applet Parametreleri114

    6.4. Graphics ve Paint Metotlar.117

    6.5. Rastgele ekil izimi...118

    6.6. Mouse Appleti120

    6.7. Grafik Appleti.122

    6.8. Hesap Makinesi Appleti.125

    6.9. Blok Oyunu Appleti126

    6.10. Rasgele izim Appleti..126

    6.11. Tetris Oyunu Appleti127

    6.12. Ufo Oyunu Appleti...128

    BLM 7.

    LAYOUT MANAGER.129

    7.1. Borderlayout1297.2. Gridlayout130

    7.3. Flowlayout...132

    7.4. Cardlayout133

    7.5. Gridbaglayout..135

    7.6. Boxlayout.137

    7.7. Verticalflowlayout...139

    BLM 8.

    PROGRAM HATALARINI YAKALAMA.141

    8.1. Szdizimi Yanllar.141

    8.2. Mantksal Yanllar..141

    8.3. alma Zaman Yanllar..141

    8.4. Hatann Yakalanmas...143

    8.5. Hata Yakalama.145

    8.5.1. Try-catch..145

  • 7/21/2019 web java sunumu tez.pdf

    8/213

    vii

    8.5.2. oklu hata yakalama(multiple catch)..149

    8.5.3. Throw...152

    8.5.4. Throws.153

    8.5.5. Finally..155

    BLM 9.

    JAVA PAKETLER..158

    9.1. Java.Lang Paketi..159

    9.2. Java.Io Paketi...160

    9.3. Java.Util Paketi161

    9.4. Java.Net Paketi.161

    9.5. Java.Awt Paketi161

    9.6. Java.Awt.Image Paketi.162

    9.7. Java.Awt.Peer Paketi...162

    9.8. Java.Applet Paketi163

    BLM 10.

    AWT.164

    10.1. AWT Bileenleri164

    10.2. UI Bileenlerini Kullanmak...165

    10.3. Buton.165

    10.4. Checkbox...167

    10.5. Checkboxgroup..170

    10.6. Label..172

    10.7. Textfield.174

    10.8. Choice176

    10.9. Menubar.178

    10.10. Popupmenu..182

    10.11. Scrollbar...182

    10.12. Textarea184

    10.13. Panel.185

    BLM 11.KULLANILAN PROGRAMLAR187

  • 7/21/2019 web java sunumu tez.pdf

    9/213

    viii

    11.1. Html Nedir? ...187

    11.2. Xara Webstyle187

    11.3. Macromedia Dreamweaver 188

    11.4. Microsoft Frontpage...191

    BLM 12.

    SONU VE NERLER..194

    KAYNAKLAR.196

    ZGEM..198

  • 7/21/2019 web java sunumu tez.pdf

    10/213

    ix

    SMGELER VE KISALTMALAR LSTES

    TCP/IP : GeiKontrol Protokol Internet Protokol(Transmission ControlProtokol/Internet Protokol)

    PDA : Kiisel Dijital Yardmc(Personal Digital Assistant)

    CPU : Merkezi lem Birimi(Central Processing unit)

    HTML : Text aretleme Dili(Hypertext Markup Language)

    USB : Universal Seri Yol(Universal Serial Bus)

    ISO : Uluslararas Standart Organizasyonu(International Standards

    Organization)

    GUI : Grafiksel Kullanc Arayz(Graphical User Interface)

    I/O : Girik(Input Output)

    UDP : Kullanc Datagram Protokol(User Datagram Protocol)

    AWT : Genel Windows Aralar(Abstract Windows Toolkit)

    UI : Kullanc Ara yz(User interface)

    FTP : Dosya Transfer Protokol(File Transfer Protocol)

  • 7/21/2019 web java sunumu tez.pdf

    11/213

    x

    EKLLER LSTES

    ekil 2.1. Tipik Java Evreleri..13

    ekil 3.1. If yapsnn algoritmas...50

    ekil 3.2. If yaps...51

    ekil 3.3. If-Else yaps...52

    ekil 3.4. Switch rnei..63ekil 3.5. For dngsnn algoritmas...64

    ekil 3.6. For dngs ekran kts69

    ekil 3.7. While Dngsnn yaps...69

    ekil 3.8. Do-While applet rnei .75

    ekil 4.1. Farkl elemana sahip ok boyutlu dizi91

    ekil 5.1. Snf deikenleri rnei..104

    ekil 6.1. Merhaba dnya appleti110

    ekil 6.2. Renk deitirme appleti...114

    ekil 6.3. Rasgele izim appleti...120

    ekil 6.4. Mouse appleti122

    ekil 6.5. Grafik appleti...125

    ekil 6.6. Hesap makinesi appleti125

    ekil 6.7. Blok oyunu appleti..126

    ekil 6.8. izim appleti...127

    ekil 6.9. Tetris oyunu appleti.127

    ekil 6.10.UFO oyunu appleti.128

    ekil 7.1. Borderlayout rnei..130

    ekil 7.2. GridLayout rnei132

    ekil 7.3. FlowLayout rnei133

    ekil 7.4. Cardlayout rnei135

    ekil 7.5. GridBagLayout rnei..137

    ekil 7.6. BoxLayout rnei.139

  • 7/21/2019 web java sunumu tez.pdf

    12/213

    xi

    ekil 7.7. VerticalFlowLayout rnei......140

    ekil 9.1. Baz Java paketleri...159

    ekil 9.2. Java.Applet paketi163

    ekil 10.1. Buton applet rnei.167

    ekil 10.2. Checkbox bileeni rnei...169

    ekil 10.3. CheckboxGroup bileeni171

    ekil 10.4. Label rnei174

    ekil 10.5. TextField bileeni...176

    ekil 10.6. Choice bileeni178

    ekil 10.7. Menubar rnei...181

    ekil 10.8. Scrollbars rnei.184

    ekil 10.9. TextArea bileeni185

    ekil 10.10. Panel Bileeni...186

    ekil 11.1. Xara Webstyle ile buton yapm.188

    ekil 11.2. Dreamweaver programnda buton ayarlar.190

    ekil 11.3. Dreamweaver programnda tablo ayarlar..191

    ekil 11.4. Frontpage programnda ereve sayfas oluturma....192

    ekil 11.5. Frontpage programnda ereve sayfas.....192ekil 11.6. Frontpage programnda ereve sayfas rnei..193

  • 7/21/2019 web java sunumu tez.pdf

    13/213

    xii

    TABLOLAR LSTES

    Tablo 2.1. Java temel deiken trleri..... 16

    Tablo 2.2. Hexadecimal(onaltl), onlu ve ikili say sistemleri eitlikleri.... 17

    Tablo 2.3. Java dilindeki primitive tipler..... 23

    Tablo 2.4. Javada aritmetik operatrler...... 26

    Tablo 2.5. Operatrlerin veri tipini etkilemesi..... 29Tablo 2.6. Toplama ve kartma operatrlerinin tip etkilemesi... 29

    Tablo 2.7. likisel operatrler...... 31

    Tablo 2.8. Mantksal operatrlerin kullanm... 34

    Tablo 2.9. Bit dzeyinde operatrler... 36

    Tablo 2.10. VE(AND) ilemi doruluk tablosu. 37

    Tablo 2.11. VEYA(OR) ilemi doruluk tablosu.. 37

    Tablo 2.12. Dlayan YA DA ilemi doruluk tablosu.. 38

    Tablo 2.13. Javadaki bitiik atama operatrleri 43

    Tablo 2.14. Arttrma ve azaltma 45

    Tablo 6.1. Applet metotlar.109

  • 7/21/2019 web java sunumu tez.pdf

    14/213

    xiii

    ZET

    Anahtar Kelimeler: Java, nternet Destekli Eitim, Web sitesi

    Yaadmz biliim anda teknolojinin ilerlemesi zaman zaman takipedilemeyecek kadar hzl olmaktadr. zellikle bilgisayar ve iletiim alanndakigelimeler, dier alanlar da etkilemi, dolays ile teknoloji yaadmz zamanadeta kontrol eder hale gelmitir. Bu alanlarda yaanlan gelimeler, yeni bir an

    balangc olmutur.

    Bu gelimelerin en ok etkiledii alan internet olmutur. Dnya apnda birbirinebal milyonlarca bilgisayardan oluan bu dev network a, bilgi alverii ve uluslararas haberleme iin byk kolaylklar beraberinde getirmitir. nternetinhayatmzda ok fazla yaylmas beraberinde internet zerinden eitimi ortayakarmtr. Bu sayede herkes istedii yerde, istedii bilgiye grsel vemultimedia(oklu ortam) destekli bir ekilde ulaabilmektedir. Bu alma ierisindegnmzde yaygnlamaya balayan Java programlama dilinin internet zerindenanlatm yaplmtr. Bu almann amac kiilerin Java dilini en kolay bir ekilde veistedii her mekanda rahatlkla renebilmesidir. nternet zerinde Java ile ilgili

    Trke kaynaklar ok az bulunmaktadr. Olan bilgilerde ya ok ar ya da gerektiikadar ak deildir. almada Microsoft Frontpage, Macromedia Dreamveawer,Xara webstyle gibi programlar kullanlmtr. Bu programlar kullanarak kolay, hzlve anlalr bir ekilde Java ile ilgili bir web sitesi yaplmtr. Bu web sitesi Javaprogramlama dilini basit ve elenceli bir ekilde anlatmaktadr. Web sitesi dokuzblmden olumaktadr. Her blm kendi arasnda bamszdr. Bu ekilde istenilenkonular kolaylkla seilebilmektedir. Her blmde konular sol taraftan seilmekte veilgili konu sa tarafta almaktadr. Alan konu tek sayfadan fazlaysa sayfazerindeki ileri geri butonlaryla dier sayfalara gei salanmaktadr. Bu ekildebilgiye hzl bir ekilde ulalabilmektedir.

    Tezin ilk blmnde giri, ikinci blmnde Javann genel yaps, ncblmnde kontrol ifadeleri, drdnc blmnde diziler, beinci blmnde classyaps, altnc blmnde appletler, yedinci blmnde yerletirme biimleri,sekizinci blmnde program hatalar, dokuzuncu blmnde Java paketleri, onuncublmnde awt aralar, onbirinci blmnde sonu ve son blmnde de kullanlanprogramlar anlatlmtr.

  • 7/21/2019 web java sunumu tez.pdf

    15/213

    xiv

    JAVA PROGRAMMING LANGUAGES PRESENTATION OVER

    WEB

    SUMMARY

    Key words: Java, Internet Supported Education, Web Site,

    Progress of technology in the information age is extremely fast. Especially

    developments about computer and communication effected other areas. So

    technology controls our age. Developments in this areas has become beginning of a

    new age.

    Internet effected these developments. This large network network that originated

    millions computers all around the world, simplfied information relations and

    international communication, because many people use internet, anda re exposed

    internet education. Thus everybody can reach information that he/she wants. In this

    application, Java programming language that begins to develop was explained up tointernet. Aim of this application to teach Java programming language easily in all

    places. There is no enough Turkish source about Java. They are very difficult. In this

    application, Microsoft Frontpage, Macromedia Dreamweaver and Xara Webstyle

    programs were used. This website explain Java programming language simply and

    amusingly. Website is composed of 9 sections. Every section is independent. Thus

    subjects can be selected easily. In all sections, subjects are chosen from left side and

    opened right side. If subject are more than one page, you must press next button.

    The first section contains introduction, second section Javas general structure, third

    section control statements, fourth section series, fifth section class structure, sixthsection applets, seventh section layout managers, eighth section program errors, ninth

    section Java packages, tenth section awt, eleventh section conclusion and the last

    section contains programs that were used.

  • 7/21/2019 web java sunumu tez.pdf

    16/213

    BLM 1. GR

    1.1. nternet Nedir?

    nternet szc international Network szcnden olumu uluslararas a

    anlamna gelen bir terimdir. nternet milyonlarca alt adan oluan ve alar ierisinde

    aktif olarak bulunan insanlarn tmn yazl, grsel ve iitsel olarak bir araya getiripetkileim halinde bulunmasn salayan bir aprotokoldr.

    nternet birok bilgisayar sistemini TCP/IP(Transmission Control Protokol/Internet

    Protokol) protokol ile birbirine balayan dnya apnda yaygn olan ve srekli

    byyen bir iletiim adr. nternet, tm dnyay kapsayan, ou lkeye dalmve

    iki milyondan fazla bilgisayar birbirine balayan bilgisayar ann toplamdr.

    Ksaca internet, birbiriyle tm dnya zerinde yaylm bilgisayar alarnn

    birleiminden oluan bir bilgisayar adr. [1]

    1.2. nternet ve Eitim

    Etkileim zellii sayesinde internet, renmeye katk getirmekte ve dorudan

    derslerde kullanlacak hemen her konu alanna ynelik kaynak ve materyaller

    salanmaktadr. Bylelikle renme ortamlarnn grnm ve deerlendirme

    yntemleri kkten deimektedir.

    nternet kara tahta, tebeir ve sralara alternatif bir yol olarak dnlebilir. Bu

    balamda, ABDdeki tm okul ve ktphanelerin internete balanma ilemleri byk

    bir hzla tamamlanmaktadr.

    Bir bilgi kayna olarak internetin kullanlmas, geleneksel olarak tek bilgi kayna

    grlen retmenin rolnn bu konuda gnmze kadar geerli olan geleneksel

  • 7/21/2019 web java sunumu tez.pdf

    17/213

    2

    fikrin deimesine yol amtr. Bylece, renen merkezli renme ortamlar arlk

    kazanmtr.

    nterneti kullanma, rencilerin aktif katlmclar haline gelmesini salamakta, kendi

    geleceklerini planlamakta ve rendikleri disiplinlerin uygulamalar iine

    girmelerinde yardmc olmaktadr. Hem rencilerin hem de retim elemanlarnn

    teknoloji ve bilgi okur-yazarln gelitirmelerini salamaktadr. Hem balang hem

    de ileri dzeyde olanlar, teknolojik aralar kullanmalar konusunda da

    cesaretlendirmektedir. Akademik aratrmalara duyulan ilgi artmakta, hem

    akademisyenlerin hem de rencilerin aratrma yapmalar web tarafndan

    desteklenmektedir. Bilginin nemli olduu kadar, onu kullanma srelerinin de eit

    nemde olduu bir aa doru ilerlenmektedir. nternet bunlarn her ikisini de

    desteklemektedir. [2]

    nternet tabanl eitim gelien bilgisayar ve nternet teknolojisiyle birlikte hzla art

    gstermi ve ok kullanlan bir eitim ortam haline gelmitir. Bir yandan eitim

    kurumlar, dier yandan irketler kendi internet tabanl eitim modellerini

    gelitirmektedirler. nk hzla artan dnya nfusunun eitimi, iki ylda biryarlanan teknolojinin takip edilmesi ancak internet tabanl eitimin kullanlmasyla

    mmkn grnmektedir. [3]

    nternet tabanl eitim modellerinde kullanlan etkileimli sayfalar, eitim verilen

    dersin ileniini kolaylatrmakta, dersin eitim ynnden kalitesini arttrmaktadr.

    [4]

    Dersi etkileimli sayfalardan izleyen renciler gerek hayatta gzle

    gremeyecekleri birok olay deneyerek grebilmekte ve konuyu daha kolay

    anlayabilmektedir. nternet tabanl eitim iin etkileim, web sayfalarndaki gerekli

    yerlere canlandrma(animasyon), benzetim(simlasyon), ses, grnt ve film

    yerletirme ile salanabilir. Canlandrma(animasyon) ile ders ieriine ait bir olayn

    nasl olduu canlandrlabilir. Simlasyonlar(benzetim) ile gerek hayatta gzle

    grlemeyecek olaylar, tehlikeli deneyler veya pahal ara gere gerektiren

    laboratuar uygulamalar gerekletirilebilir.

  • 7/21/2019 web java sunumu tez.pdf

    18/213

    3

    1.3. nternet Tabanl Uzaktan Eitim

    Uzaktan eitim, renci ile eitici arasnda, basl ve dier teknolojik aralar da

    kullanan bamsz bir eitim eklidir. Eitsel kaynaklar renenle birletiren eitsel

    sisteme uzaktan renme denir. Uzaktan renme, renenlerin eitim kurumlarna

    yazlmadan eitime girilerini salamaktadr. Uzaktan eitime geiteki en nemli

    sorulardan biri niin uzaktan eitim sorusudur. Bu soruya verilecek cevaplar

    aada listelenmitir.

    Genibir renen kitlesine ulamak.

    Konferans eklinde farkl konumaclarla renme ortam oluturmak.

    Monolog ortamlara hapis olmamak

    Derslere devam edemeyen ve zr bulunan rencilere ulamak.

    Farkl kltrlerden rencilerle farkl konulara hakim alanlarda tanmak

    1.4. nternet Ortamnda Eitim

    nternet Tabanl Eitim: renen ve retenin zaman ve mekan olarak birbirlerinden

    farkl durumlarda bulunduu, altyap olarak internet tabanl yerlerin kullanld

    gerek zamanl istendik davranlar gelitirme srecidir. amzn en yaygn arac

    olarak kullanlmakta olan internet eitiminde de yaygn olarak kullanlmaktadr.

    Web Tabanl Eitim: Trkiyede internetin kullanm her geen gn belirli oranlarda

    artmaktadr. 1995 ylndaki tahminlere gre %6dan %20ye periyodik oranlarda

    art meydana gelmitir. 1995li yllardan sonra bu oran %100lere varan bir artgstermekte buda insanolunun internete olan ihtiya talebini gstermektedir. Bu

    ekilde artan kullanc younluuna ek olarak web zerinden yaplan projelerin

    gelitirilmesi, web sunucularn yaplandrlmas, ana sayfalar ve dijital kaynaklar ile

    ilgili yaplandrlmalar en st dzeye karlmtr.

    Posta Yoluyla Eitim: Gerek yurtd, gerek yurtii retmen kanalyla eitli ya

    gruplarnda posta grubu oluturulabilmektedir. renciler derslerini, birbirlerinin

    deneyimlerini, becerilerini paylaarak alabilmekte, eksiklerini

  • 7/21/2019 web java sunumu tez.pdf

    19/213

    4

    tamamlayabilmektedirler. Posta yoluyla eitim, web tabanl eitimde olduu gibi

    iitsel ve grsel olanaklar salamamakta, sadece metin(text) tabanl bir etkileim

    ortam oluturulmaktadr. [5]

    1.5. Sanal retimin Avantajlar ve Dezavantajlar

    Uzaktan eitim sisteminde yaanlan aksaklklar ve bunun yannda zel avantajlar da

    bulunmaktadr. retimin, retmen ve rencinin renme-retme yeteneini belli

    dzeylere ayrmak mmkndr. renci ders materyalini kendi istedii zamanda ve

    meknda izleyebilmektedir. renci anlamakta glk ektii noktalar tekrar

    gzden geirebilir. Bylece snf iindeki tm rencilerin ayn zek ve istek

    dzeyinde kabul edildii yz yze retim ortamndaki skntlar alabilmektedir.

    Sanal retimde ders materyali hzla gncelletirilebilir. Basl materyal datm

    hzl bir ekilde aktarlabilir. rencinin, retmen ve dier renci arkadalar ile

    hzl bir etkileim ierisinde olmas salanr. Sanal retim sistemleri ile datlan

    bilgi sreklilik ve gncellik arz ettiinden yaam boyu renme imkan salar.

    Bu avantajlarn yannda dezavantajlarda mevcuttur. Bunlardan biri hi phesiz

    rgn retim sisteminde olduu gibi renciler arasnda birliktelik, grup bilinci

    geliimi ve kltrel etkileim gibi baz psikolojik ve sosyolojik unsurlar

    salayamamasdr.

    Sanal retimde karlalan en nemli sorunlardan biri de ders materyali hazrlama

    ve datmdr. nk retmen ve rencilerin belirli seviyede internet

    teknolojilerini tanmas gerekmektedir. Ayn zamanda yz yze eitimde, konu

    anlatm srasnda rencilerin herhangi bir konu ile ilgili problemleri olduunda

    bunu rahatlkla retmenlerine sorabilirler, fakat sanal retimde byle bir anslar

    yoktur.

  • 7/21/2019 web java sunumu tez.pdf

    20/213

    5

    1.6. Eitimde nternet Uygulamalarn Kullanmann Faydalar

    retimin dzenlenmesine ve sunumuna yeni bak as getiren internet,

    eitimcilere birok olanak sunmaktadr. Web sayfalar, haber ve tartma gruplarna,

    Telnet sistemine, gopherlara ve dier web sayfalarna kolaylkla balanabilmektedir.

    Bu ekilde hazrlanan sayfalar her alana geniletmek mmkndr. Fakat bu avantaj,

    kontroln azalmasna yol aarak dezavantaja da dnebilmektedir, birok balant

    ierisinde, renen kii kaybolabilmektedir. Bu nedenle internet kullanlmal ama

    snrlar da bilinmelidir. rnein deiiklik, gncelleme ihtiyacnn youn olduu

    konu alanlarnda ve corafi olarak ok geni boyutlu bir katlmc ile retimi

    gerekletirmek gerektiinde web kullanlabilir, ancak okul ncesinde ok snrl

    olarak yararlanlabilir. Eitimde internetin snrllklarn sralayacak olursak;

    Teknolojinin srekli ve ok hzl geliiyor olmasna karn snrl band

    aral ve ses, video ve grafik iletiminde sorun karan yavamodellerin

    varl.

    renen kiinin insiyatifine dayal olmasyla daha yaplandrlmve

    aamal bir dzen isteyenler iin uygun olmamas.

    Belli bir dzeyde bilgisayar ve teknik becerileri gerektirmesi.

    Gereinden fazla bilgi yk olmas; okunacak ve zerinde dnlecek

    yzlerce e-posta bulunmaktadr, bunlar yantlamak da ayrca zaman

    istemektedir, veri tabanlar ve Web sitelerindeki bilgilere ulama iin,

    bilgi ynetimi becerileri gerekmektedir.

    Krsal blgelerden internete girebilmenin hala bir sorun olmas.

    Sosyal adan izolasyon yaratmas ve szel olmayan ipularn eksiklii ile

    iletiim sorunlarna yol amas. Aktif renmeyi desteklemesine karn, televizyonda olduu gibi pasif

    olarak izlemeye neden olabilmesi.

    Aile yaantsn olumsuz etkileyebilme. [6]

    1.7. Java Dilinin nemi

    Web tabanl eitim sayfalarnda kullanlan canlandrma(animasyon) vebenzetimlerin(simlasyonlarn) Java programlama dili ile tasarlanmasnn baz

  • 7/21/2019 web java sunumu tez.pdf

    21/213

    6

    nedenleri vardr. Java dili bilgisayar alar zerindeki farkl bilgisayar

    platformlarnda kullanlacak yazlmlar gelitirmek amacyla gelitirilmitir. [7]

    Java programlama dili bilgisayar ortamnda kullanlabilecek en gvenli yazlmdr.

    Girilen web sayfasnda bulunan Java appletinin bilgisayara virs bulatrmasn veya

    baka bir istenmeyen ilem yapmasn nlemek iin ierisinde bir dizi mekanizma

    oluturulmutur. Java gvenlik mekanizmas Java appletinin kullanld

    makinedeki veya nternet zerindeki bir baka makinedeki dosya sistemini

    okumasna veya bu dosya sistemine bir ey yazmasna, sunucu makinenin dndaki

    bir makineye balanmasna ya da bunlarn dndaki tehlikeli ilemlere izin vermez.

    nternet ortamnda bir web sayfasndaki appleti altrmak gvenlik asndan sonderece zararszdr. Dier taraftan C++, Delphi gibi programlarn zel ktphaneler

    kullanarak yaptklar ailemlerini Java programlama dili rahatlkla yapabilmektedir.

    Java dili gn getike hzla kendini gelitirmektedir ve gelecein belki de en gzde

    dili olmaya adaydr. [8]

    Bu tezde gnmzde en ok kullanlan ve yeni yeni gelimeye balayan Java dili

    incelenecektir. Trkiyeye baktmzda Java dili ile yeterli Trke kaynakolmadnn farkna vardk. Bu tezde rencilerin, zellikle Java dilini hi bilmeyen,

    fakat renmek isteyen rencilere internet zerinden hzl ve kolay bir ekilde

    anlatmay ve retmeyi hedefledik. Tez ierisinde Java dilini 10 ayr blmde

    inceleyeceiz.

    kinci blmde Java dilinin genel yaps, Javann tarihi, Javada kullanlan deiken

    tipleri ve kullanm biimleri ve Java operatrleri hakknda bilgiler verilmitir.

    nc blmde ise Javada kullanlan kontrol ifadeleri anlatlmtr. Bu blmde if

    yaps, switch yaps, for dngs, while dngs, do-while dngs ve dallanma

    ifadeleri hakknda bilgiler verilmitir.

    Drdnc blmde Java dilindeki dizilerden bahsedilmitir. Bu blmde dizi

    deikenleri, dizi elemanlarna eriim, dizi sralama ve kopyalama ve ok boyutlu

    dizilerden bahsedilmitir.

  • 7/21/2019 web java sunumu tez.pdf

    22/213

    7

    Beinci blmde Java dilindeki snf(class) yapsndan bahsedilmitir. Bu blmde

    snf oluturma, metot oluturma, this anahtar, snf metotlar, snfn gizlenmesi,

    isim ve argman oluturma, yap metotlarndan bahsedilmitir.

    Altnc blmde Java dilindeki applet yapsndan bahsedilmitir. Bu blmde appleti

    web sayfasna ekleme, applet etiketi ve parametreleri, graphics ve paint komutlar,

    Mouse appleti, grafik appleti, hesap makinesi, blok oyunu, Mouse izimi, tetris

    oyunu, ufo oyunu konularndan bahsedilmitir.

    Yedinci blmde Java dilindeki layout(yerletirme) yapsndan bahsedilmitir. Bu

    blmde borderlayout, gridlayout, flowlayout, cardlayout, gridbaglayout, boxlayout,verticalflowlayout konularndan bahsedilmitir.

    Sekizinci blmde Java dilindeki program hatalarndan bahsedilmitir. Bu blmde

    program hatalarn yakalama, hatann yakalanmas, try-catch, oklu hata yakalama,

    throw ve throws deyimleri ve finaly konularndan bahsedilmitir.

    Dokuzuncu blmde Java paketlerinden bahsedilmitir. Bu blmde Java paketleri,Java.lang, Java.io, Java.util, Java.net, Java.awt, Java.awt.image ve Java.awt.peer

    konularndan bahsedilmitir.

    Onuncu blmde Java dilindeki awt paketlerinden bahsedilmitir. Bu blmde awt,

    buton, checkbox, checkboxgroup, label, textfield, choice, menu, popupmenu,

    scrollbar, textarea ve panel konularndan bahsedilmitir.

    Onbirinci blmde uygulamay hazrlarken kullanlan programlar anlatlmtr.

  • 7/21/2019 web java sunumu tez.pdf

    23/213

    8

    BLM 2. JAVANIN GENEL YAPISI

    2.1. Javann Tarihi

    Belki de mikroilemci devriminin en nemli taraf dnya genelinde yz milyonlarca

    sayya ulaan kiisel bilgisayarlarn yaplmasdr. Kiisel bilgisayarlar insanlarn

    yaamnda derin bir etki brakmtr ve ilerini yapmada kolaylk salamtr. [9]

    Java programlama dili u anda dnyadaki en popler programlama dillerinden biri

    haline gelmitir. Java, SUN bilgisayar irketince elektrikli ev aralarnn birbirleriyle

    haberlemesini amalayan bir proje ierisinde 1991 ylnda gelitirilmeye baland.

    Orijinal ad dilin yaratclar James Gosling, Patrick Nauoght,Chis Wardh, ED Frank

    ve Mike Sheridian tarafndan OAK olarak konulan programlama dili, daha sonra bu

    isimde baka bir programlama dili olduu anlalnca kahve markasndan esinlenerek

    Java olarak deitirildi. Akll elektronik ev paralar pazar, SUN grubunun

    tahminlerinden ok daha yavabir gelime gsteriyordu. Bu yzden Java dili projesi,

    ticari bir gelitirme projesi olarak byk olaslkla iptal edilecekti. 1993 ylnda

    internetin tm dnyada yaygnlamaya balamas ve Javann byk bir atlm

    gstererek web sitelerinde kullanlmas Javann nemini artrd. Javann dinamik

    web sayfalar hazrlamadaki byk baarsn gren SUN irketi projeyi bu tarafa

    ynlendirdi.

    Mays 1995de SUN, Javay byk bir konferansta tantt. Program, i dnyas

    tarafndan byk bir ilgiyle karlat. Java internet web sunucularnn

    fonksiyonlarn oaltmak ve cep telefonu, sayfalayclar, PDA gibi birok cihaz iin

    program gelitirmek iin alabilmekteydi; ayrca modern bilgisayar dnyasnn ses,

    grafik ilem, haberleme gibi ihtiyalarna cevap verebilen ve ticari gayeler iin

    hazrlanana bir programlama dili olarak daha nceki bilgisayar dillerinin hi birinin

    kapsayamad zellikleri iermekteydi.

  • 7/21/2019 web java sunumu tez.pdf

    24/213

    9

    Bunun yan sra Java dilinin komut yaps olarak C++ diline ok yakn olmas,

    renilmesini kolaylatryordu. SUN, Javay internette kullanmak isteyen herkese

    cretsiz olarak sundu. Javann internette yaynlanmasnn ardndan ok byk bir

    patlama yaand. 1997ye gelindiinde dnyadaki btn okullarda temel bilgisayar

    dili olarak gsterilmeye baland. Dnyada uanda en ok kullanlan bilgisayar dili

    olan C++ dilinin, yaplan hatalar tam olarak denetlenememesi, program alma

    hzn arttrma ynnde iyi bir zellik olsa da, profesyonel programclar dnda

    kullanlmasn snrlandrc bir etki yapyordu. Java ise btn hatalar bildiren yaps

    ve modern bilgisayarn btn fonksiyonlarna ulaabilen ktphaneleriyle

    programclarn ok daha kolaylkla renebilecei bir dildir.

    Javann dier nemli bir temel zellii, nesne temelli(object oriented) bir dil

    olmasdr. Nesne temelli diller; nesneleri, gerek dnyadakine daha benzer yapda

    tanmlayarak anlalmalarn kolaylatrrlar. Nesneleri gerek dnyadaki gibi; masa,

    sandalye, bilgisayar, gerek gaz gibi tanmlayarak programlamak insan beyninin

    anlamas asndan ok daha kolaydr. Bundan nceki nesne temelli programlama

    dilerinden hibiri ok yaygnlk kazanmamt. Bu tr dillere Smaltalku rnek

    verebiliriz. C++ nesne temelli programlama yaplabilen bir dildir. Fakatyapsal(structural) bir programlama dili olan C dilinin bir uzants olarak

    gelitirildiinden, tam anlamyla nesne temelli bir dil olduu sylenemez.[10]

    Java dilini gelecein dili yapan dier bir zellii de, ok kullanml(multi tasking) ve

    paralel kullanml(multi threading) bir dil olmasdr. ok kullanmllk birden fazla

    ilemin ayn anda yaplabilmesinin tanmdr. Paralel kullanmllk ise birden fazla

    programn ayn anda hafzay beraber kullanlabilmesidir. rnek olarak Word veExcel programlarnn Windows XP ortamnda ayn anda kullanlmasdr. Baz eski

    programlama dillerinde ok kullanmllk programlanabiliyordu. Paralel kullanm

    olanaklarn sunan ilk bilgisayar dili ise Javadr. Paralel kullanm paralel

    programlama kavramndan ayrdr ve kartrlmamaldr. Paralel programlamada

    birden fazla merkezi ilem birimine (CPU), ayr programlar veya bir programn ayr

    paralar gnderilir. Paralel kullanmda ise bir CPUnun kullanm zaman kk

    paralara ayrlarak, deiik program veya program paracklar bu zaman

    paketiklerini paylaarak kullanrlar.

  • 7/21/2019 web java sunumu tez.pdf

    25/213

    10

    Javay nemli bir program dili haline getiren en nemli zellii ise, kullanlan

    bilgisayardan bamsz olmasdr. Javada yazlan bir program Unix, Macintosh,

    Windows 98, Windows XP veya herhangi bir makinede hi deitirilmeden

    kullanlabilir. Java programlarnn grafikleri, internet sayfalarnn programlama dili

    olan HTML(Hypertext Markup Language) ile aktarlr. Bu yzden HTML ve Java

    programlarn birlikte kullanmak ve Java programlarn gerek zamanda internet

    sayfalarnda gstermek mmkndr. [9]

    Javann HTML diliyle kullanlabilmesi, baz kiilerde HTMLnin bir paras olduu

    gibi bir kavram gelimesine yol amtr. Programlamaya yeni balayanlar sk sk

    HTML ile Javay birbirine kartrrlar veya Javann, HTMLnin bir uzantsolduunu dnrler. Bu temelde olduka yanl bir varsaymdr. HTML, internet

    belgelerini birbirine balamak amacyla gelitirilmibir belge ilem sistemidir ve bir

    programlama dili deildir. HTML ile Javann tek gerek ilgisi HTMLdeki applet

    komutudur. Bu komut yardmyla, Java dilinde yazlm programlarn sonular

    HTML ortamna dinamik olarak aktarlabilir. [11]

    Java programlama dili zaman getike hatalarn dzeltmeye devam etmitir. Java1.0, 1.1, 1.2, 1.3,1.4 ve son olarak 1.5 versiyonuyla devam etmitir. Java 1.2 srm

    ile birlikte yaplan ciddi deiikliklerle Java 2 adn almtr.

    zellikle Java 1.3 ve 1.4 ile gelen baz ilerlemeler Java uygulamalarnn daha hzl

    almasn salad iin Java son birka yl ierisinde daha da popler hale

    gelmitir.

    Bir bilgisayar program, genel olarak belirlenen bir bilgisayar platformunda (letim

    sistemi) alan 1 ve 0lardan olumaktadr. Bu yaplar insanlarn anlayabilecei

    ekilde deillerdir. Bu durumda programlama dilleri devreye girer. Bu dillerde

    yazlan programlar baka programlar tarafndan eitli ilemlerden geirilir ve 1 ve 0

    haline getirilir. Tpk doal diller gibi, programlama dillerinin de bir yaps ve sz

    dizimi vardr. Bir programlama dilini renmek de ilk olarak bu yapy anlamak ve

    szdizimi hatas yapmadan komutlar yazabilmekle balar.

  • 7/21/2019 web java sunumu tez.pdf

    26/213

    11

    Java, internet tabanl ve veritabanlarna balantlar ieren, stelik taraycdan

    kullanlan bir grsel arabirim gerektiren uygulamalar yazmak iin dier dillerden

    daha gelimi zelliklere sahiptir. Servlet, JSP, JDBC, EJB, JMX gibi Java

    teknolojileri bu tarz uygulamalar yazarken ciddi kolaylklar salamaktadr. [11]

    2.2. Java Dilinin Temelleri

    Java program normalde 5 blmde altrlr. Bunlar Edit, Compile, Load, Verify

    ve Executedur. Java programlarn altrabilmek iin Java 2 Software

    Development Kit (J2SDK) versiyon 1.5.0 kurulmaldr.

    Birinci blmde bir dosyann dzenleme ilemi yaplmaktadr. Bu ilem bir editr

    program ile yaplr. Programc Java programn editr kullanarak yazar ve gerekli

    olduunda dzeltmelerini yapar. Program yazdktan sonra, program editr program

    sayesinde diske kaydeder(Harddisk, Disket, USB Disk vb.). Java program dosyalar

    kaydedildiklerinde Java uzantsn alrlar. Java isimli uzantlar bu dosyann Java

    programlama dilinin kaynak kodu olduunu gsterir.

    kinci blmde programc program derlemek iin JAVAC komutunu kullanr. Java

    derleyicisi, Java programn Bytecode yapsna dntrr. Eer program doru bir

    ekilde derlenmise, derleyici Welcome.class isminde bir dosya oluturur. Bu dosya

    ierisinde komutlarn Bytecode hali bulunmaktadr.

    nc blm ykleme diye adlandrlr. Program altrlmadan nce ilk olarak

    hafzaya yerletirilmelidir. Bu ilem Bytecodelar ieren snf(class) dosyalarn alanClass Loader ile yaplr ve onlar hafzaya aktarr. .Class dosyalar sistemdeki hard

    disk ten veya bir azerinden yklenebilir.

    Drdnc blmde yklenen snf(class) dosyalarnn bytecodelar Bytecode

    Verifier sayesinde dorulanr. Bu dorulama ilemi snf(class) Bytecodelarnn

    geerli olduunu kesinletirir ve Javann gvenlik snrlamalarn bozmaz. Java

    kuvvetli bir gvenlik iermektedir. nk Java programlar a zerinden dosyalara

  • 7/21/2019 web java sunumu tez.pdf

    27/213

    12

    ve sisteme zarar vermemelidir. Bytecode dorulamas, ayn zamanda a zerinden

    yklenen uygulamalarda da olur.

    Son olarak beinci blmde, iletim sisteminin kontrolndeki yap program bir

    Bytecodea evirir. Bylece program tarafndan belirtilen ilemler gsterilir. Bu

    ilemin olmas iin iki tr program vardr. Bunlar uygulamalar ve appletlerdir.

    Uygulama dediimiz yapya, kelime ilemci program, izim program veya bir mail

    program rnek gsterilebilir. Bu tr programlar kullancn kendi bilgisayarnda

    depolanr ve altrlr. Applet ise internet tarayclarna bal uzak bilgisayarlarda

    depolanan kk programlara denir. Buradaki uzak bilgisayarlar web sunuculardr.

    Appletler uzaktaki web sunucu bilgisayarnda yklenir, taraycda altrlr ve

    altrma ilemi bittii zaman bilgisayardan boaltlr. Uygulamalar hafzayayklenir ve Java derleyicisindeki Java komutu ile altrlr.

    2.3. Hogeldin Java Uygulamas

    Java Hogeldin program altrld zaman hogeldin uygulamas iin derleyici

    alr ve hogeldin programnda kullanlan bilgiler Class Loader ile yklenir. ekil

    2.1de Java programnn alma evreleri grnmektedir.

  • 7/21/2019 web java sunumu tez.pdf

    28/213

    13

    ekil 2.1. Tipik Java evreleri [12]

    Java platformu ana gruba ayrlr.

    Standart Java

    Enterprise Java

    Tketici iin ve gml cihazlar iin Java (embedded devices)

  • 7/21/2019 web java sunumu tez.pdf

    29/213

    14

    Yukardaki kategoriler alacak olursa 3 gruba ayrlr.

    2.3.1. Standart java

    Java 2 SDK (J2SE)

    Java 2 Runtime Environment

    Java Plug-in

    Java Web Start

    Java HotSpot Server Virtual Machine

    Collections Framework

    Java Foundation Classes (JFC) Swing Components

    Pluggable Look & Feel

    Accessibility

    Drag and Drop

    Security

    Java IDL

    JDBC Java Beans

    Remote Method Invocation (RMI)

    Java 2D

    2.3.2. Enterprise java

    Enterprise Java Beans (EJB) Architecture Java Server Pages (JSP)

    Java Servlet

    Java Naming and Directory Interface (JNDI)

    Java IDL

    JDBC

    Java Message Service (JMS)

    Java Transaction (JTA)

    Java Transaction Service (JTS)

  • 7/21/2019 web java sunumu tez.pdf

    30/213

    15

    Java Mail

    RMI-IIOP

    Software Development Kit & Application Model

    Java 2 SDK, Enterprise Edition (J2EE)

    Sun BluePrints Design Guidelines for J2EE

    2.3.3. Java micro edition

    Java 2 Platform, Micro Edition (J2ME technology)

    Connected Device Configuration (CDC)

    Connected Limited Device Configuration (CLDC) C Virtual Machine (CVM)

    K Virtual Machine (KVM)

    Personal Java

    Java Card

    Java Phone API

    Java TV API

    Jini Network Technology Mobile Information Device Profile (MIDP) [12]

    2.4. Java Programlama Dili Temel Deiken Trleri

    Programlama dillerinde rakamlar bilgisayar belleinin temel depolama birimlerine

    yazlrlar. Temel bilgisayar bellek birimi bit olarak adlandrlr. Bir bilgisayar

    belleindeki tek bir transistrden olumutur. Bu transistrden akm geiyorsatansistrn veya bitin bellek deeri 1 veya true(doru) olarak alnr. Eer akm

    gemiyor veya dk dzeyde bir akm geiyorsa transistrn bellek deeri 0 veya

    false(yanl) olarak alnr. Bilgisayar bit birimleri bir araya gelerek, bilgisayar temel

    deiken trlerinin yazlabilecei bir sistem oluturur. Deiken tr bilgisayar

    tarafndan bilinmelidir, nk ayn bit topluluu bir harfi simgeleyebilecei gibi bir

    rakam da simgeleyebilir. Java dilinde temel deiken trleri mevcuttur. Aada bu

    temel deikenler anlatlmtr.

  • 7/21/2019 web java sunumu tez.pdf

    31/213

    16

    2.4.1. Booelan deiken tr

    Boolean deiken tr mantk ilemlerinde kullanlr. Sadece true(doru) veya (false)

    deerleri alr. True doru false yanlanlam tar. Mantk deikenlerine dorudan

    true(doru) veya false(yanl) deerleri yklenebilecei gibi dier deikenleri

    mantk ilemlerini kullanarak ve karlatrarak ta deerler programlarn iinde

    hesaplanabilir. Tablo 2.1de temel deikenler verilmitir.

    Tablo 2.1. Java Temel Deiken trleri

    Deiken Tr Trke karl Bit bykl Snr Deerleri

    Boolean Mantk deikeni 1 true(doru) , false(yanl)

    Char Harf deikeni 16 '\u0000' den '\uFFFF'

    Byte Tam say deikeni 8 -128 den 127 e kadar

    Short Tam say deikeni 16 -32768 den 32767 e kadar

    Int Tam say deikeni 32 -2157483648 den 2147483647 e

    kadar

    Long Tam say deikeni 64 -9223372036854775808 den

    9223372036854775808 e kadar

    Float Gerek say deikeni 32 -3.40292347e+38 den

    3.40292347e+38 e kadar

    Double Gerek say deikeni 64 -1.7976931348623157e+308 den

    1.7976931348623157e+308 e

    kadar

    Aadaki kk program paras mantk deikeni ilk mantk deikeninitanmlamakta ve true(doru) deerini bu deikene yklemektedir.

    boolean ilkmantkdegiskeni;

    ilkmantikdegiskeni=true;

  • 7/21/2019 web java sunumu tez.pdf

    32/213

    17

    2.4.2. Char deiken tr

    Char deiken tr karakterlerin tanmlanmasnda kullanlr. Karakterler Java dilinde

    ISO Unicode kodu ile bilgisayara aktarlr. Unicode 4 hexadecimal (16 tabanl)

    saynn bir araya gelmesiyle oluur. Hexadecimal say sisteminin onlu ve ikili say

    sistemiyle eitlii aadaki tabloda gsterilmitir. Tablo 2.2de hexadecimal, onlu ve

    ikili say sistemleri listeleri verilmitir.

    Tablo 2.2. Hexadecimal(onaltl), onlu ve ikili say sistemleri eitlikleri

    ISO Unicode da tanmlanan '\u0041' kodu 'A' harfi anlamna gelir. Veya '\u03E1'

    kodu '' karakterini tanmlar. ISO Unicode karakter setinin ilk iki rakam sfr

    Hexadecimal Onlu kili0 0 0000

    1 1 0001

    2 2 0010

    3 3 0011

    4 4 0100

    5 5 0101

    6 6 0110

    7 7 0111

    8 8 1000

    9 9 1001

    A 10 1010

    B 11 1011

    C 12 1100

    D 13 1101

    E 14 1110

    F 15 1111

  • 7/21/2019 web java sunumu tez.pdf

    33/213

    18

    olduunda ASCII karakter kodunu tanmlar. Aadaki rnekte char tipi A1, A2 ve

    alpha1,alpha2 deikenlerine A ve a harflerini yklemektedir.

    char A1,A2;

    char alpha1,alpha2;

    A1='\u0041';

    A2='A';

    alpha1='\u03E1';

    alpha2='';

    2.4.4. Tam say deiken trleri

    Tam say deikenler hafzada igal ettikleri yere gre byte(8 bit), short(16 bit),

    int(32 bit) ve long(64 bit) adn alrlar. Bir bitlik hafzaya sadece iki rakamn (0 veya

    1) yazlabilecei gz nne alnrsa rnein sekiz bitlik byte tr tamsay

    deikenine 256 say (ikili say eiti 11111111) yazlabilecei ortaya kar. Bitlerden

    biri + veya - iareti iin kullanldndan byte deikeninin snr deerleri -128den

    127 e kadardr. Eer bir tamsay deikenin sadece art deerleri kullanlmakistenilirse unsigned terimi kullanlr. rnein unsigned byte tipi tamsay deikenin

    snr deerleri 0 dan 256 ya kadardr. Tamsay deiken trleri iinde en fazla

    kullanlan int trdr. Aadaki rnekte int tr ilktamsayi deikenine 32 rakam

    yklenmektedir.

    int ilktamsayi;

    ilktamsayi=32;

    bu iki satrlk rnek tek bir satr olarak

    int ilktamsayi=32;

    eklinde de yazlabilir.

  • 7/21/2019 web java sunumu tez.pdf

    34/213

    19

    Javadaki tamsay deiken trleri + ve deeri alabilen trlerdir. rnein byte

    deiken trnde 128 den +127 e kadar toplam 256 say kullanlabilir. Eer blge

    kullanlmayacaksa tamsay deikenlerin kullanm blgesini unsigned deyimini

    kullanarak tamamen art blgeye ekilebilir. Aada bunla ilgili bir rnek

    bulunmaktadr.

    unsigned byte artibolgetamsayisi;

    Yukardaki rnekte tanmlanan artibolgetamsayisi deikeni 0 ile 256 arasnda

    deerler alabilir.

    2.4.5. Gerek say deiken trleri

    Gerek say sistemleri de 0 ve 1 bitleri kullanlarak oluturulabilir. Gerek saylarn

    tamsaydan kk ksmlar ikilli tabanda eksi stler kabul edilerek oluturulur.

    Gerek say deikende yeterli hassasiyeti salayabilmek iin genelde 64 bit

    uzunluundaki double deiken tr kullanlr. Javadaki Matematik ktphaneleride double deiken tr iin tanmlanmtr. Aadaki rnekte double tr

    ilkgercekdegisken deikenine 22.625e-7 says yklenmektedir.

    double ilkgerekdegisken;

    ilkgerceldegisken=22.625e-7;

    Eer double say hassasl yetmezse long doublekullanlabilir. Bu deiken tr128 bit boyutundadr.

    2.4.6. String nesne tipi deikeni

    String deikeni yaz yazdrma ileri iin kullanlr. Nesne tr deikendir. Java

    dilinde char deiken tr kullanlarak tanmlanm bir nesne tipi deikendir.

    Aadaki rnekte bu deiken trnn kullanl grlmektedir.

  • 7/21/2019 web java sunumu tez.pdf

    35/213

    20

    String a="ali";

    String c="veli";

    String d;

    d=a+b; // d nin kdeeri "ali veli"

    System.out.println(d); // bu satr ali veli kts veri

    String tr sabitler her zaman " " iaretleri arasna yazlrlar ve + iaretiyle bir araya

    getirilebilirler. Aadaki rnekte bu deiken trnn kullanl grlmektedir.

    String a=new String("ali");

    String c=new String("veli");String d=new String();

    d=a+b; // d nin deeri "ali veli"

    System.out.println(d); // bu satr ali veli kts verir

    2.4.7. Integer nesne tipi deikeni

    Integer, tam say ilemlerinde kullanlan bir deiken trdr. Integer deikeni

    Integer i;

    i=new Integer(3);

    veya

    Integer i=new Integer(3);

    eklinde tanmlanabilir. Integer tanm String deikeni zerinden de tanmlanabilir.

    Aadaki rnekte bu yapnn kullanl grlmektedir.

    String s=15;

    Integer i=new Integer(s);

    Yukarda 15 deeri s deikenine yklenir. Integer deeri int deerine evrilebilir.

  • 7/21/2019 web java sunumu tez.pdf

    36/213

    21

    int x;

    Integer y=new Integer(3);

    x=Integer.IntegerValue(y);

    String deerini int deerine dorudan evirmek iinse

    String s=15;

    Int x=Integer.parseInt(s);

    kullanlr.

    int tipi deikeni String deikenine dntrmek iin

    int x=3;

    String s=Integer.toString(x);

    Komutlar kullanlr.

    2.4.8. Double nesne tipi deikeni

    Double deikeni kullanm olarak Integer deikeninden bir fark yoktur. Ayn

    tanmlamalar Integer yerine Double kullanlarak yaplabilir. Deikenler

    Double x;

    X=new Double(3.66e5); Veya

    Double x=new Double(3.66e5);

    eklinde tanmlanabilir.

    String deerini double (temel deiken) deerine dorudan evirmek iinse

    String s=15;

    Int x=Double.parseDouble(s);

  • 7/21/2019 web java sunumu tez.pdf

    37/213

    22

    lemi kullanlabilir.

    Double tipi (temel) deikeni String deikenine deitirmek iin

    Double x=3.75;

    String s=Double.toString(x);

    kullanlr.

    2.4.9. Dier nesne temelli deiken trleri

    Object, Long, Float, Boolean, Character, Vector gibi dier nesne tipi deiken trleri

    de mevcuttur. Object nesne tipi tm bu deiken nesne tiplerini iinde barndran

    genel bir tiptir. Tm nesne tipi deikenlerin bizim iin temel avantaj, alt metotlarn

    kullanarak ilemler gerekletirme ihtimalidir. Fakat bu tr deikenler temel

    deiken trlerine gre daha ok hafza yeri igal ettiklerinden mecbur kalnmadka

    da kullanlmamaldrlar. Ayrca nesne tipi BigDecimal ve BigInteger trleri dehassasiyeti kullanc tarafndan belirlenen nesne tipi deikenler olarak

    kullanlabilirler.

    2.4.10. Final terimi ve sabitler

    Java dilinde deiken yerine sabit deer kullanlmak istenilirse tanmn bana final

    szc getirilir. Final olarak tanmlanan sabitlerin bir kere deerleri verildiktensonra deitirilemez. Aadaki rnekte bu deiken trnn kullanl

    grlmektedir.

    final double pi=3.14159;

    Yukardaki rnekte kullanlan yap Pi sabitini tanmlar.

  • 7/21/2019 web java sunumu tez.pdf

    38/213

    23

    2.4.11. Primitive tipler

    Tablo 2.3de Java dilindeki 8 tane primitive tip listelenmektedir. nceki C ve C++

    dillerinde olduu gibi, Java dili de tm deikenlerin bir tipi olmasn istemektedir.

    Bu dnce nda Java kuvvetli tipli dilleri kapsamaktadr.

    C ve C++ dillerinde, programclar sk sk deiik bilgisayar sistemlerini destekleyen

    programlarn ayr versiyonlarn yazmak zorunda kalrlar. nk primitive tiplerin

    bilgisayardan bilgisayara ayn olduu garanti edilemez. rnein bir makinedeki

    tamsay deeri hafzann 32 biti ile temsil edilirken, baka bir makinede hafzann 16biti ile temsil edilebilir. Javada ise tamsay deerler daima 32 bittir.

    Tablo 2.3. Java dilindeki primitive tipler

    2.5. Nesneler ve Atamalar

    Nesneler iin atama ilemleri, temel tiplere gre biraz daha karmaktr. Nesneleri

    ynetmek iin referanslar kullanlr; eer, nesneler iin bir atama ilemi sz konusu

    ise, akla gelmesi gereken ilk ey, bu nesnelere bal olan referansn gsterdii

    hedeflerde bir deiiklik olacadr. Aada bu zellik ile ilgili rnek bir program

    bulunmaktadr.

    OPERATRLER ARIIMI TP

    ++ -- Sadan sola Unary Postfix

    ++ -- + - Sadan sola Unary

    * / % Soldan saa arpml

    + - Soldan saa Katkl

    < >= Soldan saa Balantl

    == != Soldan saa Eitlik

    ?: Sadan sola Durumsal

    = += -= *= /=

    %=

    Sadan sola Atama

  • 7/21/2019 web java sunumu tez.pdf

    39/213

    24

    class Sayi {

    int i;

    }

    public class NesnelerdeAtamaislemi {

    public static void main(String[] args)

    {

    Sayi s1 = new Sayi();

    Sayi s2 = new Sayi();

    s1.i = 9;

    s2.i = 47;

    System.out.println("1: s1.i: " + s1.i +", s2.i: " + s2.i);s1 = s2; // referanslar kopyalaniyor.

    System.out.println("2: s1.i: " + s1.i +", s2.i: " + s2.i);

    s1.i = 27;

    System.out.println("3: s1.i: " + s1.i +", s2.i: " + s2.i);

    }

    }

    Program 2.1. Nesnelerde atama rnei

    Yukarda verilen uygulama u ekilde almaktadr. nce 2 adet Sayi nesnesi

    oluturulmaktadr. Bunlar Sayi tipindeki referanslara bal olan s1 ve s2dir. Bu

    referanslar artk 2 ayr Sayi nesnesini gstermektedirler. Daha sonra s1 referansnn

    iaret ettii Sayi nesnesinin i alanna 9 says atanmaktadr. Benzer ekilde s2

    referansnn iaret ettii Sayi nesnesinin ialanna da 47 says atanmaktadr. Yaplan

    ilemlerin dzgn olup olmadklarnn grlebilmesi iin ekrana yazdrldnda

    aadaki sonu ile karlalr.

    1: s1.i: 9, s2.i: 47

  • 7/21/2019 web java sunumu tez.pdf

    40/213

    25

    2.6. Java Operatrleri

    Operatrler programlama dillerinin en temel ilem yapma yeteneine sahip simgesel

    isimlerdir. Tm programlama dillerinde nemli bir yere sahip olup, bir ilem

    operatr ile gerekletirilebiliyorsa en hzl ve verimli ancak bu ekilde yaplr

    denilebilir. Yalnzca bir operatr ile gerekletirilemeyen ilemler, ya bir grup

    operatrn bir araya getirilmesiyle ya da o ilemi gerekletirecek bir metot

    yazlmasyla salanr. Java dili olduka zengin ve esnek operatr kmesine sahiptir.

    rnein matematiksel, mantksal, koulsal, bit dzeyinde gibi birok operatr

    kmesi vardr ve bunlar ierisinde eitli operatrler bulunmaktadr. Aada

    operatr eitleri gsterilmitir. Aritmetik Operatr

    likisel Operatr

    Mantksal Operatrler

    Bit dzeyinde Operatrler

    Operatrler, genel olarak, zerinde ilem yapt deiken/sabit saysna gre tekli

    operatr veya ikili operatr olarak snflanmaktadr. 3 adet deiken/sabite ihtiyaduyan operatrlere de l operatr denilir. Tekli operatrler hem nek(prefix) hem

    de sonek(postfix) ilemlerini desteklerler. nekten kastedilen anlam operatrn

    deikenden nce gelmesi, sonekte operatrden sonra gelmesidir.

    operatr deiken //nek ifadesi

    Sonek ilemlerine rnek olarak,

    deiken operatr// sonek ifadesi

    kili operatrlerde operatr simgesi ara ek(infix) olarak iki deikenin ortasnda

    bulunur.

    deiken1 operatr deiken2 //ara ek

    l operatrlerde ara ek(infix) ilemlerde kullanlr. Javada l operatr bir tanedir.

  • 7/21/2019 web java sunumu tez.pdf

    41/213

    26

    deiken1 ? deiken2 :deiken3 //ara ek

    2.6.1. Aritmetik operatrler

    Java programlama dili kayan noktal(floating-point) ve tamsaylar iin birok

    aritmetik ilemi destekleyen eitli operatrlere sahiptir. Bu ilemler toplama

    operatr(+), kartma operatr(-), arpma operatr(*), blme operatr (/) ve son

    olarak da artk blme(%) operatrdr. Tablo 2.4de aritmetik operatrler verilmitir.

    Tablo 2.4. Javada aritmetik operatrler

    Operatr Kullanl Aklama

    + deiken1 + deiken2 deiken1 ile deiken2yi toplar

    - deiken1 - deiken2 deiken1 ile deiken2yi karr

    * deiken1 * deiken2 deiken1 ile deiken2yi arpar

    / deiken1 / deiken2deiken1, deiken2 tarafndan

    blnr

    % deiken1 % deiken2deiken1in deiken2 tarafndan

    blmnden kalan hesaplanr.

    Verilenler bir Java uygulamasnda aadaki gibi gsterilebilir.

    public class AritmetikOrnek

    {

    public static void main(String[] args)

    { // Deikenler atanan deerler

    int a = 57, b = 42;

    double c = 27.475, d = 7.22;

    System.out.println(Deiken Deerleri...);

    System.out.println( a = + a);

    System.out.println( b = + b);

  • 7/21/2019 web java sunumu tez.pdf

    42/213

    27

    System.out.println( c = + c);

    System.out.println( d = + d);

    // Saylar toplanyor

    System.out.println(Toplama...);

    System.out.println( a + b = + (a + b));

    System.out.println( c + d = + (c + d));

    // Saylar karlyor

    System.out.println(kartma...);

    System.out.println( a - b = + (a - b));

    System.out.println( c - d = + (c - d));

    // Saylar arplyor

    System.out.println(arpma...);

    System.out.println( a * b = + (a * b));

    System.out.println( c * d = + (c * d));

    // Saylar blnyor

    System.out.println(Blme...);

    System.out.println( a / b = + (a / b));System.out.println( c / d = + (c / d));

    // Blme ilemlerinden kalan say hesaplanyor

    System.out.println(Kalan sayy hesaplama...);

    System.out.println( a % b = + (a % b));

    System.out.println( c % d = + (c % d));

    // double ve int tipleri kark ekilde kullanlyor.

    System.out.println(Kark tipler...);

    System.out.println( b + d = + (b + d));

    System.out.println( a * c = + (a * c));

    }

    }

    Program 2.2. Aritmetik ilemler

    Uygulamann sonucu aadaki gibi olur.

  • 7/21/2019 web java sunumu tez.pdf

    43/213

    28

    Deiken Deerleri...

    a = 57

    b = 42

    c = 27.475

    d = 7.22

    Toplama...

    a + b = 99

    c + d = 34.695

    kartma...

    a - b = 15c - d = 20.255000000000003

    arpma...

    a * b = 2394

    c * d = 198.36950000000002

    Blme...

    a / b = 1

    c / d = 3.805401662049862Kalan sayy hesaplama...

    a % b = 15

    c % d = 5.815000000000002

    Kark tipler...

    b + d = 49.22

    a * c = 1566.075

    Verilen rnek dikkatlice incelenirse, tamsay ile kayan noktal saylar bir operatrn

    deikenleri olursa sonu kayan noktal say olmaktadr. Bu ilemde tamsay,

    kendiliinden kayan noktal sayya evrilir. Tablo 2.5te dntrme ileminde

    izlenen yol verilmitir.

  • 7/21/2019 web java sunumu tez.pdf

    44/213

    29

    Tablo 2.5. Operatrlerin veri tipini etkilemesi

    Sonu Veri Tipi Deikenlerin Veri Tipleri

    longDeikelerin float veya double tipinden farkl olmas

    ve en az bir deikenin long tipinde olmas

    intDeikelerin float veya double tipinden farkl olmas

    ve deikenlerin long tipinden farkl olmas

    double En az bir deikenin double tipinde olmas

    floatDeikenlerin hibirinin double tipinde olmamas ve

    deikenlerden en az birinin float tipinde olmas

    + ve operatrlerinin, ayn zamanda, karakter tipindeki verileri saysal tipe

    dntrme grevleri de vardr. Tablo 2.6da bu operatrler verilmitir.

    Tablo 2.6. Toplama ve kartma operatrlerinin tip etkilemesi

    Operatr Kullanlekli Aklama

    + + deikenEer deiken char, byte veya short tipinde

    ise int tipine dntrr

    - - deikenDeikenin deerini eksi yapar (-1 ile

    arpar).

    Aada bu zelliin daha rahat anlalabilmesi iin rnek bir programbulunmaktadr.

    public class OperatorTest

    {

    public static void main(String args[] )

    {

    char kr = 'a' ;int b = +kr ; // otomatik olarak int temel tipine evrildi

  • 7/21/2019 web java sunumu tez.pdf

    45/213

    30

    int c = -b ; // deeri eksi yapt

    System.out.println("kr = " + kr );

    System.out.println("b = " + b );

    System.out.println("c = " + c );

    }

    }

    Program 2.3. Operatr test rnei

    Char temel(primitive) bir tiptir ve bu tiplere deer atanrken veri tek trnak ierisinde

    verilmelidir. Bu rnekte girilen deer a harfidir. Daha sonra + operatr kullanlarakchar deerini int tipine dntrlyor ve son olarak ta bu int deeri -operatryle

    eksi hale getiriliyor. Uygulamann sonucu aadaki gibi olur.

    kr = a

    b = 97

    c = -97

    2.6.2. likisel operatrler

    likisel operatrler iki deeri karlatrarak bunlar arasndaki mantksal ilikiyi

    belirlemeye yararlar. rnein iki deer birbirine eit deilse, ==operatryle bu

    iliki sonucu yanl(false) olur. Tablo 2.7de ilikisel operatrler ve anlamlar

    verilmitir.

  • 7/21/2019 web java sunumu tez.pdf

    46/213

    31

    Tablo 2.7. likisel operatrler

    Operatr Kullanlekli True deeri dner eer ki........

    > deiken1 > deiken2 deiken1, deiken2den bykse

    >= deiken1 >= deiken2deiken1, deiken2den bykse

    veya eitse

    i = + (j > i)); //true - j, i den Byktr

    System.out.println( k > j = + (k > j)); //false - k, j ye eit//Byktr veya eittir

  • 7/21/2019 web java sunumu tez.pdf

    47/213

    32

    System.out.println(Byktr veya eittir...);

    System.out.println( i >= j = + (i >= j)); //false - i, j den kktr

    System.out.println( j >= i = + (j >= i)); //true - j, i den byktr

    System.out.println( k >= j = + (k >= j)); //true - k, jye eit

    //Kktr

    System.out.println(Kktr...);

    System.out.println( i < j = + (i < j)); //true - i, jden kktr

    System.out.println( j < i = + (j < i)); //false - j, i den byktr

    System.out.println( k < j = + (k < j)); //false - k, jye eit

    //Kktr veya eittir

    System.out.println(Kktr veya eittir...);System.out.println( i

  • 7/21/2019 web java sunumu tez.pdf

    48/213

    33

    i > j = false

    j > i = true

    k > j = false

    Byktr veya eittir...

    i >= j = false

    j >= i = true

    k >= j = true

    Kktr...

    i < j = true

    j < i = false

    k < j = falseKktr veya eittir...

    i

  • 7/21/2019 web java sunumu tez.pdf

    49/213

    34

    Tablo 2.8. Mantksal operatrlerin kullanm

    Aada birden ok ilikisel karlatrmann mantksal operatrler birletirilmesi

    iin rnekler verilmitir. Buradaki m,r,z,a,b isimleri deikenlerdir.

    m>10 && m0 && r10 && b

  • 7/21/2019 web java sunumu tez.pdf

    50/213

    35

    int d = 1 ;

    /* (a < b) = bu ifadenin doru (true) olduu bilinmektedir

    (c < d) = bu ifadenin yanl(false) olduu bilinmektedir */

    System.out.println( (a

  • 7/21/2019 web java sunumu tez.pdf

    51/213

    36

    Tablo 2.9. Bit dzeyinde operatrler

    Operatr Kullanlekli Aklama

    & deiken1 & deiken2 bit dzeyinde VE

    | deiken1 | deiken2 bit dzeyinde VEYA

    ^ deiken1 ^ deiken2 bit dzeyinde YA DA

    ~ ~deiken bit dzeyinde tmleme

    >> deiken1 >> deiken2 bit dzeyinde saa teleme

    > deiken1 >>> deiken2 bit dzeyinde saa teleme

    2.6.4.1. Ve(and) operatr

    VE ileminde her iki taraf ta doru(true) ise sonu doru dier durumlarda sonu

    yanl(false) olur. VE ilemi doruluk tablosu Tablo 2.10da verilmitir. Bit

    dzeyinde VE ileminde operatrn hemen sa ve sol yannda bulunanparametrelerin ikili karlklar bit bit VE ilemine sokulur. lem en sadaki bitten

    balatlr. rnein 10 ve 9 saylarnn ikili karlklar srasyla 1010 ve 1011dir. Her

    ikisi bit dzeyinde VE ilemine sokulursa, sonu 1000 kar. Aada bu rnein

    almas grnmektedir.

    1010 10

    & 1001 9---------

    1000

  • 7/21/2019 web java sunumu tez.pdf

    52/213

    37

    Tablo 2.10. VE(AND) ilemi doruluk tablosu

    deiken1 deiken2 Sonu

    0 0 0

    0 1 0

    1 0 0

    1 1 1

    2.6.4.2. Veya(or) operatr

    VEYA ileminde her iki taraftan birinin doru(true) olmas sonucun doru kmas

    iin yeterlidir. VEYA ilemi doruluk tablosu Tablo 2.11de verilmitir. Bit

    dzeyinde VEYA ileminde operatrn hemen sa ve sol yannda bulunan

    parametrelerin ikili karlklar bit bit VEYA ilemine sokulur. lem en sadaki

    bitten balatlr. rnein 10 ve 9 saylarnn ikili karlklar srasyla 1010 ve

    1011dir. Her ikisi bit dzeyinde VE ilemine sokulursa, sonu 1011 kar. Aada

    bu rnein almas grnmektedir.

    1010 10

    1001 9

    --------- 1011

    Tablo 2.11. VEYA(OR) ilemi doruluk tablosu

    deiken1 deiken2 Sonu

    0 0 0

    0 1 1

    1 0 1

    1 1 1

  • 7/21/2019 web java sunumu tez.pdf

    53/213

    38

    2.6.4.3. Yada(Exclusive or) operatr

    YADA ileminde her iki taraftan yalnzca birinin doru(true) olmas sonucu doru

    yapar. Her iki tarafn ayn olmas durumunda sonu yanl(false) kar. YADA

    ileminin doruluk tablosu Tablo 2.12de verilmitir.

    Tablo 2.12. Dlayan YADA ilemi doruluk tablosu

    Deiken1 deiken2 Sonu

    0 0 0

    0 1 1

    1 0 1

    1 1 0

    VE ve VEYA ilemlerinde kullanlan rnek saylar YADA iin de gsterilirse,

    sonu aadaki gibi olur.

    1010 10

    ^ 1001 9

    ---------

    0011

    2.6.4.4. Tmleme(Not) operatr

    a bir deiken ad ise ~a ifadesi alm : ~a = (-a) - 1, yani, ~10= (-10) -1 = -11

    sonucunu verir. Aada tmleme operatr ile ilgili bir rnek bulunmaktadr.

    public class BitwiseOrnek2 {

    public static void main( String args[] )

    {

    int a = 10, b = 9, c = 8 ;

  • 7/21/2019 web java sunumu tez.pdf

    54/213

    39

    System.out.println( (a & b) --> + (a & b) );

    System.out.println( (a | b) --> + (a | b ) );

    System.out.println( (a ^ b) --> + (a ^ b) );

    System.out.println( ( ~a ) --> + ( ~a ) );

    System.out.println( ( ~b ) --> + ( ~b ) );

    System.out.println( ( ~c ) --> + ( ~c ) );

    }

    }

    Program 2.6. Bitwise rnei

    Uygulamann sonucu aadaki gibi olur.

    (a & b) --> 8

    (a | b) --> 11

    (a ^ b) --> 3

    ( ~a ) --> -11

    ( ~b ) --> -10( ~c ) --> -9

    VE, VEYA ve YADA(Exclusive Or) operatrleri birden ok mantksal sonu ieren

    ifadelerde kullanlabilir.

    2.6.5. teleme(Shift) operatrleri

    Bit dzeyinde ilem yapan bir grup operatrn ad teleme operatrleri olarak

    adlandrlrlar. Bunlar >>, >> ve >>> simgeleriyle gsterilmektedir. teleme

    operatrleri veri zerindeki bitlerin saa veya sola kaydrlmas iin kullanlr.

    Aadaki rnekte bu operatrlerin Java uygulamalarnda nasl kullanlacaklar

    grlebilir.

    public class Bitwise {

    public static void main( String args[] ) {

  • 7/21/2019 web java sunumu tez.pdf

    55/213

    40

    int a = 9 ;

    System.out.println( (a >> 1) --> + (a >> 1) );

    System.out.println( (a >> 2) --> + (a >> 2) );

    System.out.println( (a + (a > 2) --> + (a >>> 2) );

    }

    }

    Program 2.7. teleme operatrleri rnei

    Verilen rnekte a deikenine 9 says atanmtr; bu saynn ikili karl aadaki

    gibi bulunur.

    Yani, 910 saysnn ikili tabandaki karl 1001 olmaktadr. Buna gre a deikeni

    zerinde teleme operatrnn etkisi aada akland gibi olur.

    (a >> 1) eklinde ifade ile, 9 saysnn ikilik karl olan 1001 bitleri saa doru 1

    basamak kaydrlr. Boalan yere 0 yerletirildiinde sonu elde edilir; dolaysyla

    0100 elde edilir ve bunun ondalk karl 4 kar.

    (a >> 2) eklinde ifade ile 9 saysnn ikilik karl olan 1001 bitlerini saa doru 2

    basamak kaydrlr; __10, boalan yerlere 0 yerletirildiinde sonu elde edilir.Dolaysyla 0010 elde edilir ve bunun ondalk karl 2 kar.

    (a

  • 7/21/2019 web java sunumu tez.pdf

    56/213

    41

    (a >> 2) eklinde verilen ifadenin (a >> 2) ile arasnda sonu olarak bir fark yoktur.

    Yine 2 elde edilir. Arasndaki fark >>> operatr iaretsiz (unsigned) saa doru

    kaydrma yapar.

    Eer char, byte, veya short tiplerinde kaydrma ilemi yaplacaksa bu tipler ilk nce

    int tipine dntrlrler. Eer long tipinde kaydrma ilemi yaplyorsa o zaman

    yine long tipinde bir sonu elde edilir.

    Uygulamann sonucu aadaki gibi olur.

    (a >> 1) -->4

    (a >> 2) -->2

    (a 18

    (a 36

    (a >>> 2) -->2

    2.6.6. Atama operatrleri

    Atama operatr en temel operatrdr. Atama ilemi, bir deeri veya deikenin

    ieriini bir baka deikene yerletirmektir. Hemen hem tm programlama

    dillerinde atama operatr olarak = simgesi kullanlr. Yalnzca Pascal ve benzeri

    dillerde := karakter ifti kullanlr. Aada atama operatrleri ile ilgili bir rnekprogram bulunmaktadr.

    public class EnBuyukSayilar {

    public static void ekranaBas(String deger) {

    System.out.println(deger);

    }

    public static void main( String args[] ) {

    // tamsaylar

  • 7/21/2019 web java sunumu tez.pdf

    57/213

    42

    byte enbuyukByte = Byte.MAX_VALUE;

    short enbuyukShort = Short.MAX_VALUE;

    int enbuyukInteger = Integer.MAX_VALUE;

    long enbuyukLong = Long.MAX_VALUE;

    ekranaBas("enbuyukByte-->" + enbuyukByte );

    ekranaBas("enbuyukShort-->" + enbuyukShort );

    ekranaBas("enbuyukInteger-->" + enbuyukInteger );

    ekranaBas("enbuyukLong-->" + enbuyukLong );

    ekranaBas("");

    // gerek saylar

    float enbuyukFloat = Float.MAX_VALUE;double enbuyukDouble = Double.MAX_VALUE;

    ekranaBas("enbuyukFloat-->" + enbuyukFloat );

    ekranaBas("enbuyukDouble-->" + enbuyukDouble );

    ekranaBas("");

    // dier temel (primitive) tipler

    char birChar = 'S';

    boolean birBoolean = true;ekranaBas("birChar-->" + birChar );

    ekranaBas("birBoolean-->" + birBoolean );

    }

    }

    Program 2.8. Deikenlere deer atama

    Javada C dilinde olduu gibi bitiik atama operatrleri de vardr. Bunlar atama

    operatryle dier operatrlerden birinin birletirilmesinden oluurlar. Bylece ksa

    bir yazlmla hem aritmetik, teleme gibi ilemler yaptrlr hem de atama yaplr.

    rnein, int tipinde olan toplam deikeninin deeri 1 arttrmak iin aada gibi bir

    ifade kullanlabilir.

    toplam = toplam + 1;

  • 7/21/2019 web java sunumu tez.pdf

    58/213

    43

    Bu ifade bitiik atama operatryle aadaki gibi yazlabilir. Grld gibi

    deiken ad yukardaki yazmda 2, aada yazmda ise 1 kez yazlmtr.[5]

    toplam += 1;

    Tablo 2.13de bitiik atama operatrlerinin listesi verilmitir. Bu operatr, zellikle,

    uzun deiken kullanld durumlarda yazm kolayl salar.

    Tablo 2.13. Javadaki bitiik atama operatrleri

    Operatr Kullanlekli Eittir

    += deiken1 += deiken2 deiken1 = deiken1 + deiken2

    -= deiken1-= deiken2 deiken1 = deiken1 deiken2

    *= deiken1*= deiken2 deiken1 = deiken1 * deiken2

    /= deiken1/= deiken2 deiken1 = deiken1 / deiken2

    %= deiken1%= deiken2 deiken1 = deiken1 % deiken2

    &= deiken1&= deiken2 deiken1 = deiken1 & deiken2

    |= deiken1|= deiken2 deiken1 = deiken1 | deiken2

    ^= deiken1^= deiken2 deiken1 = deiken1 ^ deiken2> deiken2

    >>>= deiken1>>>= deiken2 deiken1 = deiken1 >>> deiken2

    2.6.7. String operatr

    + operatr String verilerde birletirme grevi grr. Eer ifade String ile balarsa,onu izleyen veri tipleri de kendiliinden Stringe dntrlr. Aada string

    operatr ile ilgili rnek bir program bulunmaktadr.

    public class OtomatikCevirim

    {

    public static void main(String args[ ])

    {

    int x = 0, y = 1, z = 2;

  • 7/21/2019 web java sunumu tez.pdf

    59/213

    44

    System.out.println(Sonu = + x + y + z);

    }

    }

    Program 2.9. Otomatik stringe evirme

    Uygulamann sonucu aadaki gibi olur.

    Sonu =012

    Grld gibi String bir ifadeden sonra gelen tamsaylar toplanmad. DorudanString nesnesine evrilip ekrana kt olarak gnderildiler.[13]

    2.7. Dntrme(Casting) lemi

    Temel bir veri tipi dier bir temel tipe dntrebilir; fakat oluacak deer

    kayplarndan programc sorumlu olacaktr. Aada deiken dntrme ile ilgili

    rnek bir program bulunmaktadr.

    public class IlkelDonusum {

    public static void main(String args[]) {

    int a = 5;

    double b = (double) a;

    double x = 4.15;

    int y = (int) x;

    long z = (long) y;

    System.out.println(b = + b + y = + y + z = + z);

    }

    }

    Program 2.10. Deiken dntrme

  • 7/21/2019 web java sunumu tez.pdf

    60/213

    45

    Uygulamann sonucu aadaki gibi olur.

    b = 5.0 y = 4 z = 4

    2.8. Bir Artrma ve Azaltma

    Java dilinde, ayn C dilinde olduu gibi, birok ksaltmalar vardr. En ok kullanlan

    ksaltmalardan iki tanesi arttrma ve azaltma operatrleridir; bu operatrler

    deikenin ieriini bir arttrmak veya azaltmak iin kullanlr.

    Arttrma ve azaltma operatrleri iki farkl konumda kullanlabilirler. Birincisinektir ve bu -- veya ++ operatrnn kullanlan deikenin nne gelmesi

    anlamn tar. Dieri ise sonektir. Bu ekte -- veya ++ operatrnn deikenin

    sonuna gelmesi anlamna gelir. Aada bu operatrleri gsteren tablo

    bulunmaktadr. [13]

    Tablo 2.14. Arttrma ve azaltma

    Operatr Kullanlekli Aklama

    ++ deiken++nce deikenin deerini hesaplar sonra

    deikenin deerini bir arttrr.

    ++ ++deikennce deikenin deerini arttrr sonra

    deikenin deerini hesaplar.

    -- deiken--nce deikenin deerini hesaplar sonra

    deikenin deerini bir azaltr.

    -- --deikennce deikenin deerini azaltr sonra

    deikenin deerini hesaplar.

    rnein ++a veya --a eklinde verilmesinde, nce matematiksel toplama/kartma

    ilemi gerekleir; daha sonra deer retilir. Ancak, a++ veya a-- eklinde verilmesi

    durumunda ise, nce deer retilir, daha sonra matematiksel toplama/kartma ilemigerekleir. Aada verilen ksa program bunu gzel bir ekilde ifade etmektedir.

  • 7/21/2019 web java sunumu tez.pdf

    61/213

    46

    public class OtomatikArtveAz

    {

    static void ekranaYaz(String s)

    {

    System.out.println(s);

    }

    public static void main(String[] args) {

    int i = 1;

    ekranaYaz("i : " + i);

    ekranaYaz("++i : " + ++i); // nek artrm

    ekranaYaz("i++ : " + i++); // sonek artrmekranaYaz("i : " + i);

    ekranaYaz("--i : " + --i); // nek azaltma

    ekranaYaz("i-- : " + i--); // sonek azaltma

    ekranaYaz("i : " + i);

    }

    }

    Program 2.11. Otomatik artrma rnei

    Uygulamann sonucu aadaki gibi olur.

    i : 1

    ++i : 2

    i++ : 2

    i : 3

    --i : 2

    i-- : 2

    i : 1

  • 7/21/2019 web java sunumu tez.pdf

    62/213

    47

    2.9. Nesnelerin Karlatrlmas

    Nesnelerin eit olup olmad = = veya ! = operatrleriyle belirlenebilir. Aada

    nesnelerin karlatrmas ile ilgili bir rnek bulunmaktadr.

    public class Denklik {

    public static void main(String[ ] args) {

    Integer a1 = new Integer(47);

    Integer a2 = new Integer(47);

    System.out.println(a1 == a2);

    System.out.println(a1 != a2); }}

    Program 2.12. Nesnelerin karlatrlmas rnei_1

    nce Integer snf tipinde olan n1 ve n2 referanslar, ilerinde 47 saysn tutan

    Integer nesnelerine bal durumdadrlar. Uygulamann sonucu aadaki gibi

    olacaktr.

    True

    False

    Ancak ne yazk ki, sonu yukardaki gibi deildir! Nedeni ise, elimizde iki adet farkl

    Integer nesnesi bulunmaktadr. Bu nesnelerin tadklar deerler birbirlerine eittir;

    ancak, a1==a2 ifadesinin kullanlmas u anlama gelir. a1 ve a2 referanslarnn

    iaret etmi olduklar nesneler ayn m?. Yant tahmin edilebilecei gibi hayrdr.

    Yani, falsedur. a1 ve a2 ayr Integer nesnelerini iaret etmektedirler. Eit olan tek

    ey, bu iki ayr nesnenin tuttuklar deerin 47 olmasdr. Programn kts aadaki

    gibidir.

    False

    True

  • 7/21/2019 web java sunumu tez.pdf

    63/213

    48

    Verilen rnekteki Integer nesneleri yerine temel tip olan int tipi kullanlsayd sonu

    farkl olurdu. Aada bununla ilgili rnek bir program bulunmaktadr.

    public class IntIcinDenklik {

    public static void main(String[] args) {

    int s1 = 47;

    int s2 = 47;

    System.out.println(s1 == s2);

    System.out.println(s1 != s2);

    }

    }

    Program 2.13 Nesnelerin karlatrlmas rnei_2

    Bu uygulamann sonucu aadaki gibi olur.

    True

    False

    Temel(primitive) tipler deerleri dorudan kendi zerlerinde tadklar iin ==

    operatryle s1 ve s2 deikeleri deerleri karlatrld ve doru(true) yant

    dndrld. Benzer ekilde != operatr de s1 ve s2 deikenleri deerlerini

    karlatrd ve yanl(false) dndrld. [13]

  • 7/21/2019 web java sunumu tez.pdf

    64/213

    49

    BLM 3. KONTROL FADELER

    3.1. Karlatrma Deyimleri

    Kullancdan alnan girdilere gre, baz ilemlerin daha nceden belirlenmiartlara

    gre yaplmas istenebilir. rnek olarak gelire gre vergi hesaplayan uygulama

    yazlm olabilir. 06 bin YTL aras gelir diliminden %15

    612 bin YTL aras gelir diliminden %20

    1218 bin YTL aras gelir diliminden %15

    18 bin YTL zerindeki gelir diliminden %20

    orannda vergi alnacaktr. Bu durumda yazlan uygulama, kullancdan o yl iin

    vergilendirilecek geliri soracak ve daha sonra ne kadar vergi demesi gerektiiniekranda gsterecektir. te bu tr bir uygulamann yaplabilmesi iin baz yaplarn

    kullanlmas gerekir. Bu yaplara kontrol deyimleri denir. Kontrol deyimleri

    kullanmadan bir program yazmak hibir programlama dilinde mmkn olmad gibi

    Java dilinde de mmkn deildir. Aada Java dilinde kullanlan kontrol ifadeleri

    bulunmaktadr.

    3.1.1. If yaps

    Programclar program yazarken ounlukla art yaplarn kullanlrlar. Bunlarn

    ierisinde ise en yaygn olan da if yapsdr. If yapsnn genel yazlm u ekildedir.

    if (koul) {

    koul doru(true) olduunda almas istenen kod blou

    } else

    { Koul yanl(false) olduunda almas istenen kod blou }

  • 7/21/2019 web java sunumu tez.pdf

    65/213

    50

    ekil 3.1de if yapsnn algoritma mant grnmektedir.

    ekil 3.1. If yapsnn algoritmas [13]

    Programlar, birden fazla art ierisinden bazlarn semek iin seme yaplarkullanrlar. Bu yap bir rnekle aklanabilir. Bir rencinin snav geme notu 50

    olarak dnlrse aadaki mant kullanmak gerekir.

    Eer rencinin notu 50e eit veya fazlaysa

    Yaz Geti

    Yukardaki ifade rencinin notunun 50 veya st olup olmadn belirlemek iinyazlmbir ifadedir. Bu ifadede eer sonu true(doru) ise Geti ifadesini ekrana

    yazacaktr. Sonu false(yanl) ise, yaz ifadesinin bulunduu satr ileme

    konulmayacak ve bundan sonraki var olan satrlar ilenecektir. Yukardaki ifadenin

    Java dilinde yazm aadaki gibidir.

    If (ogrencinot>=50)

    System.out.println(Geti);

    Aadaki ekilde bu basit rnein tek if yaps gsterilmektedir. If yaps tek girive

    tek kl bir kontrol yapsdr. ekil 3.2de if yaps baz geometrik ekillerle

    ayrntl olarak ifade edilmektedir. Burada if yapsnn kullanm daha rahat bir

    ekilde anlalmaktadr.

  • 7/21/2019 web java sunumu tez.pdf

    66/213

    51

    ekil 3.2. If yaps [13]

    3.1.2. If-else yaps

    Tek if yapsnda sonu true(doru) ise komutlar ilenir, false(yanl) ise komutlar

    ileme sokulmaz program dier satrlar ileme sokar. If..Else yapsnda ise sonu

    true(doru) ise komutlar ilenir, false(yanl) ise else ifadesinden sonraki komutlar

    ilenir. Aada bununla ilgili bir rnek bulunmaktadr. [13]

    Eer rencinin notu 50e eit veya fazlaysaYaz Geti

    Deilse

    Yaz Kald

    Yukardaki rnekte rencinin notu 50 ve styse ekrana Geti, 50nin altnda ise

    ekrana Kald ifadesini yazacaktr. Yukardaki ifadenin Java dilindeki karl ise

    u ekildedir.

    If (ogrencinot>=50)

    System.out.println(Geti);

    Else System.out.println(Kald);

    ekil 3.3de IfElse yaps grnmektedir.

  • 7/21/2019 web java sunumu tez.pdf

    67/213

    52

    ekil 3.3. If-Else yaps [13]

    Aada if-else yaps ile ilgili bir rnek bulunmaktadr.

    public class IfElseTest {

    public static void main(String[ ] args) {

    int puan = 76;

    char sonuc;

    if (puan >= 90)

    {

    sonuc = 'A';

    } else if (puan >= 80)

    {

    sonuc = 'B';

    } else if (puan >= 70)

    {

    sonuc = 'C';

    } else if (puan >= 60) {

    sonuc = 'D';

    } else {

    sonuc = 'F';

    }

    System.out.println("Sonuc = " + sonuc);

    }

    }

    Program 3.1. if-Else rnei_1

  • 7/21/2019 web java sunumu tez.pdf

    68/213

    53

    Yukardaki rnekte else if yaps kullanlmtr. Bu programda puan deikenine

    tamsay 76 says yklenmitir. Programn dier satrlarnda puan deikenindeki

    say ile ilgili if yaplar bulunmaktadr. Bu programda puan 90 ve styse sonu

    deikenine A karakteri yklenecektir. Puan 80 ve styse sonu deikenine B

    karakteri yklenecektir. Puan 70 ve styse sonu deikenine C karakteri

    yklenecektir. Puan deikeninde 76 says olduundan sonu deikenine C

    karakteri yklenecektir. Dier satrlar art salanmadndan dolay ileme

    konulmayacaktr. Aada if-else yaps ile ilgili rnek bir program bulunmaktadr.

    public class Kestirme {

    public static boolean hesaplaBir(int a) {System.out.println("hesaplaBir snfna girildi");

    return a > 1;

    }

    public static boolean hesaplaIki(int a) {

    System.out.println("hesaplaIki snfna girildi");

    return a > 2;

    }public static void main(String[] args) {

    System.out.println("Balang");

    //hesaplaBir(0) --> false deger doner

    //hesaplaIki(3) --> true deger doner

    System.out.println("hesaplaBir(0) && hesaplaIki(3)");

    if ( hesaplaBir(0) && hesaplaIki(3) ) {

    System.out.println(" 1 -true ");} else {

    System.out.println(" 1 -false ");

    }

    System.out.println("--------");

    System.out.println("hesaplaBir(0) || hesaplaIki(3)");

    if (hesaplaBir(0) || hesaplaIki(3)) {

    System.out.println(" 2 -true ");

    } else {

  • 7/21/2019 web java sunumu tez.pdf

    69/213

    54

    System.out.println(" 2 -false "); }

    System.out.println("--------");

    System.out.println("hesaplaBir(0) & hesaplaIki(3)");

    if (hesaplaBir(0) & hesaplaIki(3)) {

    System.out.println(" 3 -true ");

    } else {

    System.out.println(" 3 -false "); }

    System.out.println("--------");

    System.out.println("hesaplaBir(0) | hesaplaIki(3)");

    if (hesaplaBir(0) | hesaplaIki(3)) {

    System.out.println(" 4 -true "); }else {

    System.out.println(" 4 -false "); }

    System.out.println("--------");

    System.out.println("hesaplaBir(0) ^ hesaplaIki(3)");

    if (hesaplaBir(0) ^ hesaplaIki(3)) {

    System.out.println(" 5 -true ");

    } else {System.out.println(" 5 -true ");

    }

    System.out.println("Son..");

    }

    }

    Program 3.2. if-Else rnei_2

    Bu uygulamada hesaplaBir() ve hesaplaiki() adnda iki adet snf bulunmaktadr.

    Bunlar int tipinde parametre kabul edip mantksal sonu dndrmektedirler. Bu

    snflara girildii zaman ekrana kendilerini tantan mesaj kmaktadr.

    HesaplaBir() snf kendisine gelen int tipindeki parametreyi alp 1den byk veya

    kk olduunu kontrol etmektedir. Burada hesaplaBir() snfna parametre olarak

    sfr says gnderildiinden dnecek deerin olumsuz olaca bilinmektedir.

  • 7/21/2019 web java sunumu tez.pdf

    70/213

    55

    HesaplaIki() snfna da ayn ekilde 3 says gnderilerek bunun olumlu bir yant

    vermesi beklenir.

    ncelikle, snflardan geri dnen deerler ve ilemine tabii tutulur. Burada yalnzca

    hesaplaBir() snfna girilmektedir. nk hesaplaBir() snfndan olumsuz deer

    dnmektedir. Ve ileminde olumlu deer dnebilmesi iin iki deerinde olumlu

    olmas gerektiinden, hesaplaIki() snf arlmayarak kestirme zellii

    kullanlmtr.

    Daha sonra gelen deerler veya ilemine tabii tutulmaktadr. Hem hesaplaBir() hem

    de hesaplaIki() snflar beraber arlmaktadr. Veya ilemine gre, sonucunolumsuz olmas iin iki deerinde olumsuz olmas gerekmektedir. Burada ilk

    deerden olumsuz deer dnmtr; ancak, ikinci deerin de hesaplanmas

    gerekmektedir. Aksi durumda sonucun renilmesi imkansz olur. Bu nedenden

    dolay, burada kestirme ilemi gereklememitir. Ancak, ilk deer olumlu

    dnseydi, o zaman, ikinci snf olan hesaplaIki() hi arlmayacakt. nk veya

    ilemleri sonucunun olumlu olabilmesi iin parametrelerden birisinin olumlu olmas

    gereklidir.

    Bir sonraki aamada, deerler yine ve ilemine tabii tutulmaktadr. Ancak, burada &

    operatr kullanld iin kestirme ilemi ortadan kalkmaktadr.

    Bir sonraki aamada, deerler veya ilemine tutulmaktadr. Son olarak, deerler ya

    da (Exclusive Or) ilemine tutulmaktadr. Bu ilemde kesinlikle iki deere de

    baklma zorunluluu olduundan kestirme ilemi sz konusu olmaz.

    Uygulamann sonucu aadaki gibi olur.

    Balang

    hesaplaBir(0) && hesaplaIki(3)

    hesaplaBir snfna girildi

    1 -false

    --------

  • 7/21/2019 web java sunumu tez.pdf

    71/213

    56

    hesaplaBir(0) || hesaplaIki(3)

    hesaplaBir snfna girildi

    hesaplaIki snfna girildi

    2 -true

    --------

    hesaplaBir(0) & hesaplaIki(3)

    hesaplaBir snfna girildi

    hesaplaIki snfna girildi

    3 -false

    --------

    hesaplaBir(0) | hesaplaIki(3)hesaplaBir snfna girildi

    hesaplaIki snfna girildi

    4 -true

    --------

    hesaplaBir(0) ^ hesaplaIki(3)

    hesaplaBir snfna girildi

    hesaplaIki snfna girildi5 -true

    Son..

    Aada if yaps ile ilgili baka bir rnek program bulunmaktadr.

    import java.io.*; // giris ikis

    class ifyapisi{

    public static void main (String args[ ]) throws IOException

    {

    double not;

    System.out.println("rencinin notunu giriniz : ");

    if( not >= 90)

    { System.out.println("A"); }

    else if(not >=75)

  • 7/21/2019 web java sunumu tez.pdf

    72/213

    57

    { System.out.println("B"); }

    else if(not >=60)

    { System.out.println("C"); }

    else if(not >=50)

    { System.out.println("D"); }

    else if(not >=40)

    { System.out.println("E"); }

    else

    { System.out.println("F"); }

    }

    }

    Program 3.3. if-Else rnei_3

    Yukardaki rnekte girilen notun harf olarak karl ekrana yazdrlmaktr.

    System.out.println komutuyla kullancya not girmesi gerektii bildirilmektedir.

    Girilen bu deer double tipindeki not deikenine aktarlmaktadr. Program, kullanc

    90 veya st bir not girmiise ekrana A, 75 veya st bir not girmiise ekrana B, 60veya st bir not girmi ise ekrana C, 50 veya st bir not girmiise ekrana D, 40

    veya st bir not girmi ise ekrana E, bunlarn dnda bir not girmi ise ekrana F

    harfini yazdrmaktadr.

    3.1.3. Switch ifadesi

    Tm dillerdeki genel programlama deneyimi bir deikendeki deeri bakadeerlerle test etmektir ve bunu deiik deerlerle karlatrmaktadr. Bazen

    IfElse yapsn kullanmak elverili olmayabilir.

    Switch deyimi tamsaylarn karlatrlmas ile doru koullarn elde edilmesini

    salayan mekanizmadr. Switch deyiminin genel yazm biimi aadaki gibidir.

    switch(tamsay) {Case uygun-tamsay-deger1 : almas istenen kod blou; break;

  • 7/21/2019 web java sunumu tez.pdf

    73/213

    58

    Case uygun-tamsay-deger2 : almas istenen kod blou; break;

    Case uygun-tamsay-deger3 : almas istenen kod blou; break;

    Case uygun-tamsay-deger4 : almas istenen kod blou; break;

    Case uygun-tamsay-deger5 : almas istenen kod blou; break;

    default: almas istenen kod blou ;

    }

    Switch deyimi ierisindeki tamsay ile bu tamsayya karlk gelen koul girilir ve

    istenen kod blou altrlr. Kod bloklarndan sonra break ifadesini koymak gerekir.

    Aksi takdirde uygun koul bulunduktan sonraki her koula girilecektir. Eer tamsay

    koullardan hibirine uymuyorsa default yapsndaki kod blou altrlarak programblou tamamlanr.

    Switch deyimi birok case yaplarndan ve istee bal default ifadesinden meydana

    gelir. Bu yzden default yapsnn kullanlmasna gerek olmayabilir. Default yaps

    kullanlmak istenmiyorsa, yani artlardan hibiri salanmad zaman switch

    yapsndan klmas isteniyorsa

    Default: /* do nothing */

    fadesi yazlmas daha iyi olacaktr. Aada switch yaps ile ilgili rnek bir program

    bulunmaktadr.

    public class AylarSwitchTestNoBreak

    {public static void main(String[] args)

    {

    int ay = 8;

    switch (ay)

    {

    case 1: System.out.println("Ocak"); break;

    case 2: System.out.println("ubat"); break;

    case 3: System.out.println("Mart"); break;

  • 7/21/2019 web java sunumu tez.pdf

    74/213

    59

    case 4: System.out.println("Nisan"); break;

    case 5: System.out.println("Mays"); break;

    case 6: System.out.println("Haziran"); break;

    case 7: System.out.println("Temmuz"); break;

    case 8: System.out.println("Austos"); break;

    case 9: System.out.println("Eyll"); break;

    case 10: System.out.println("Ekim"); break;

    case 11: System.out.println("Kasm"); break;

    case 12: System.out.println("Aralk"); break;

    }

    }}

    Program 3.4. Switch Yaps rnei_1

    Yukardaki rnekte ay deikenindeki saysal deere gre ekrana ay ismi

    yazlmaktadr. Programn balangcnda int tipindeki ay deikenine sabit 8 deeri

    yklenmektedir. Girilen bu deere gre switch yaps kullanlm ve Case ifadesi1den 12ye kadar oluturulmutur. Ay deikenine 8 says yklendii iin Case 8:

    System.out.println(Austos); break; satr alacaktr ve ekrana Austos mesaj

    kacaktr. Dier case ifadeleri art salamad iin hibiri altrlmayacaktr.

    Programn kts u ekilde olacaktr.

    Austos

    Aada verilen uygulama, switch deyiminde default yapsnn kullanmn

    gstermektedir.

    public class AylarSwitchDefaultTest {

    public static void main(String[] args) {

    int ay = 25;

    switch (ay) {

    case 1: System.out.println("Ocak"); break;

  • 7/21/2019 web java sunumu tez.pdf

    75/213

    60

    case 2: System.out.println("ubat"); break;

    case 3: System.out.println("Mart"); break;

    case 4: System.out.println("Nisan"); break;

    case 5: System.out.println("Mays"); break;

    case 6: System.out.println("Haziran"); break;

    case 7: System.out.println("Temmuz"); break;

    case 8: System.out.println("Austos"); break;

    case 9: System.out.println("Eyll"); break;

    case 10: System.out.println("Ekim"); break;

    case 11: System.out.println("Kasm"); break;

    case 12: System.out.println("Aralk"); break;default: System.out.println("Aranlan art Bulunamad!!");

    }

    }

    }

    Program 3.5. Switch Yaps rnei_2

    Bu rnekte istenen durum hibir koula uymad iin default koulundaki kod

    blm almaktadr.

    Uygulamann sonucu aadaki gibi olur.

    Aranlan art Bulunamad !!

    Aada switch yaps ile ilgili baka bir rnek program bulunmaktadr.

    import java.applet.Applet; // java applet sinifini cagir

    import java.awt.*; // java pencere kullanma sinifini cagir

    import java.awt.event.*; // java pencereyi dinleme sinifini cagir

    public class switchApplet extends Applet implements ActionListener

    {

    //sinif degiskenleri

  • 7/21/2019 web java sunumu tez.pdf

    76/213

    61

    Label kutubasligi; //Label sinifi degiskeni (nesnesi) kutubasligi

    TextField kutugirdisi;//Textfield sinifi degiskeni (nesnesi) kutugirdisi

    char not;

    int Asayisi=0,Bsayisi=0,Csayisi=0,Dsayisi=0,Esayisi=0,Fsayisi=0;

    // pencereyi balatma metodu

    public void init() {

    kutubasligi=new Label("rencinin notunu giriniz (A B C.. : ");

    add(kutubasligi);//kutu baln pencereye yaz

    kutugirdisi=new TextField(5);

    add(kutugirdisi);//kutuyu pencereye yerletir

    // kutuya yeni ilave edilecek komutlar bekle// her yeni komutta actionPerformed metodunu altr.

    kutugirdisi.addActionListener(this); }

    public void paint(Graphics g) {

    g.drawString("Her harf notun toplam : ",25,40);

    g.drawString("A : "+Asayisi,25,55);

    g.drawString("B : "+Bsayisi,25,70);

    g.drawString("C : "+Csayisi,25,85);g.drawString("D : "+Dsayisi,25,100);

    g.drawString("E : "+Esayisi,25,115);

    g.drawString("F : "+Fsayisi,25,130); }

    // girdi alanndaki olan olaylar dinleme metodu

    public void actionPerformed(ActionEvent e)

    {

    //ogrencinin notunu pencereden okuString not1=e.getActionCommand();

    not=not1.charAt(0);

    showStatus(""); // sonu blgesindeki yazy sil

    kutugirdisi.setText(""); //kutudaki harfi sil

    switch(not)

    {

    case 'A': case 'a':

    ++Asayisi;

  • 7/21/2019 web java sunumu tez.pdf

    77/213

    62

    break;

    case 'B': case 'b':

    ++Bsayisi;

    break;

    case 'C': case 'c':

    ++Csayisi;

    break;

    case 'D': case 'd':

    ++Dsayisi;

    break;

    case 'E': case 'e':++Esayisi;

    break;

    case 'F': case 'f':

    ++Fsayisi;

    break;

    default:

    showStatus("yanlnot tanmland yeni bir not giriniz.");break;

    } // switch deyiminin sonu

    repaint();//pencereyi yeniden paint metoduna gre iz

    }

    }

    Program 3.6. Switch Yaps rnei_3

    Yukardaki programda rencini notunun A,B,C,D,E,F olarak text kutusuna girilmesi

    istenilmektedir ve her entere basldnda o harfin