Veri Yapıları 2007 Java Programlama Diline Giriş. Yrd. Doç. Dr. Aybars UĞUR

Benzer belgeler
Veri Yapıları 2010 Java Programlama Diline Giriş. Doç. Dr. Aybars UĞUR

MAT213 Bilgisayar Programlama I. Anadolu Üniversitesi Fen Fakültesi Matematik Bölümü Emrah Akyar Sunum #1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

DATA STRUCTURES. Part I C# Programlama Dili Temelleri

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Java da İşleçler, Ders #3 (4 Kasım 2009)

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

EMT2226 Nesne Yönelimli Programlamaya Giriş

// hataları işaret eden referans

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

HSancak Nesne Tabanlı Programlama I Ders Notları

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Java da Program Denetimi ve Operatörler

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Programlama Dillerinde Kullanılan Veri Tipleri

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

D İ Z İ L E R A R R A Y S

MAT213 Bilgisayar Programlama I

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

OPERATÖRLER Alıştırmalar

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

JAVADA DİZİ İŞLEMLERİ

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Temel Veri Türü İşlemleri

Java: printf() Metodu İle Çıktıyı Biçemleme

Dizi ( Array ) ve Dizgi ( String )

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Görsel Programlama. Temel Veri Tipleri, Değişkenler, Operatörler, Akış Kontrolü, Sınıflar, Metotlar, Paketler ve JavaDoc

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

C# Diziler Sınıf metotları Erişim (kullanım hakkı) deyimleri Üyelerin ömrü(geçerlilik süresi) Hata ayıklama (debug) aracı

Diziler İndisli Değişkenler

Aritmetik Operatörleri Hemen her programlama dilinde olduğu gibi java dilinde de aritmetik işlemler yaparken aşağıdaki operatörleri kullanırız:

11- FONKSİYONLAR (FUNCTIONS)

Karşılaştırma İşlemleri ve Koşullu İfadeler

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Nesne Yönelimli Programlama

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

Nesne Yönelimli Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

Nesne Yönelimli Programlama

Mantıksal (Logic) Operatörler

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

