8. Bölüm Java Nesneleri - Organizasyon

Embed Size (px)

Citation preview

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    1/62

    AknKaldroluJavaleNesneMerkezliProgramlama

    www.javaturk.orgMays2012

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    2/62

    2www.javaturk.org

    Organizasyon

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    3/62

    KodOrganizasyonu:Paketler

    Javadaoluturulansnflar(vearayzleri),manDksaladankategorizeetmek,bukategorilerarasndaeriimkurallarkoymakveisimuzayoluturupakmalarnlemekamacylapaketlervardr.

    Paket"package"anahtarkelimesiyleoluturulur.Hersnftanmndannceyazlacakbirpackagecmlesiyleosnbelirlenpaketeaitolur.

    3www.javaturk.org

    package myPackage;

    ya da

    package org.javaturk.oop.ch07.car;

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    4/62

    packageI

    BirJavakaynakkodundaancakbirtanepaketifadesiolabilir.

    Hersnfyadaarayznsadecebirtanepakeolabilir.

    packageifadesibirJavakaynakkodundaalanilkcmleolmaldr.

    Paketyaps,.classdosyalariingeerlivegereklidir,.javakaynakkodlariindeil!

    Fakatgeneldekaynakkodlardapaketleriyledzenlenir.4www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    5/62

    packageII

    iepaketlerlepakethiyerarisioluturulabilir.Bylecebirkkten(root)balayarakdallananaltpaketlerle,oksaydasnfvearayzdenoluanyaplar,anlamlkategorizasyonavebunakarlkgelenfizikselorganizasyonasahipolur.

    Paketler,ilemsistemindekidizinlere(directory)karlkgelir.olaysylaaynpakeYekiyaplarayndizindebulunurlar.

    5www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    6/62

    6www.javaturk.org

    package shipping.domain; // Company.java

    package shipping.domain; // Vehicle.java

    package shipping.gui; // MainMenu.java

    package shipping.reports; // DailyReport.java

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    7/62

    packageIII

    Kategorizasyonkriteriolarakamaseilebilir.Amatankastfonksiyonellikr.

    AynamacaynelikoluturulansnfvearayzleraynpakeYeolur.

    Grafikarayz,entegrasyonyadaverigibikatmanlar,Mterivebankahesabgibiialangruplar, Loglamaveyatransacongibifarklvecheler(aspects),

    paketoluturmakiinadaykategorizasyonlardr.

    7www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    8/628www.javaturk.org

    package org.javaturk.oop.ch07.university; // Course.java

    package org.javaturk.oop.ch07.university; // Course.java

    ...package org.javaturk.oop.ch07.thisKeyword.bank; // Bank.java

    package org.javaturk.oop.ch07.thisKeyword.bank; // Account.java

    package org.javaturk.oop.ch07.thisKeyword.bank; // Customer.java

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    9/62

    packageIV

    Pakenbirdieramacdabirisimuzay(namespace)oluturarak,muhtemelakmalarnlemekr.

    BirprojedeyazlanbirkatanefarklPrinteryadaDatesnnn,birbileriyleyadasaDnalnanbileenlerdekiayn

    isimdekisnflarlakarmasnnlemeninyolu,herbirPrinteryadaDatesnnnapayrpaketesahipolmasdr.

    Buamala,InternetdomainadresinitersindenkullanarakpaketleroluturduundaakmaolmayacakDr.

    9www.javaturk.org

    com.myCompany.myProject.myAltPackage

    org.javaturk.oop

    org.javaturk.advancedJava

    org.javaturk.javaee

    org.javaturk.dp

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    10/62

    packageIV

    java.*vejavax.*eklindekipaketlerayrlmDr,buekildeyenipaketoluturulamaz.

    10www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    11/62

    Tamsim

    Birpaketesahipolanbirsnntamismi(fullyqualifiedname)arDk"paket.snfsmi"olarakdeimir.

    JVMe(java)geilirkenarDktamismiylegeilmesigereklidir.

    ahancedebelirldiigibibudurum.classdosyalaryaniderlenmisnflariingeerlidir,.javadosyalarndakikaynakkodlariingeerlideildir.

    11www.javaturk.org

    package shipping.domain; // Company.java

    javac Company.java // Compilingjava shipping.domain.Company // Running

    package shipping.gui; // MainMenu.java

    javac MainMenu.java // Compiling

    java shipping.gui.MainMenu // Running

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    12/62

    PaketlerArasEriim

    Aynpaketlerdekiyaplarbirbirlerinedorudaneriebilirler.Farklpaketlerdekiyaplarnbirbirlerinedorudaneriebilmeleri,ancaktamisimkullanmaklagerekleir:

    12www.javaturk.org

    package org.javaturk.oop.ch08.packaging.packageA;

    public class ClassA {

    org.javaturk.oop.ch08.packaging.packageX.ClassX x;

    public ClassA(org.javaturk.oop.ch08.packaging.packageX.ClassX x) {this.x = x;

    }

    }

    package org.javaturk.oop.ch08.packaging.packageX;

    public class ClassX {}

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    13/62

    importI

    TamisimkullanarakeriiminsknDlolduuakDr:Budurumdafarklpaketlerdekiyaplarbirbirleriniimportederler.

    importcmlesi,Javakaynakkodundavarsapackagecmlesindensonragelir.

    13www.javaturk.org

    package org.javaturk.oop.ch08.packaging.packageB;

    import org.javaturk.oop.ch08.packaging.packageX.ClassX;

    public class ClassB {ClassX x;

    public ClassB(ClassX x) {

    this.x = x;

    }

    }

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    14/62

    importII

    Birkaynakkoddabirdenfazlayapimportedilebilir.Budurumdayaplartektekimportedilebileceigibi,"*"iletoptanimportedilebilir.

    "*"ilealtpaketlerimportedilemez.

    14www.javaturk.org

    package org.javaturk.oop.ch08.packaging.packageB;

    import org.javaturk.oop.ch08.packaging.packageX.ClassX;

    import org.javaturk.oop.ch08.packaging.packageX.ClassZ;

    // ya da

    import org.javaturk.oop.ch08.packaging.packageX.*;public class ClassB {

    ClassX x;

    ClassZ z;

    public ClassB(ClassX x, ClassZ z) {

    this.x = x;this.z = z;

    }

    }

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    15/62

    Paketlerveizinler

    Paketler,ilemsistemindekidizinlerekarlkgelir.olaysylabiryapnnpakeninorg.javaturk.oop.ch02olmasrneinWindowsilemsisteminebiryerdefizikselolarakorg\javaturk\oop\ch02\eklindebirdizinyapsnn

    bulunduunugsterir.Belirlenpaketesahipolansnn.classdosyasnnfizikselolarak,paketekarlkgelendizindeolmasarr.

    Buart.javakaynakkoduiingeerlideildir.olaysylapaketaslndabiralmazamanyapsdrve.classdosyalarnilgilendirir..javakaynakkodlartamamenfarklbirdizinyapsndaolabilir.

    15www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    16/62

    Birizineerlemek

    Javakaynakkodlarderlenirken"-d"seeneiilebirdizingeilirse,javac,paketyapsnauygunolarak.classdosyalarnbelirlendizinekoyacakDr.

    16www.javaturk.org

    C:>javac d C:\classes Bulp.java

    package org.javaturk.oop.ch08;

    ...public class Bulp{...}

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    17/62

    CLASSPATH

    Biryapnnpakeninorg.javaturk.oop.ch02olmasrneinWindowsilemsisteminebiryerdeorg\javaturk\oop\ch02\eklindebirdizinyapsnnbulunmasngerekrir.

    ukardabahsedilen"biryer"denkastCLASSPATHdir.aniJVM,kendisinegeilen.classdosyalarnsadece,CLASSPATHsistemdeikenineeklenmidizinlerdearar.olaysylabirAsnnnpakex.yise,.classdosyasydizinindeveydizinidexdizinininalDndadrvexdizinide

    rnein"C:\"deisebudurumdaCLASSPATHde"C:\"dizinibulunmaldr.

    BudurumdaJVM,CLASSPATHdebulunandizinlerdencexdizinini,onubuluncadaiindeydizinini,onubuluncadaiindeA.classdosyasnarar.

    17www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    18/62

    CLASSPATHeizinEkleme

    dizin3ekildeeklenir:javacvejavakomutlarnda-classpathseeneiyleCM(yadaTERM/XTERMvb.CLASSPATHekonsollarda)Systemdeikeniolarakekleyerek

    "."ilebulunduunuzdiziniCLASSPATHeeklemekkolaylksalar.

    18www.javaturk.org

    C:> java -classpath C:\classes org.javaturk.oop.ch08.Bulp

    C:\>set CLASSPATH=C:\classes

    C:\>java org.javaturk.oop.ch08.Bulp

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    19/62

    19www.javaturk.org

    1

    2

    3

    4

    5

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    20/62

    Uygulama

    ahanceNotepadkullanarakyazdnzSelamveSelamTestsnflarnagerekli"package"ve"import"cmlelerinikoyarak,aadakigibibirpaketyapsnasahipolmalarnsalayn.

    javacilederlerken"d"seeneinikullann.GerekliCLASSPATHayarlarn3farklekildeyaparakSelamTestialDrn.

    20www.javaturk.org

    package x.y;

    ...

    public class Selam{...}ve

    package u.v;

    ...

    public class SelamTest{...}

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    21/62

    Uygulama

    AynpaketyapsnEclipsezerindekurunveSelamTestialDrn.

    ProjeninzelliklerinegiderekCLASSPATHayarlarngzlemleyin.

    21www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    22/62

    JavaPaketleri

    Javadapekokpaketesahipr:java.langjava.uljava.io

    Bupaketlerdenjava.langherJavakaynakkodunadaimaotomakolarakimportedilir.

    Javannpaketleriveierikleri,JavaAPIsinioluturur.

    22www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    23/62

    23www.javaturk.org

    Sarmalama(Encapsulation)

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    24/62

    Sarmalama(Encapsulaon)I

    Verinin,overizerindealacakmetotlarlabirliktebiryapalDndatoplanmasnasarmalamayadaencapsulaondenir.

    Programlamadillerindeeskidenbuyana,soyutveriyaplar(abstractdatatypes)yadakullanctaraMndanoluturulmuveriOpi(user-defineddatatype)adlaralDndavarolanbirkavramdr.

    Nesne-merkezlidillerdeentemelsarmalamamekanizmassnr(class).

    Sarmalamailebirsnanrelecekolannesnelerinveriyaplariledavranlar,manDksalbirbirimhalinegerilir.

    24www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    25/62

    BilgiSaklama(InformaonHiding)I

    BuyapyasarmalamayadaencapsulaOondenmesininsebebi,buteknikilesarmalananyapnnimekanizmasnndardansaklanmasdr.

    Budurum,bilgisaklama(informaOonhiding)ileifadeedilirvebazlarncasarmalamanniindebirteknikolarakgrlrkenbazlarncasarmalamayaek,tamamlaycbirteknikolarakelealnr.

    Sarmalama,bilgisaklamaprensibiylebirlikte,birsnniyapsndardansaklarken,arayzzerindendaryayaniistemcilerinehizmetvermesinisalar.

    25www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    26/62

    "Ne"likile"Nasl"lk

    Sarmalamavebilgisaklamasayesinde,nesneler,iyaplarndardankoruyarak,metotlarvastasylasorumluluklarnyerinegeriler.

    Buise"nasl"lkile"ne"likarasndakiayrmdr."Ne"likverilenhizmetanmlar"Nasl"lkiseverilenhizmennaslgereklerildiiniaklar.

    "Ne"likarayz,"Nasl"lkisearayznarkasndaveriyaplarvekoddur.

    Budurumarayz(interface)ilegereklerme(implementaon)ayrmolarakadlandrlr.

    26www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    27/62

    azlmveKarmaklk

    azlm,kavramsalvezihin-youn,kendinehaszellikleriolanbirdisiplindir.

    azlmnkDsilediermhendisliklerinkDsokfarkldr.

    remidahadorusugelirilmesidefarklsrelerleynelir.

    azlmlarnbymesindekikendinehasunsurlar,durumlarnn(state)saysnnllebilirvekontroledilebilir

    olmamas,varolanortamaayakuyduranndaimayazlmolmasvb.zelliklerdendolayyazlmlar,pekokmhendislikrnndendahakarmakyapdadrlar.

    27www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    28/62

    azlmveeiimI

    azlmsistemlerininhayatlarinsanlarnkafasndakavramsalbirekirdekilebalarveentemeldegelirmevebakmolmakzereikitemelsaqayaayrlr.

    Pekokmhendislikrnntersine,yazlmrnlerininbakmsaqas,gelirmesaqasndandahauzunvepahaldr.

    eniihyalar,yeniteknolojiler,yenikullanclar,yenientegrasyonnoktalarvs.,temeldeiortamnndinamikyapsnauygunolarakyazlmsistemleridevamlsureYedeiimetabitutulur.

    28www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    29/62

    azlmveeiimII

    olaysylayazlmlar,birkereyaplanvetemelyapsylaalakalhibirdeiimegirmedensenelerceyaayandiermhendislikrnlerinintersine,okskdeiebilecekveancakbuekildehayaYakalacakekildegelirilmelidirler.

    azlmntamamensoyutvekavramsalyapselealndnda,zatenvarolanalgnndayazlmndeiimininokkolayolacaynndedir.

    Birsistemindeiiminikolayyadazoroluunubelirleyenentemeley,deiecekksmn,dierksmlardannedereceyalDlmolduudur.

    29www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    30/62

    Bamllk

    azlmsistemlerindekiyaplarnbirbirleriyleolanilikilerininderecesinebamllk(coupling)denir.

    Biryazlmsisteminde,bamllazolanyaplardayaplacakdeiikliklerin,dieryaplaraolanetkisi,

    bamllndahaokolduudurumlaragreokdahakolayolacakDr.

    Elemanlarnnbirbirlerineolanbamllaz(lowly-coupled)olanyazlmyaplar,yazlmndeiebilirliini

    kolaylaDranentemeletkendir.

    hYp://en.wikipedia.org/wiki/Coupling_(computer_programming)

    30www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    31/62

    Btnlk

    azlmyaplarnnbamllnazaltanentemeley,ibtnlktr(cohesion).

    Eerbirsnf,sadecebireyisoyutlarveonunlailgilisistemdeolabilecekhertrlbilgivesorumluluukendi

    iindebarndrsa,buyapnnibtnlyksek(highly-cohesive),darylaolanilikileriisenispetenazolacakDr.

    btnldkyaplarda,bilgivesorumluluk,biryerdetoplanacanabirdenfazlayapyadalmdurumdadr.

    BudurumdaibtnlazalDp,bamllarrr.hYp://en.wikipedia.org/wiki/Cohesion_(computer_science)

    31www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    32/62

    ataOnlyElevator.java

    32www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    33/62

    UnEncapsulatedElevator.java

    33www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    34/62

    BilgiSaklama(InformaonHiding)II

    Bamlldkveitutarll(lowly-coupledandhighly-cohesive)ykseksnflaroluturmakiinnesnemerkezlidillerdebilgivegereklermesaklamay(informaonandimplementaonhiding)salayaneriimniteleyiciler(access

    modifiers)vardr.

    Buyaplarsayesindesnflarvesnflarniyaplar,dardandorudaneriimdensaklanabilir.

    34www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    35/62

    EriimNiteleyiciler(AccessModifiers)

    kitreriimniteleyicivardr:Snferiimniteleyicileriyeeriimniteleyicileri

    EriimniteleyicileriinaadakianahtarkelimelermevcuYur:

    publicprivateprotected

    35www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    36/62

    SnfEriimNiteleyicileri

    Snflariin2seviyelieriimszkonusudur.Buikiseviyepublicanahtarkelimesininvaroluduuveolmad2durumlabelirlenir:

    public:Publicsnflaraheryerdeneriilebilir.publicsnflar,kendiisminesahip.javakaynakdosyalarndabulunmaldrlar.

    Varsaylan(publickelimesiyok):BudurumdasnfasadeceiindebulunduupakeYenulalabilinir.

    Bueriimepaketeriimi(packageaccessibility)yadavarsaylaneriim(defaultaccessibility)denir.

    36www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    37/62

    ClassA.java,ClassXX.javaveClassZZ.java

    37www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    38/62

    yeEriimNiteleyicileriI

    yelereeriimiin4seviyevardr:publicprotectedVarsaylan(default),hibirniteleyicininkullanlmaddurumdur.

    privatepublicolanyelereheryerdeneriilebilinir.privateolanyelere,sadeceiindebulunduusnaneriliilebilinir,dardaneriimetamamenkapaldr.

    VarsaylanhaldeeriimsadecepaketiindekisnflaraakDr.

    protected,devralanaltsnflarcaeriimeakDr.38www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    39/62

    yeEriimNiteleyicileriII

    Niteleyici Kendisi Paketi ocuklar Herkes

    public + + + +

    protected + + + --(varsaylan) + + - -private + - - -

    39www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    40/62

    ClassP.javaveClassA.java

    40www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    41/62

    EncapsulatedElevator.java

    41www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    42/62

    Uygulama

    Sadecebirnesnesiolansnflara"singleton"denir.Budurumdabtnbilgivehizmetsadece,singletonolansnnvarolanteknesnesizerindenverilir.Bununiindediernesnelerintekolanbirnesneyeulamalargereklidir.

    Birsnansadecebirnesneoluturulabilmesiiingerekliyapykurunvedahafazlaoluturulmasnengelleyin.Sonradaoluturulanbunesneyegenelbireriimnoktassalayn.

    42www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    43/62

    public,protected,Varsaylanveprivate

    public:Genelolarakmetotlarpublicyaplr.nkmetotlarnesneninarayzdr.

    staOcvefinalolandeikenlerdegeneldepublicolurlar.protected:Bakasnnulaamayp,sadecedevralansnflarnulaabilecekleriprotectedyaplr.protected,farklpakeYekidevralmayansnflaraprivatedr.

    Varsaylan:SadeceaynpakeYekilerinulaabileceieyler,varsaylaneriimetabiolur.

    private:Btnyeverilerlesadeceialmaiinoluturulmumetotlarprivateyaplr.

    43www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    44/62

    publicEriimveAPI

    API,ApplicaonProgrammingInterfaceinksaltmasdr.API,birsnnyadasistemin(bileen,erevevs.)publicolanyelerinedenir.

    MirasamacylaprotectedolanyelerdeAPIyedahildirler.

    API,biryazlmyapsnnarayzdr,tekileimnoktasdr.Snflaryadasistemler,ancakarayzleriyaniAPIleriileulalrvehizmetalnr.

    44www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    45/62

    ArayzveGereklerme

    yibirsoyutlama,sadecebasitbirkavramyadafizikselnesneyisoyutlamaldr.Oeyileilgilihertrlgereklibilgiyibilmelivesorumluluuyerinegermeli,oeyleilgiliolmayanhibirbilgiyibilmemelivesorumluluuyerinegermemelidir.

    Soyutlamalarnkarmaklamayabaladhernoktadayenisoyutlamalaroluturulmaldr.

    Karmakbirsisteminhibirparas,birdierparanniyapsnabamlolmamaldr.

    Nesnelerbirbirlerininarayzlerinebalolmallar,veriyaplarilegereklermelerinebalolmamaldrlar.

    Programtoaninterface,notanimplementaon.45www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    46/62

    ate.javaveCalendar.java

    46www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    47/62

    azlmBileeni(SowareComponent)I

    Yazlmbileeni(soOwarecomponent),tanml(specified),kendikendineyeten(sel-contained)vebiriiyerinegerenyazlmbirimidir.

    azlmbileenleri,sadecebirsnanibaretolabildiigibiokdahafazlasaydasnfvb.yazlmyaplarnierebilir. Geneldepekoksnanbirarayagelirler.

    azlmbileenleri,grselolabildiigibiolmayabilirde.azlmbileenlerininyapDibasitbirhesaplamadanibaretolabildiigibikarmakbirsrecinynemideolabilir.

    azlmbileenleri,tanmlbirAPIzerindenzelliklerinidaryaaarlar.

    azlmbileenleribirbirleriniierebilirler.47www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    48/62

    azlmBileeni(SowareComponent)II

    azlmbileenleri,farkluygulamalarda,deirilmedenkullanlmakamacylatasarlanpgereklerilirler.

    Ama,dierpekokmhendislikrnndeolduugibi,yeniyazlmlar,varolanbileenlerdentekrarkullanm(reusability)yoluylagelirmekr.

    Buanlamdayazlmbileenleri,karakututekrarkullanm(black-boxreusability)salarlar.

    KutununiinibilmeyegerekkalmadansadeceAPIsizerindenkutudanhizmetalnr.

    48www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    49/62

    JavaBeanI

    Javannyazlmbileeni"JavaBean"dir.JavaBean,SunnJavaBeantanmnauygunbirekildeoluturulmubiryazlmbileenidir(soOwarecomponent).

    BuanlamdaJavaBean,Javannentemelbileenmimarisidir(componentarchitecture).Entemeldirnk,JavaBeantanmzelbirsnftanmdr.

    Tanmnda,JavaBeanbileenlerininnasloluturulaca,APIveisimlendirmestandartlaryanndagrselaralarlanaslynelecei,naslkalchale(persistent)gerileceigibipekokfarklbileenvechesiayrnDlolarakaklanmDr.

    49www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    50/62

    JavaBeanII

    ierzelliklerinibirkenarabrakrsak,birsnnJavaBeanolabilmesiiin:

    Birpublicvarsaylankurucusununolmas.Varsa,durumbilgisinioluturandeikenlerinzellik(property)olaraktanmlanmolmas. Birnesnedeikenininzellikolabilmesiiin,snndaprivateolaraktanmlanmolup,publicset/getmetotlarylaulalabilirolmasgereklidir.

    50www.javaturk.org

    private String name;

    public void setName(String name){

    this.name = name;

    }

    public String getName(){

    return name;

    }

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    51/62

    NesnemiBasitVerimi?

    Soyutlamalarnkarmaklamayabaladhernoktadayenisoyutlamalaroluturulmaldr.Basitplerleifadeedilenyaplarnkarmaklamayabalamas,buyaplarnbasitplerledeildenesneolarakifadeedilmesinigerekliklar.

    Karmaklama,dahadetaylbilgidenkaynaklanr.rnein:Formaterellermevs.

    Address,PhoneNumberyadaatebudurumapikrnekrler.

    51www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    52/62

    52www.javaturk.org

    APIveJavaAPIsi

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    53/62

    JavaAPII

    API,ApplicaonProgrammingInterfaceinksaltmasdr.JavaAPIsi,Javannsanalmakinasnnvestandartktphanelerininarayzdr.

    publicyeleridir.protected

    WindowsiinJKkurulumundakijredizinindekilibdizinindekirt.jardosyasndakiyaplarnarayzleriniierir.SadeceJREkurulmusalibdizinindebulunur.

    Maciinbdosya"classes.zip"rJavaSEocumentaonolarakhYp://www.oracle.com/technetwork/java/javase/downloads/index.htmladresindenindirilebilir.

    53www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    54/62

    JavaAPIII

    JavaAPIsindevarolanpekoksnfvebenzeriyaplar,tekerleitekrardankefetmedenprogramlamayapmamzsalarlar.

    yibirJavac,JavaAPIsiniskveetkinbirekildekullanr.

    54www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    55/62

    JKKaynakKodu

    JavaSEninstandartuygulamasolanJKakkaynakkodluolduuiinistenirseilgilisayfadanonudaindirilebilir.hYp://www.oracle.com/technetwork/java/javase/downloads/index.html

    55www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    56/62

    Uygulama

    JavaAPIsiniInternettenindiripan.JavaAPIsindevarolanpaketleriveierikleriniinceleyin.JavaAPIsindeaadakisnflarinceleyin:java.lang.Systemjava.lang.Mathjava.lang.String

    56www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    57/62

    JavaDoc

    JavaAPIsiJavaDocformaDndayazlanyorumlardanolumutur.Javaocunkendiekli(format)veeketleri(tag)vardr.azlanyorumlarjavadocileHTMLdosyalarnaderlenir.javadocprogramJKkurulumunun"bin"dizinindedir.azlanJavakodlarmuhakkakJavaocyorumlarylabirlikteyazlmaldr.

    orumsuzbirkod,eksikbirkoddur!

    SaDnalnanyadaulalanvekullanlmakistenenhertrlbileen(component),ereve(framework)vb.yapiinJavaDocformaDndaoluturulmuAPIoknemlidir.

    57www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    58/62

    Bulp.java

    58www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    59/62

    Uygulama

    JavaAPIsindebulunanbirsnkullanarak,biryazdageentmkelimeleribulun.adangilizceolarak:FindallofthetokensinastringusingaclassfoundinJavaAPI.

    BununiinJavaAPIsindenbuiiinjava.u)lpakendenuygunbirsnfbulup,APIsinikullanarakuygunkurucuvemetotlarnnelerolduklarnbelirleyin.

    ahasonrabukurucuvemetotlarararakverilenbirStringnesnesininkelimelerinitektekbulupprintedin.

    ahasonraayraolarakaharfinikullanarakStringnesnesiniparalayn.

    59www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    60/62

    zet

    Bublmde,birncekiblmdedetaylandrlansnfvenesneyaplarnnorganizasyoneltaraflarelealnd.package,importanahtarkelimeleriileCLASSPATHilendi.Sarmalamavebilgisaklamaprensipleriilebunlaruygulamakiingerekliolaneriimkontrolmekanizmalar

    elealnd.

    JavaAPIsiilejavadocyardmylaJavaDocoluturmailendi.

    60www.javaturk.org

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    61/62

    www.javaturk.org61

  • 7/31/2019 8. Blm Java Nesneleri - Organizasyon

    62/62

    UygulamalarI

    BirncekiblmdeoluturduunuzPointsnnaJavaocyorumlarekleyipjavadocileAPIsinikarn.Farklseenekler(flags)yardmylafarklkonfigrasyonlarileoluturulmuAPIlereldeedin.