java ile grogramlamaya giris

14
JAVA’ya Giriş Rudi Açıkgöz – [email protected]

Upload: rudiacikgoz

Post on 12-Jul-2015

256 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Java ile grogramlamaya giris

JAVA’ya Giriş

Rudi Açıkgöz – [email protected]

Page 2: Java ile grogramlamaya giris

COPYRIGHT @ 2011

Proglama Nedir

• Kahve Makinesi Problemi

• Önce su kaynatılır

• Sonra boş bir bardak hazneye yerleştirilir

• Sonra bir miktar kahve tozu bardağa boşaltılır

• Sonra bir miktar şeker bardağa boşaltılır

• Sonra bir miktar süt tozu bardağa boşaltılır

• Sonra su bardağa boşaltılır

• Son olarak hazne kapağı açılır

’’ Bilgisayar sistemin anlayacağı şekilde, başlangıç ve bitiş

noktası belirlenmiş işlerin yerine getirilerek istenen hedefe

ulaşılmasını sağlayan işlemler bütünüdür’’

Page 3: Java ile grogramlamaya giris

COPYRIGHT @ 2011

Yapısal Proglama (Structured Programming)

• Program akış sırasının önemi

• Akışlardaki adımların alt program olması

• Go-to yapıları

• Akışın kendisini oluşturan her işin kodlanması

• Akışın uzunluğuna bağlı olarak karmaşıklığın artması

• Kod okumanın zorluğu

• Akışların doğasındaki hiyerarşik ve nesnel yapıyı

karşılayamama

• C C++ Java

• Yapısal (Functional) Programlama Nesne Yönelimli

(Object Oriented) Programlama

Page 4: Java ile grogramlamaya giris

COPYRIGHT @ 2011

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

• Yapılacaklar listesinin nesneler tarafından

gerçekleştirilmesi (gerçek hayatta da olduğu gibi !)

• Yapısal programlama ile çok fazla benzerlik

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

• Benzeşim : Her kelime tek başına bir anlam taşımasına

rağmen; her cümlenin anlamı kelimelerin biraya

getirilme şekline göre değişir!

• Nesne dünyasının kurulması programcının elindedir; bu

nedenle iyi-kötü, hızlı-yavaş, karmaşık-basit ...vs

dengelerinin (trade-off) tek sorumlusudur.

Page 5: Java ile grogramlamaya giris

COPYRIGHT @ 2011

Yaklaşım

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

• Attribute (özellik) nesnelerin taşıdığı bilgi; Method

(Yöntem) nesnelerin yetenekleri olarak belirtilir

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

Diagram)

• Örnek : Taksit Hesaplama Aracı

Tutar ve Taksit Sayısı

belirle

Taksit Tutarı

Hesapla

OK ?

Taksit Sağlaması

Yap

Kalanı Son Taksite

Yansıt

Taksit Bilgilerini

Görüntüle

HAYIR

EVET

Page 6: Java ile grogramlamaya giris

COPYRIGHT @ 2011

Analiz

- toplamTutar : float

- taksitSayisi : int

- taksitListesi : Taksit []

- belirle() : void

- hesapla() : float

- goruntule() : void

Ödeme

- toplamTutar : float

- taksitSayisi : int

- taksitListesi : float []

- belirle() : void

- hesapla() : float

- saglamaYap() : boolean

- kalaniSonTaksiteEkle() : void

- goruntule() : void

Taksit Belirleme Araci

- taksitTutari : float

- taksitSirasi : int

- saglamaYap() : boolean

- kalaniSonTaksiteEkle() : void

- goruntule() : void

Taksit

1..

n

Page 7: Java ile grogramlamaya giris

COPYRIGHT @ 2011

Örnek Akış

package tr.com.gvg.egitim; public class Merhaba {

public static void main(String args[]) { System.out.println("Hello World"); }

} /* end of program */

• Case sensitive

• « ; » statement finish

• « { } » block usage

• Formatting : indentation,space, naming convention...etc

• Standard coding style

Page 8: Java ile grogramlamaya giris

COPYRIGHT @ 2011

Örnek Nesne

package tr.com.gvg.egitim; public class Taksit {

private float taksitTutari; private int taksitSirasi; public void hesapla (float toplamTutar, int taksitSayisi, int taksitSirasi){

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

} public void goruntule (){

System.out.println("Hesaplanan taksit tutari : " + taksitTutari + " taksit sirasi : "+taksitSirasi);

} public float getTaksitTutari() { return taksitTutari; } public void setTaksitTutari(float taksitTutari) { this.taksitTutari = taksitTutari; } public int getTaksitSirasi() { return taksitSirasi; } public void setTaksitSirasi(int taksitSirasi) { this.taksitSirasi = taksitSirasi; }

}

Page 9: Java ile grogramlamaya giris

COPYRIGHT @ 2011

İnceleme

package tr.com.gvg.egitim; public class Taksit {

private float taksitTutari; private int taksitSirasi; public void hesapla (float toplamTutar, int taksitSayisi, int taksitSirasi){

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

} public void goruntule (){

System.out.println("Hesaplanan taksit tutari : " + taksitTutari + " taksit sirasi : "+taksitSirasi);

} public float getTaksitTutari() { return taksitTutari; } public void setTaksitTutari(float taksitTutari) { this.taksitTutari = taksitTutari; } public int getTaksitSirasi() { return taksitSirasi; } public void setTaksitSirasi(int taksitSirasi) { this.taksitSirasi = taksitSirasi; }

}

Page 10: Java ile grogramlamaya giris

COPYRIGHT @ 2011

Sınıf Yapısı (Class Structure)

class Entry {

/* fields */

String name;

String address;

String phone;

/* constructor */

Entry(String n, String a, String p) { this.name = n;

this.address = a; this.phone = p; }

/* accessors */

String getName() { return this.name; }

String getAddress() { return this.address; }

String getPhone() { return this.phone; } }

Page 11: Java ile grogramlamaya giris

COPYRIGHT @ 2011

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

abstract continue for new switch

assert*** default goto* package synchronized

boolean do if private this

break double implements protected throw

byte else import public throws

case enum**** instanceof return transient

catch extends int short try

char final interface static void

class finally long strictfp** volatile

const* float native super while

* not used

** added in 1.2

*** added in 1.4

**** added in 5.0

Page 12: Java ile grogramlamaya giris

COPYRIGHT @ 2011

İşlem Operatörleri

Operators Precedence

postfix expr++ expr--

unary ++expr --expr +expr -expr ~ !

multiplicative * / %

additive + -

shift << >> >>>

relational < > <= >= instanceof

equality == !=

bitwise AND &

bitwise exclusive OR ^

bitwise inclusive OR |

logical AND &&

logical OR ||

ternary ? :

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

Page 13: Java ile grogramlamaya giris

COPYRIGHT @ 2011

Örnek Kullanım

public static void main(String[] args) { for(int i=0; i<5;){ System.out.println((++i)+". index"); } System.out.println(""); for(int i=0; i<5;){ System.out.println((i++)+". index"); } System.out.println(""); boolean dogru = true; System.out.println(dogru==true?"Sonuc dogru": "Sonuc yanlis"); dogru = false; System.out.println(dogru==true?"Sonuc dogru": "Sonuc yanlis");

}

Page 14: Java ile grogramlamaya giris

COPYRIGHT @ 2011

Sorular

Teşekkürler...