ALGORTMA ve PROGRAMLAMA - II (C# Sürümü) DERS NOTLARI

BASİT VERİ TÜRLERİ, STRİNGLER, VE KONSOL GİRİŞ/ÇIKIŞ

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

NESNEYE YÖNELİK PROGRAMLAMA

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

1 JAVASCRIPT NEDİR? 1

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Nesne Tabanlı Programlama

Göstericiler (Pointers)

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

Programlama Dili Prensipleri. Lab Notları 4

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Bir çok insan Eclipse'i Java için entegre geliştirme ortamı (IDE) olarak bilir. Günümüzde %65 pazar payıyla öncü geliştirme ortamıdır.

M.ilkucar MAKU MYO 1

ALGORİTMA VE PROGRAMLAMA II

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

1 PROGRAMLAMAYA GİRİŞ

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

Sınav Dağılım & IMKB Endeks

Nesneye yönelik: Javada herşey bir nesnedir. Java nesne yönelimli olduğu için kolayca geliştirilebilir.

Nesne Tabanlı Programlama

Java Temel Özellikleri

Görsel Programlama 1

Adım Adım C-II. Eksik kalmış konular

Dr. Fatih AY Tel: fatihay@fatihay.net

Transkript:

Veri Yapıları 2007 Java Programlama Diline Giriş Yrd. Doç. Dr. Aybars UĞUR 1

Java Java, ilk olarak Sun Microsystems tarafından geliştirilen nesne yönelimli programlama dilidir. 1995 yılında piyasaya sürülmüştür. James Gosling, Haziran 1991 de Oak adıyla geliştirmiştir. Platform bağımsızlığı (programı bir kere yaz, derle ve her platformda çalıştır), tasarım amaçlarındandır. Birçok donanım, işletim sistemi ve platformda çalışabilmektedir. 2

Önemli Java Gerçekleştirimleri Sürüm JDK 1.1 (1995) J2SE 1.2(1998) Ad Java 1.0 J2SE Java 2 İlk sürüm Açıklama J2SE (Java 2 Platform, Standard Edition) J2EE (Java 2 Platform, Enterprise Edition) J2ME (Java 2 Platform, Micro Edition). J2SE 5.0(2004) J2SE Tiger Generic yapılar, Autoboxing/Unboxing Gelişmiş for döngüsü, Varargs (Değişken sayıda argüman) J2SE 6 (2006 sonu) : Mustang J2SE 7 (Ağustos 2006-2008) : Dolphin 3

JVM ve Bytecode JVM (Java Virtual Machine) veya Java Sanal Makinesi: Java nın özgün sanal makine modelini gerçekleştiren bilgisayar programları ve yapılarından oluşan bir bütündür. Java Bytecode adı verilen, bilgisayar ara dilini kabul eder. Bir programın bytecode u, Java dili derleyicileri tarafından üretilir. 4

İlk Java Programı Prog1 adlı java programı : class Prog1 { public static void main(string args[]) { System.out.println("Merhaba"); } } ekrana merhaba yazdırmaktadır. 5

Java Uygulaması Java programlarında // Satırın geri kalan kısmının açıklama satırı olduğunu gösterir. Geleneksel /* Açıklama */ işaretleri de özellikle çok satıra yayılan açıklamalarda kullanılır. Deyimler ; ile sonlandırılmalıdır. Her java programı en az bir sınıf tanımı içermelidir. 6

Java Programının Çalıştırılması JVM i (Java Virtual Machine) açmak üzere Java komutu kullanıldığında işletilen bilgisayar programına Java uygulaması (application) denilir. Kaynak Kod Prog1.java DERLEME javac derleyicisi Byte Kod Prog1.class class Prog1 { public static void main(string args[]) { System.out.println("Merhaba"); } } Byte Kod Prog1.class.......... 80 1a.......... > javac Prog1.java ÇALIŞTIRMA java yorumlayıcısı > java Prog1.......... 80 1a.......... JVM tarafından yorumlanabilir. > Merhaba 7

Entegre Geliştirme Ortamları Programların IDE (Integrated Development Environment) kullanılarak yazılması, işletilmesi, test edilmesi ve hatalardan arındırılması kolay olduğu için, bu şekilde uygulama yazılması işlemine RAD (Rapid Application Development) adı verilmektedir. Eclipse (http://www.eclipse.org/) NetBeans (http://www.netbeans.org/products/platform/) JDeveloper (from Oracle) IntelliJ (JetBrains) JCreator (http://www.jcreator.com/) 8

Veri Tipleri Java da iki tür veri tipi vardır: Temel Referans İki tür veri tipi arasındaki fark atama işlemi sırasında ortaya çıkar. Temel tipteki bir değişkenin diğer bir değişkene ataması sırasında veri kopyalanır. Referans değişkeninin diğer bir değişkene ataması sırasında ise, her iki değişken de aynı veriyi gösterir. Referanslar, C/C++ işaretçilerine (pointer) benzerler. Diziler ve Nesnelerin tümü referans veri tipindedir. 9

Java da Temel Veri Tipleri Type Size in bits Values boolean 1 true or false byte 8-128 to +127 char 16 Unicode short 16 integer int 32 integer long 64 integer float 32 float double 64 double 10

Temel Veri Tiplerinin Sınırları Tamsayıların Sınırları Ondalıklı Sayıların Sınırları 11

Java nın 8 Temel Veri Tipi Type Size in bits Values Standard boolean 8 true or false char 16 \u0000 to \uffff (ISO Unicode character set) byte 8 128 to +127 short 16 32,768 to +32,767 int 32 2,147,483,648 to +2,147,483,647 long 64 9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 float 32 3.40292347E+38 to +3.40292347E+38 double 64 1.79769313486231570E+308 to +1.79769313486231570E+308 (IEEE 754 floating point) (IEEE 754 floating point) Fig. 25.1 The Java primitive data types. Sarmalayıcı (Wrapper) Sınıflar java.lang.byte java.lang.short java.lang.integer java.lang.long java.lang.float java.lang.double java.lang.character java.lang.boolean 12

ASCII ve UNICODE Karakter Setleri ASCII, 8 bit kodlama düzenindedir ve en yaygın karakter setidir. 256 karakterle sınırlıdır. Unicode, 16 bitlik kodlama düzenindedir ve 65536 karakterlik sahası vardır. Java programlama dili Unicode u kullanır. 13

Değişkenler - I Tip değişken ismi int sayi1; // int veri tipidir. /* sayi1 değişkeninin tamsayı tipinde olduğunu belirtir */... sayi1=5; float sayi=5.7f; 14

Değişkenler - II Değişkenler, tanımlandıkları gibi değer alırlar: int a = -5; double b = 10.3; Aynı satırda birden çok değişken tanımı yapılabilir. C++ programlama Dilinde olduğu gibi değişkenler, herhangi bir yerde tanımlanabilir. Metodun en üstünde tanımlanma zorunluluğu yoktur. Değişkenlerin, gerekli olduğu yerde tanımlanması uygundur. Java Dilinde değişkenlerin kullanılmadan önce değerleri olması gerekir. Değişkenler sadece tanımlandıkları blokta kullanılabilirler. 15

Veri Tipi Dönüştürme (Casting) Daha geniş bir tipi, daha dar bir veri tipine dönüştürürken casting yapmak gerekir. double sayi1=5; // float sayi2 = sayi1; // Yanlış float sayi2 = (float)sayi1; // Doğru double sayi3 = sayi2; /* Geniş tip olduğundan problem yok */ 16

Yazdırma Komutu System.out.print ve System.out.println System.out.print( Merhaba ); System.out.println( Java Dili ); Merhaba Java Dili System.out.println( \nortalama="+57); System.out.println(5); int sayi = 5; System.out.println("Sayi\tKaresi"); System.out.println(sayi+"\t"+(sayi*sayi)); Sayi Karesi 5 25 System.out.printf (J2SE 5.0 ın yeni özelliklerindendir) String str = "Java"; double versiyon = 5.0; System.out.printf("Merhaba %s %f ", str, versiyon); 17

OPERATÖRLER - I Hesaplamalarda kullanılan operatörler : Aritmetik : +, -, *, /, % (Mod, kalan), ++, -- Mantıksal : &&,,!, &,,... İlişkisel : == (eşittir)!= (eşit değildir) >, <, >=, <= 18

OPERATÖRLER - II Atama Operatörü : değişken = deyim; int x = 5; double sayi = -3.5; int a, b, c; a=b=c=100; // Atama zinciri Bileşik Atamalar : +=, -=, *=, /=,... x-=10; // x = x - 10 ile eşdeğer 19

Operatörler ve Öncelik Sırası Gruplama Operatorler Postfix []. (params) exp++ exp-- Unary ++exp --exp +exp -exp ~! Creation, cast new (type)exp Multiplicative * / % Additive + - Shift << >> >>> Relational < > <= >= instanceof Equality ==!= Bitwise AND & Bitwise EXOR ^ Bitwise OR Logical AND && Logical OR Conditional?: Assignment = *= /= %= += -= >>= <<= >>>= &= ^= = 20

YAPISAL PROGRAMLAMA Yapısal Programlamada üç tür denetim yeterlidir: Sıra (Sequence) Seçim (Selection) Tekrar (Repetition) Sıralı işletim? 21

PROGRAM DENETİM YAPILARI SEÇİM YAPILARI if if/else switch TEKRAR YAPILARI (Döngüler) while do/while for 22

SEÇİM YAPILARI : IF if (koşul) ifade if(notu>=60) System.out.println("Geçti"); Koşul : boolean veri tipindedir. true veya false olabilir. int notu=65, sayac=0; if(notu>=60) // İfade bloğu { System.out.println("Gecti"); sayac++; }; 23

SEÇİM YAPILARI : IF/ELSE if (koşul) ifade; else ifade; if(notu>=60) System.out.println("Gecti"); else System.out.println("Kaldı"); 24

CONDITIONAL OPERATOR (?:) System.out.println(notu>=60? "Geçti":"Kaldı"); Eşdeğer ifade : if (notu>=60) System.out.println("Geçti"); else System.out.println("Kaldı"); 25

IF-ELSE-IF MERDİVENİ (CASCADING IF) if(koşul) ifade else if (koşul) ifade else if (koşul) ifade... else ifade; if (notu>=90) str = A ; else if (notu>=80) str = B ; else if (notu>=70) str = C ; else if (notu>=60) str = D ; else str = E ; System.out.println(str); 26

SEÇİM YAPILARI : SWITCH Çoklu Seçim switch (deyim) { case sabit1: ifade1; break; case sabit2: ifade2; break;... default : ifade; break; } int sayi = 4; switch(sayi) { case 0 : System.out.println(" Sayı 0"); break; case 1 : System.out.println(" Sayı 1"); break; case 2 : System.out.println(" Sayı 2"); break; default : System.out.println("X"); break; 27

DÖNGÜLER : FOR sayac : kontrol değişkeni olmak üzere, for(int sayac=0; sayac<10; ++sayac) ifade for(başlangıç; devam koşulu; kontrol değişkeni değişimi) ifade for(int sayac=0; sayac<10; ++sayac) { } ifadeler 28

DÖNGÜLER : WHILE ve DO-WHILE while(koşul) ifade do { ifadeler } while (koşul); int sayac=1, toplam=0; while(sayac<10) { toplam+=sayac; sayac++; }; 29

DÖNGÜDEN ÇIKMAK : BREAK for(int x=1; x<10; ++x) { } toplam+=x; if (x==5) break; System.out.println("1 ile 5 arasındaki sayıların toplamı = "+toplam); break sadece en içteki döngüden çıkar. 30

DÖNGÜDE ERKEN TEKRAR : CONTINUE 1 ile 100 arasındaki tek sayıları yazan program : for(int i=0; i<100; ++i) { if ( (i%2)!=1) continue; System.out.println(i); } 31

Mantıksal Operatörler VE : Conditional AND && VEYA : Conditional OR if ( (yas>50) && (boy>170) ) ; Conditional ve/veya, kısa devre hesaplaması yapabilir. VE : Boolean Logical AND & VEYA : Boolean Logical OR if ( (yas>50) && (boy>170) ) ; Boolean mantıksal ve/veya, tüm operand ları hesaplar. 32

DİZİLER - I Dizi (array), aynı tipteki değişkenler topluluğudur. int[] arr = new int[10]; int[] dizi = {5,7,12,2,9,8,14,21,-6,5}; 0 1 2 3 4 5 6 7 8 9 5 7 12 2 9 8 14 21-6 5 double[] sayilar; sayilar = new double[5]; -3.4 12.5 27.0 1.1 25.33 33

Diziler - II Diziler, temel veri tipi listesi veya referans listesi içerebilirler. Diziler, köşeli parantezlerle ifade edilirler : [] Köşeli parantezler veri tipinden sonraya yerleştirildiğinde, tüm değişkenleri dizi olarak tanımlar: int[] sayilar, numaralar; Köşeli parantezlerin değişkenden sonraya yerleştirilmesi sadece o değişkeni dizi yapar: int sayilar[], sayac; 34

Diziler - III Diğer referans tipleri (nesneler) gibi diziler de, ya bazı verileri gösteriyordur veya hiçbir yere işaret etmiyordur. Hiçbir yeri göstermiyorsa, int sayilar[] = null; şeklinde olduğu gibi tanımlanmalıdır. Bellekten 15 tamsayılık yer ayırmak için : sayilar = new int[15]; şeklinde kullanılabilir. new operatöründen sonraki veri tipi, tanımlı değişkenin veri tipi ile aynı olmalıdır. Java dizinin her elemanına default olarak 0 değerini atar. 35

DİZİ KULLANIM ÖRNEKLERİ dizi[2]++; dizi[3]=dizi[1]+dizi[2]; System.out.println(dizi[5]); Dizi elemanlarının toplamını bulduran programı yazınız : dizi.length kullanınız! 36

İKİ BOYUTLU DİZİLER (MATRİSLER) M x N M satır, N sütun M=4 0 2 21 3 89 tablo 1 15 33 17 3 2 9 8 61 5 0 1 2 3 N=3 Oluşturulması : int[][] tablo = new int[4][3]; Kullanımı : tablo[0][2] 37

ÇOK BOYUTLU DİZİLER Tip [] [] isim = new tip[büyüklük1]...[büyüklükn] Tip isim[] [] = new tip[büyüklük1]...[büyüklükn] Örnek : float cbdizi[][][][]; // 4 boyutlu dizi cbdizi = new float[3][4][2][6]; 38

STRING LER ve KARAKTER DİZİLERİ Karakter dizisi : Karakterlerden oluşan dizidir. char harfdizi[] = { T', 'e', s', t' }; for(int i=0; i<harfdizi.length;++i) System.out.println(harfDizi[i]); String : Karakter dizisinden farklıdır. Çok sayıda metot içerir. Java nın String sınıfı kullanılır. String str = "Merhaba"; System.out.println(str); str = new String(harfDizi); System.out.println(str); 39

Dizilerden Oluşan Diziler int[][] list = new int[10][]; list[0] = new int[5]; list[1] = new int[10]; list[1][6] = 23; list[0][6] = 23; /* Hata! Exception in thread "main" java.lang.arrayindexoutofboundsexception: 6 at Ornek3.main(Ornek3.java:34) */ 40

BÖL ve ÇÖZ (Divide and Conquer) Yazılım Mühendisliği deneyimleri, büyük programlar geliştirmenin en iyi yolunun küçük program parçaları (modül) yazıp onları birleştirmek olduğunu göstermiştir. Böl ve Çöz olarak bilinen bu yöntem aynı zamanda, hatalardan arındırmayı, programı gelişen şartlara göre büyütmeyi, değişiklikler yapmayı kolaylaştırmak ve anlaşılırlığı artırmak gibi birçok avantajı da beraberinde getirmektedir. Java da temel modüller, sınıf (class) ve metotlardır (method). Metotlar yazılım içinde yeniden kullanılarak kodu ve yazılım geliştirme süresini kısaltmaktadır. 41

METOTLAR (METHOD) Bir işlemin yapılması için bir veya daha fazla ifade kullanmak gerekir. Verilen bir matrisi ekrana yazdırmak gibi. İlgili kodu yazdir() adını verdiğimiz bir metot içine yazarak istediğimiz zaman, ismi ile çağırabiliriz. Java, matematik hesaplamalarını, string, karakter, girdi/çıktı işlemlerini ve diğerlerini yapmak için hazır sınıflar ve metotlar içermektedir. Ayrıca değişik alanlarda hazırlanmış veya kendimizin daha önceden hazırladığı metotları da kullanmak mümkündür. Hazır veya kullanıcı tanımlı paketleri, import java.util.random; import java.util.*; biçimlerinde görüldüğü gibi import kullanılarak yüklenirler. 42

Java Paketleri Hazır Java paketleri içerisinde, birçok sınıf mevcuttur. java.applet java.awt java.awt.event java.io Java.lang Java.net Java.text Java.util Java.swing Java.swing.event Java.lang paketi, Java da çok kullanılan sınıfları içerir. Bu paketteki java.lang.math sınıfı içerisinde bulunan bazı sahalar ve metotlar sonraki slaytlarda gösterilmiştir. (Sadece lang paketine özgü olarak, kullanıcının getirme import zorunluluğu yoktur) 43

Field Summary static double E static double PI Method Summary static double abs(double a) Returns the absolute value of a double value. static float static int static long abs(float a) Returns the absolute value of a float value. abs(int a) Returns the absolute value of an int value. abs(long a) Returns the absolute value of a long value. static double acos(double a) Returns the arc cosine of a value; the returned angle is in the range 0.0 through pi. static double asin(double a) Returns the arc sine of a value; the returned angle is in the range -pi/2 through pi/2. static double atan(double a) Returns the arc tangent of a value; the returned angle is in the range - pi/2 through pi/2. static double atan2(double y, double x) Returns the angle theta from the conversion of rectangular coordinates (x, y) to polar coordinates (r, theta). static double ceil(double a) Returns the smallest (closest to negative infinity) double value that is greater than or equal to the argument and is equal to a mathematical integer. static double cos(double a) Returns the trigonometric cosine of an angle. static double exp(double a) Returns Euler's number e raised to the power of a double value. static double floor(double a) Returns the largest (closest to positive infinity) double value that is less than or equal to the argument and is equal to a mathematical integer. 44

Hazır java.lang.math sınıfının bazı metotları static double log(double a) Returns the natural logarithm (base e) of a double value. static double log10(double a) Returns the base 10 logarithm of a double value. static double max(double a, double b) Returns the greater of two double values. static double min(double a, double b) Returns the smaller of two double values. static double pow(double a, double b) Returns the value of the first argument raised to the power of the second argument. static long round(double a) Returns the closest long to the argument. static double sin(double a) Returns the trigonometric sine of an angle. static double sqrt(double a) Returns the correctly rounded positive square root of a double value. static double tan(double a) Returns the trigonometric tangent of an angle. static double todegrees(double angrad) Converts an angle measured in radians to an approximately equivalent angle measured in degrees. static double toradians(double angdeg) Converts an angle measured in degrees to an approximately equivalent angle measured in radians. http://java.sun.com/javase/6/docs/api/java/lang/math.html 45

METOTLARIN GENEL BİÇİMİ erişim dönüş_tipi isim(parametre listesi) { metodun gövdesi } Erişim : public, private gibi Dönüş_tipi : metodun döndürdüğü veri tipi. Değer döndürmüyorsa void. Parametre listesi :, lerle ayrılmış tip ve parametre ismi. 46

Değer Döndürmeyen Metotlar void metotları public void yazdir() { } System.out.println("Merhaba"); Çağrılması : yazdir(); 47

Değer Döndüren Metotlar public int topla(int a, int b) { return (a+b); } Çağrılması : int y=topla(5,6); Metodun iki de parametresi var. 48

Parametre, Argüman, Return Argüman : Metoda aktarılan değer Parametre : Argümanı kabul eden değişken Return : Metottan çıkmak veya geri dönmek 49

Değişkenlerin Kapsama Alanı { int x = 5; if(sayi>5) { int y = 12; } // y tanımlı değil // x tanımlı } y değişkeninin tanımlı olduğu bölge for(int i=0; i<5; ++i) System.out.println(i); i=10; // Hatalı! 50

Metotlar Örnek 1 int dizi[] = { 5,6,7,8 }; veya benzer şekilde verilen bir tamsayı dizisinin elemanlarının toplamını bulan metodu içeren java programını yazınız. class DiziTopla { public static void main(string args[]) { int dizi[] = { 5,6,7,8 }; System.out.println(topla(dizi)); } public static int topla(int dizi[]) { int toplam = 0; for(int i=0; i<dizi.length; ++i) toplam+=dizi[i]; return toplam; } } 51

Metotlar Örnek 2 class Ornek2 { public static void main(string args[]) { String str = "test"; nyazdir(str,10); } } public static void nyazdir(string str, int n) { for(int i=0; i<n; ++i) System.out.println(str); } 52

Metotlar Örnek 3 Faktöriyel class Ornek3 { public static String f(int n) { int carpim = 1; if (n<0) return "Invalid Input For Function"; else for(int i=1; i<=n;++i) carpim*=i; return ""+carpim; } } public static void main(string args[]) { int sayi = 5; System.out.println(f(sayi)); } Sayı döndüren faktöriyel fonksiyonunu yazınız. 53