8. bölüm java nesneleri - organizasyon
TRANSCRIPT
-
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.