You are on page 1of 87

Java Dersi

Altu Bilgin Altnta

Bu Dnem Hakknda

Servlet

Corba

RMI

Temel Ksm

EJB

JSP XML JDBC JNI

alma Evreleri

alma Evreleri

Java dosyasnn hali

lk Java uygulamas

Ciddi bir uygulama

Nasa.java

Snf Nedir? Nesne Nedir?

II

21

Herey Nesne
Javada hereye nesne olarak davranrz. Herseyin nesne olmasna ramen nesneleri ynetmek iin referanslar kullanlr .

18

Ciddi bir uygulama

II NesnelerdeAtama.java

Ciddi bir uygulama

CopNesne.java

Ciddi bir uygulama

MutluAdam.java

http://download.oracle.com/javase/6/docs/api/

Ciddi bir uygulama

TarihHesaplama.java

Ciddi bir uygulama

III. Ali.java Mehmet.java

JAR Dosyalar (The JavaTM Archive File)

Gvenlik Sktrma ndirme (download) zamann azaltmas Paket mhrleme(versiyon 1.2)


Versiyon uyumluluu asndan

Paket versiyonlanma (versiyon1.2)


Versiyon bilgilerinin gsterimi

Tanabilirlik

Aklama
JAR dosyas oluturmak iin JAR dosyasnn ieriini bakmak iin JAR dosyasnn ieliini toptan dar kartmak iin

Komut
jar -cf jar-dosya-ismi ieriye-atlacak-dosya(lar) jar -tf jar-dosya-ismi jar -xf jar-dosya-ismi

Belli bir dosyay JAR dosyasndan dar kartmak iin

jar -xf jar-dosya-ismi arivlenmi dosya(lar) jre -cp jar-dosya-ismi MainClass

JAR olarak paketlenmi uygulay altrmak iin

jar -cf kou.jar tr/

CLASSPATH AYARLARI

CLASSPATH="C:\kodlar\bolum4\;."
Yukardaki ifade yerine artk aadaki ifadeyi kullanabiliriz.

CLASSPATH="C:\muzik\kou.jar;."

Ciddi bir uygulama

Voltran.java

Ciddi bir uygulama

PolimorfizmOrnekBir

Arayz (Interface)

Arayzler, soyut snflarn bir st modeli gibi dnlebilir. Arayzler tamamen birletirici bir rol oynamalar iin tasarlanmlardr.

Arayz (Interface)

Arayzlerin ierisindeki gvdesiz (soyut) yordamlar (methods) otomatik olarak public eriim belirleyicisine sahip olurlar.

Ciddi bir uygulama

BuyukIsYeri.java

class Mudur implements Calisan { public void calis() { // iptal etti (override) System.out.println("Mudur Calisiyor"); } }

Arayz(Interface) ve Soyut snflar(Abstract classes) interface Hayvan { public void avlan() ; } abstract class Kedi implements Hayvan { }

Bu rnek derlenir mi ?

Arayz (Interface)

Arayzler, soyut snflarn bir st modeli gibi dnlebilir. Arayzler tamamen birletirici bir rol oynamalar iin tasarlanmlardr.

Arayz (Interface)

Arayzlerin ierisindeki gvdesiz (soyut) yordamlar (methods) otomatik olarak public eriim belirleyicisine sahip olurlar.

Ciddi bir uygulama

Karisim2.java

Arayz(Interface) ile oklu kaltm(Multiple inheritance)

Java Programlama dili oklu kaltm (multiple inheritance) desteklemez.

10

11

Ciddi bir uygulama

Spor.java

Sebep

Sporcu s = new SportmenMehmet(); // yukari cevirim s.calis(); // ??

13

Arayz (Interface) ile oklu kaltma destek

14

rnek

SportmenMehmet belki hem BuzPatenci hem de Basketbolcu olamayabilir ama bunlara ait zellikleri alabilir.

15

Ciddi bir uygulama

Spor2.java

Arayzlerin kaltm (inheritance) yoluyla geniletilmesi

Bir arayz baka bir arayznden tretilebilir. Bylece arayzler kaltm yoluyla geniletilmi olur.

16

17

Yakndan baklrs

interface Avlanabilme extends DahaHizliKosabilme,Kosabilme { //.. }

18

Ciddi bir uygulama

Jaguar.java

akmalar

Arayzlerin ierisinde dn tipleri haricinde hereyleri ayn olan gvdesiz (soyut) yordamlar varsa bu durum beklenmedik sorunlara yol aabilir.
Cakisma.java (derlemeye allrsa...)

20

Ciddi bir uygulama

Cakisma.java (derlemeye

allrsa...)
7

public void hesapla(); // A1 arayzne ait public int hesapla(); // A3 arayzne ait

21

Arayzn(Interface) ierisinde alan tanmlama

Arayzlerin ierisinde gvdesiz (soyut) yordamlarn dnda alanlar da bulunabilir. Bu alanlar, dier uygulamalarda sabit olarak kullanlabilir. Arayzn ierisinde tanmlanan bir alan (ilkel tipte veya snf tipinde olsun) otomatik olarak hem public eriim belirleyicisine hem de final ve static zelliine sahip olur.
22

rnek

AyBul.java

23

Ciddi bir uygulama

AyBul.java
7

Genel Bak

Arayzlerin (interface) bizlere salamak istedigi fayda nedir ?

25

Genel Bak

Ulalmak istenen amalardan biri oklu yukar evirimdir (upcasting).

26

Ciddi bir uygulama

GenelBakis.java

Yakndan bakarsak

class A extends Soyut1 implements Arayuz1, Arayuz2 {

//...... }

27

28

Soyut1 soyut_1 = new A(); Arayuz1 arayuz_1 = (Arayuz1) soyut_1; // tip degisimi Arayuz2 arayuz_2 = (Arayuz2) soyut_1; // tip degisimi

29

Veya

Soyut1 soyut_1 = new A(); Arayuz1 arayuz_1 = new A(); Arayuz2 arayuz_2 = new A();

30

Arayzlerin en nemli amac balam kesmektir (decoupling) - I.

Yazlm tasarmlarnn en nemli amac uygulamay paralara ayrmaktr (decompose).


Uygulamay paralara ayrmak art m ? Neden ?

Balam Kesmek (decoupling) paralara ayrlan ksmlarn birbirleriyle nasl bir iliki ierisinde olmalar gerektii ile alakal bir konudur.

31

Arayzlerin en nemli amac balam kesmektir (decoupling) - II.

Kullanm diyagram (Uses Diagram) Paralara ayrlan ksmlar arasndaki ball ifade eden bir gsterim seklidir. A paras B parasna ait bir ksm kullanyorsa o zaman A paras B parasna bamldr diyebiliriz.

32

Arayzlerin en nemli amac balam kesmektir (decoupling) - VI. Bamllk ve Belirtimler (Dependences and Specifications) A parasnn B parasna olan bamlln kesmek iin araya belirtim konabilir. Belirtimler (Java programlama dilindeki arayzler-interface) tek balarna altrlamazlar. Bylece A paras (S) belirtimine baml olur, B parasda belirtimin (S) gerektirdiklerini yerine getirir.

36

Arayzlerin en nemli amac balam kesmektir (decoupling) - VII. Balam kesme (decoupling) teknikleri Java ktphaneleri ierisinde de kendisini okca gsterir. java.util paketinin altndaki List arayz bunun en gzel rneklerindendir.

37

Dahili Snflar (Inner Classes)

Dahili ye snflar Yerel snflar (Local classes) simsiz snflar (Anonymous classes)

43

Dahili ye Snflar

class CevreliyiciSinif { class DahiliSinif { //.... } //... }

44

Ciddi bir uygulama

Hesaplama.java

Tretilebilen Dahili ye Snflar

Dahili ye snflar, ayn normal snflar gibi baka snflardan tretilebilirler. Bylece oklu kaltm desteinin bir benzerini (gvenli), Java programlama dilinde de bulabiliriz.

47

48

Ciddi bir uygulama

YarisArabasi.java

Yerel Snflar (Local Classes)

Yerel snflar
Yaplandrclarn (constructor) Snf yordamlarnn (statik yordam) Nesne yordamlarnn Statik alanlara toplu deer vermek iin kullandmz statik bloun Statik olmayan alanlara toplu deer vermek iin kullandmz bloun ierisinde tanmlanabilir.

50

Yerel Snflar

public class Sinif { public void yordam() { public class YerelSinif { //... } } }

51

57

Ciddi bir uygulama

VI Supermarket.java

Ciddi bir uygulama

VI HashMapTestBir.java

Java 'da en iyi uygulama kurallar - 1

Java 'da en iyi uygulama kurallar - 2 Yanl

Doru

Java 'da en iyi uygulama kurallar - 2 Doru

Daha Doru

Java 'da en iyi uygulama kurallar - 3 Doru

Java 'da en iyi uygulama kurallar - 4 Doru

Java 'da en iyi uygulama kurallar - 5 Doru

Java 'da en iyi uygulama kurallar - 6

Java 'da en iyi uygulama kurallar - 7

Sorular ...

58

You might also like