BİL-141 Bilgisayar Programlama I (Java)

Benzer belgeler
NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

BİL-141 Bilgisayar Programlama I (Java)

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

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.

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java)

BM-209 Nesne Yönelimli Programlama

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

Nesne Yönelimli Programlama

BİL-141 Bilgisayar Programlama I (Java)

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

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

EMT2226 Nesne Yönelimli Programlamaya Giriş

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

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

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

Dr. Fatih AY Tel: fatihay@fatihay.net

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 11

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

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

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

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

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

11- FONKSİYONLAR (FUNCTIONS)

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

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

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

JAVADA DİZİ İŞLEMLERİ

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ü

Java. Mustafa OF. Kocaeli Üniversitesi Kocaeli Meslek Yüksekokulu (Mart 2007)

Nesne Yönelimli Programlama

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

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Nesne Yönelimli Programlama

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

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

YZM 2105 Nesneye Yönelik Programlama

Örnek 1: Programı yazın ve çalıştırın.

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA

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

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

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA

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

// hataları işaret eden referans

Sunum İçeriği. Programlamaya Giriş

Programlama Dillerinde Kullanılan Veri Tipleri

BİL-141 Bilgisayar Programlama I (Java)

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Java String İşlemleri

String (Dizgi) İşlemleri

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Operator Aşırı Yükleme (Operator OverLoading)

public static int Toplam int x, int y

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

M.ilkucar MAKU MYO 1

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

Ders 8: Metotlar. barisgokce.com

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

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

Nesneye Dayalı Programlama

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

HSancak Nesne Tabanlı Programlama I Ders Notları

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

İç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

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 5. UYGULAMA ERKEKLER İÇİN (BOY-108) BAYANLAR İÇİN (BOY-112)

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

MAT213 Bilgisayar Programlama I

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

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

C#(Sharp) Programlama Dili

Nesne Tabanlı Programlama

BİL-142 Bilgisayar Programlama II

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

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

HSancak Nesne Tabanlı Programlama I Ders Notları

BTEP243 Ders 3. class Yazım Kuralı:

BMH-303 Nesneye Yönelik Programlama

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 11: Metot Kavramı

C Programlama Dilininin Basit Yapıları

Yazılım Kodlama ve İ simlendirme Standartları v1.0

10/17/2007 Nesneye Yonelik Programlama 3.1

İLKEL VERİ TİPLERİ, STRINGLER VE KONSOL G/Ç

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

7. HAFTA. Erişim Belirleyiciler

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

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

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir.

Transkript:

BİL-141 Bilgisayar Programlama I (Java) TOBB Ekonomi ve Teknoloji Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, M. Ali Akcayol tarafından Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu, M. Özbayoğlu, M. Erten, O. Ergin kitabı kullanılarak hazırlanmıştır. Konular Metotlarla Programlama Statik Metotlar ve Değişkenler Math Sınıfı Sarmalayan Sınıflar Fazladan Yükleme (Overloading) Nesne Kurucular 1

Metotlarla Programlama Başka metotları çağıran metotlar Java dilinde bir metodun gövdesinde başka metot çağırılabilir. main() metodunun içinde başka nesnelere ait metotlar nesne adıyla birlikte çağırılmaktadır. Bir metot ait olduğu sınıfın içinde başka bir metodu doğrudan adıyla çağırabilir. (this işaretçisi de kullanılabilir.) 3 Metotlarla Programlama Başka metotları çağıran metotlar Aşağıdaki örnekte oyunsorusu() metodunun içinden oyunoyna() metodu doğrudan adıyla çağırılmıştır. public void oyunsorusu() String cevap; Scanner klavye = new Scanner(System.in); do oyunoyna(); System.out.print( Bir kere daha ); System.out.println( oynamak istiyor musun? ); cevap = klavye.next(); while (cevap.equalsignorecase( Evet )); System.out.println( iyi gunler ); 4 2

Metotlarla Programlama Başka metotları çağıran metotlar devam örnek /** * SayiOyunu sinifi bilgisayarin rasgele sectigi bir sayiyi * bulmak icin kullanilir. */ import java.util.*; public class SayiOyunu int bulunacaksayi; int girilensayi; boolean sayibulundu; private void buyukkucukgoster() if (girilensayi > bulunacaksayi) System.out.print("Sayiniz buyuk. "); System.out.println("Daha kucuk bir sayi girin."); 5 Metotlarla Programlama Başka metotları çağıran metotlar devam örnek else if (girilensayi < bulunacaksayi) System.out.print("Sayiniz kucuk. "); System.out.println("Daha buyuk bir sayi girin."); else // Sayi bulundu. System.out.println("Sayiyi buldunuz, tebrikler."); sayibulundu = true; 6 3

Metotlarla Programlama Başka metotları çağıran metotlar devam örnek public void oyunsorusu() String cevap; Scanner klavye = new Scanner(System.in); do oyunoyna(); System.out.print("Bir kere daha oynamak "); System.out.println("istiyor musun? (Evet-Hayir)"); cevap = klavye.next(); while (cevap.equalsignorecase ("Evet")); System.out.println("iyi gunler"); private void oyunabasla() bulunacaksayi = (int) (Math.random() * 100 + 1); sayibulundu = false; 7 Metotlarla Programlama Başka metotları çağıran metotlar devam örnek private void sayisor() Scanner klavye = new Scanner(System.in); do System.out.print("1 ile 100 arasinda "); System.out.println("bir sayi girin."); girilensayi = klavye.nextint( ); while ((girilensayi < 1) && (girilensayi > 100)); private void oyunoyna() oyunabasla(); do sayisor(); buyukkucukgoster(); while (!(sayibulundu)); 8 4

Metotlarla Programlama Başka metotları çağıran metotlar devam örnek public class DeneSayiOyunu public static void main(string [] args) SayiOyunu oyun1 = new SayiOyunu(); oyun1.oyunsorusu(); Yukarıdaki örnekte SayiOyunu sınıfı içindeki metotlar birbirlerini çağırabilmektedir. Bir metot kendi sınıfının dışından çağırılmak istendiğinde nesneyle birlikte kullanılması gerekir. DeneSayiOyunu sınıfı SayiOyunu sınıfına ait oyunsorusu() metodunu çağırırken oyun1 adlı nesneyle çağırmaktadır. 9 Metotlarla Programlama Başka metotları çağıran metotlar devam örnek Çıktı: DeneSayıOyunu sınıfının örnek programda çalışması 1 ile 100 arasında bir sayı girin. 175 1 ile 100 arasında bir sayı girin. 87 Sayiniz buyuk. Daha kucuk bir sayi girin. 34 Sayiniz kucuk. Daha buyuk bir sayi girin. 67 Sayiniz buyuk. Daha kucuk bir sayi girin. 63 Sayiyi buldunuz. tebrikler. Bir kere daha oynamak istiyor musun? Evet 1 ile 100 arasında bir sayı girin. 77 Sayiniz kucuk. Daha buyuk bir sayi girin. 90 Sayiniz buyuk. Daha kucuk bir sayi girin. 85 Sayiyi buldunuz. tebrikler. Bir kere daha oynamak istiyor musun? Hayir iyi gunler 10 5

Konular Metotlarla Programlama Statik Metotlar ve Değişkenler Math Sınıfı Sarmalayan Sınıflar Fazladan Yükleme (Overloading) Nesne Kurucular Statik Metotlar ve Değişkenler Bazı problemlerde nesne kullanmayan metotlar ve değişkenler gerekebilir. Bir sınıftan oluşturulan tüm nesneler için bir değişken veya metot aynı olacaksa tanımlaması static yapılır. Static üyelere erişim nesne ile değil sınıf adı ile yapılır. Nesne ile erişimde derleyici hata vermez ancak static üye olduğu kullanıldığı yerde anlaşılmaz. Static üyelere this pointer ı ile erişilemez. Derleyici hata verir. This pointer ı bir üyeye erişen nesneyi işaret eder. 12 6

Statik Metotlar ve Değişkenler Aşağıdaki örnekte Math sınıfının static üyesi sqrt() fonksiyonu kullanılmıştır. Math.sqrt(2.5); Static üyerle erişim aşağıdaki gibi yapılmalıdır. Sınıf_adı.metot_adı(); Sınıf_adı.değişken_adı; 13 Örnek1 Statik Metotlar ve Değişkenler public class StaticOrnek public static int statica; // Static data member public int a; public static void setstatica(int deger) statica = deger; public void seta(int deger) a = deger; 14 7

Statik Metotlar ve Değişkenler Örnek1 devam public int getstatica() return statica; public int geta() return a; 15 Statik Metotlar ve Değişkenler Örnek devam public class DeneStaticOrnek public static void main(string [] args) StaticOrnek s1 = new StaticOrnek(); StaticOrnek s2 = new StaticOrnek(); s1.setstatica(5); s1.seta(10); s2.setstatica(15); s2.seta(20); Çıktı: s1 nesnesinin statica degeri = 15 s1 nesnesinin A degeri = 10 s2 nesnesinin statica degeri2= 15 s2 nesnesinin A degeri = 20 System.out.print("s1 nesnesinin statica "); System.out.println("degeri = " + s1.getstatica()); System.out.print("s1 nesnesinin A "); System.out.println("degeri = " + s1.geta()); System.out.print("s2 nesnesinin statica "); System.out.println("degeri = " + s2.getstatica()); System.out.print("s2 nesnesinin A "); System.out.println("degeri = " + s2.geta()); 16 8

Statik Metotlar ve Değişkenler Örnekte statica değişkeni iki nesne içinde aynıdır. Ancak A değeri farklıdır. statica değişkeni static tanımlandığı için nesneden bağımsızdır. statica değişkeni için setstatica() ve getstatica() isimli iki farklı static metot tanımlanması erişimin bunlar ile yapılması tercih edilen yoldur. Bu düzeltmelerin yapılmış hal devam eden sayfadadır. gibi yapılmalıdır. 17 Statik Metotlar ve Değişkenler Örnek1 Düzeltilmiş hali public class StaticOrnekYeni public static int statica; public int a; public static void setstatica(int deger) statica = deger; public void seta(int deger) a = deger; 18 9

Statik Metotlar ve Değişkenler Örnek1 Düzeltilmiş hali devam public static int getstatica() return statica; public int geta() return a; 19 Statik Metotlar ve Değişkenler Örnek1 Düzeltilmiş hali devam public class DeneStaticOrnek public static void main(string [] args) StaticOrnek s1 = new StaticOrnek (); StaticOrnek s2 = new StaticOrnek (); StaticOrnek.setStaticA(5); s1.seta(10); StaticOrnek.setStaticA(15); s2.seta(20); System.out.print("s1 nesnesinin statica degeri = "); System.out.println(StaticOrnek.getStaticA()); System.out.print("s1 nesnesinin A degeri = "); System.out.println(s1.getA()); System.out.print("s2 nesnesinin statica degeri = "); System.out.println(StaticOrnek.getStaticA()); System.out.print("s2 nesnesinin A degeri = "); System.out.println(s2.getA()); 20 10

Statik Metotlar ve Değişkenler Örnek2 static metot kullanılarak faktöriyel hesabı import java.util.*; public class DeneFaktoriyelToplami public static void main(string [] args) long n, toplam=0; System.out.print("Bir tamsayi giriniz (n>2):"); Scanner klavye = new Scanner(System.in); n = klavye.nextint(); for (long k = 1; k <= n; k++) toplam = toplam + faktoriyel(k); System.out.println("1!+2!+...+" + n + "!=" + toplam); 21 Statik Metotlar ve Değişkenler Örnek2 static metot kullanılarak faktöriyel hesabı - devam public static long faktoriyel(long sayi) long f = 1; for (int i = 1; i <= sayi; i++) f = f * i; return f; 22 11

Statik Metotlar ve Değişkenler Örnek3 Nesne kullanılarak faktöriyel hesabı import java.util.*; public class DeneFaktoriyelToplamiYeni public static void main(string [] args) long n, toplam=0; FaktoriyelToplami eleman = new FaktoriyelToplami (); System.out.print("Bir tamsayi giriniz (n>2):"); Scanner klavye = new Scanner (System.in); n = klavye.nextint(); for (long k = 1; k <= n; k++) toplam = toplam + eleman.faktoriyel(k); System.out.println("1!+2!+...+" + n + "!=" + toplam); 23 Statik Metotlar ve Değişkenler Örnek3 Nesne kullanılarak faktöriyel hesabı - devam public class FaktoriyelToplami public long faktoriyel(long sayi) long f = 1; for (int i = 1; i <= sayi; i++) f = f * i; return f; Çıktı: Bir tamsayi giriniz (n>2):8 1!+2!+...+8!=46233 24 12

Statik Metotlar ve Değişkenler Bir static metodun içinde static olmayan metodun çağırılabilmesi için ait olduğu sınıftan bir nesne oluşturulup nesne adıyla çağırılması geekir. Örnekte static bir metodun içinden static olmayan metot çağrılmaktadır. import java.util.*; public class DaireHesabi public static final double PI = 3.14159; private double dairecapi; public void setdairecapi(double Cap) dairecapi = Cap; 25 Statik Metotlar ve Değişkenler public static double alan(double yaricap) return (PI * yaricap * yaricap); public void alanigoster() System.out.print("Dairenin alani "); System.out.println(alan(daireCapi / 2)); public static void alanbulma() System.out.println("Dairenin capini giriniz:"); Scanner klavye = new Scanner(System.in); double cap1 = klavye.nextdouble(); DaireHesabi daire1 = new DaireHesabi(); daire1.setdairecapi(cap1); daire1.alanigoster(); 26 13

Statik Metotlar ve Değişkenler public class DeneDaireHesabi public static void main(string [] args) DaireHesabi daire1 = new DaireHesabi(); daire1.setdairecapi(2); System.out.println("Eger dairenin capi 2 ise "); daire1.alanigoster( ); System.out.print("Simdi yeni bir daire "); System.out.println("hesaplayalim."); DaireHesabi.alanBulma( ); Çıktı: Eger dairenin capi 2 ise Dairenin alani 3,14159 Simdi yeni bir daire hesaplayalim. Dairenin capini giriniz: 6 Dairenin alani 28.274309999999996 27 Statik Metotlar ve Değişkenler static değişkenlerde nesneden bağımsızdır. static metodun içinden static olmayan bir değişkene de bir nesne oluşturularak erişilir. Örnekte static bir metodun içinden static olmayan değişken çağrılmaktadır. // Static olmayan degiskenin static metodun içinde kullanimi public class DaireHesabiYeni public static final double PI = 3.14159; private double dairecapi; public void setdairecapi(double Cap) dairecapi = Cap; 28 14

Statik Metotlar ve Değişkenler public static double alan(double yaricap) return (PI * yaricap * yaricap); public static void StaticOlmayanDaireCevresi(double cap) double ornekdairecevresi; DaireHesabiYeni daire1 = new DaireHesabiYeni( ); daire1.dairecapi = cap; ornekdairecevresi = PI * daire1.dairecapi; System.out.print("Ornek daire cevresi = "); System.out.println(ornekDaireCevresi); 29 Statik Metotlar ve Değişkenler public class DeneDaireHesabi public static void main(string [] args) DaireHesabiYeni daire1 = new DaireHesabiYeni(); daire1.setdairecapi(2); System.out.println("Eger dairenin capi 2 ise "); DaireHesabiYeni.staticOlmayanDaireCevresi(2); Çıktı: Eger dairenin capi 2 ise Ornek daire cevresi = 6.28318 30 15

Statik Metotlar ve Değişkenler Örnek : Kitap sınıfı // Kitap sinifi public class Kitap //instance variables private String kitapadi; private int basimyili; private String ISBN; private double satisfiyati; public void setbaslik(string a) kitapadi = a; public void setbasimyili(int b) basimyili = b; 31 Statik Metotlar ve Değişkenler Örnek : Kitap sınıfı devam public void setisbn(string c) ISBN = c; public void setsatisfiyati(double d) satisfiyati = d; public void kitapyazdir() System.out.println("Kitap adi:" + kitapadi); System.out.println("ISBN:" + ISBN); System.out.println("Basim yili:" + basimyili); System.out.println("Fiyati:" + satisfiyati); // Kitap sinifi sonu 32 16

Statik Metotlar ve Değişkenler Örnek : Kitap sınıfınını kullanılması /** * main metodunun baska bir sinif (DeneKitap) içinde kullanimi * Bu program 3 adet Kitap nesnesi kullanmaktadir. * Sizin göreviniz, denekitabi kullanarak, Kitap nesnesini * tanimlamak ve metotlarini yazmak olacaktir. */ public class DeneKitap public static void main (String [] args) Kitap kitap1 = new Kitap(); kitap1.setbaslik("t.c. Anayasasi"); kitap1.setbasimyili(2001); kitap1.setisbn("123-45678-9"); kitap1.setsatisfiyati(24.50); // Kitap bilgilerini yazdir. kitap1.kitapyazdir(); // main metot sonu // DeneKitap sinifi sonu Çıktı: Kitap adi:t.c. Anayasasi ISNB:123-45678-9 Basim yili:2001 Fiyati:24.5 33 Statik Metotlar ve Değişkenler main() metodu aynı sınıf içinde de kulanılabilir. // main metodunun ayni sinif içinde kullanimi public class Zar private final int MAKSIMUM = 6; private int zardegeri; public Zar() zardegeri = 1; public int zarat() zardegeri = (int)(math.random() * MAKSIMUM) + 1; return zardegeri; 34 17

Statik Metotlar ve Değişkenler public void zardegeriver(int deger) zardegeri = deger; public int zardegerial() return zardegeri; public String tostring() String sonuc = Integer.toString(zarDegeri); return sonuc; 35 Statik Metotlar ve Değişkenler public static void main (String [] args) Zar zar1 = new Zar(); int zarsonucu; System.out.println("Zarda 6 atana kadar devam."); do zarsonucu = zar1.zarat(); System.out.print("Atilan zar = "); System.out.println(zar1.toString()); while (zar1.zardegerial()!= 6); Çıktı: Zarda 6 atana kadar devam. Atilan zar = 5 Atilan zar = 4 Atilan zar = 6 36 18

Konular Metotlarla Programlama Statik Metotlar ve Değişkenler Math Sınıfı Sarmalayan Sınıflar Fazladan Yükleme (Overloading) Nesne Kurucular Math Sınıfı Math sınıfı matematiksel işlemler için tanımlanmıştır. Tüm metotlar static olarak tanımlanmıştır. Math.PI ve Math.E iki static değişmezdir. Metot Parametre Sonuç Math.pow(x,y) x,y: double double Math.abs(x) Math.max(x,y) Math.min(x,y) x: int, long, float, veya double x,y: int, long, float, veya double x,y: int, long, float, veya double Math.sqrt(x) x: double Double Math.round(x) Parametreyle aynı Parametreyle aynı Parametreyle aynı x: float veya double int veya double Math.ceil(x) x: double double Math.floor(x) x: double double 38 19

Konular Metotlarla Programlama Statik Metotlar ve Değişkenler Math Sınıfı Sarmalayan Sınıflar Fazladan Yükleme (Overloading) Nesne Kurucular Sarmalayan Sınıflar Java da veri türleri değerle metoda gönderilirler. Java da veri türlerini sınıf gibi kullanabilmek için sarmalayan sınıflar (wrapper classes) kullanılır. Temel veri türü int double float char boolean long byte short Sarmalayan sınıf Integer Double Float Character Boolean Long Byte Short 40 20

Sarmalayan Sınıflar Java da sarmalayan sınıfların kullanımı diğer sınıflarla aynıdır. Integer i = new Integer; i = 10; Sarmalayan veri türünün değeri bir değişkene aktarılabilir. int j = i.intvalue(); int j = i; // kullanılabilir Sarmalayan sınıflar kullanıldığında çok sayıdaki metot kolaylıkla kullanılabilmektedir. 41 Sarmalayan Sınıflar Integer sınıfı static değişkenleri ve değişmezleri Integer i = new Integer; i = 10; Sarmalayan sınıflar kullanıldığında çok sayıdaki metot kolaylıkla kullanılabilmektedir. Değişken adı MAX_VALUE MIN_VALUE Açıklama Java da tamsayının alabileceği en büyük değer (2 31-1) Java da tamsayının alabileceği en küçük değer (-2 31 ) int j = Integer.MAX_VALUE; 42 21

Sarmalayan Sınıflar Integer sınıfı static metotları Metot Integer valueof(string s) int parseint(string s) String tostring(int i) Açıklama Metoda giren String nesnesini Integer nesnesine çevirir. Metoda giren String nesnesini int temel veri türüne çevirir. Metoda giren int temel veri türünü String nesnesine çevirir. 43 Sarmalayan Sınıflar Integer sınıfı static olmayan metotları Metot int compareto(integer) double doublevalue() boolean equals(object o) float floatvalue() int intvalue() long longvalue() short shortvalue() String tostring() Açıklama İki adet Integer nesnesini sayısal olarak karşılaştırır. Metodu çağıran Integer nesnesini double temel veri türüne çevirir. Metodu çağıran Integer nesnesini metod giren nesneyle karşılaştırır. Metodu çağıran Integer nesnesini double temel veri türüne çevirir. Metodu çağıran Integer nesnesinin int temel veri türü olarak değerini verir. Metodu çağıran Integer nesnesini long temel veri türüne çevirir. Metodu çağıran Integer nesnesini short temel veri türüne çevirir. Metodu çağıran Integer nesnesinin sayısal değerini String e çevirir. 44 22

Sarmalayan Sınıflar Char veri türünü sarmalayan Character sınıfının static değişkenleri ve değişmezleri Değişken adı MAX_VALUE MIN_VALUE Açıklama Java da char veri türünün alabileceği en büyük değer \uffff. Java da char veir türünün alabileceği en büyük değer \u0000. char j = Character.MAX_VALUE; 45 Sarmalayan Sınıflar Character sınıfının bazı static metotları Metot int getnumericvalue(char ch) int gettype(char ch) Integer valueof(string s) boolean isdefined(char ch) boolean isdigit(char ch) boolean isletter(char ch) Açıklama Metoda giren Unicode char temel veri türünün rakamsal değerini verir. Metoda giren char temel veri türünün Unicode gösterimi içindeki genel kategorisini verir. Metoda giren String nesnesini Integer nesnesine çevirir. Metoda giren char veri türünün Unicode içinde tanımlı olup olmadığını gösterir. Metoda giren char veri türünün 0-9 arası bir tamsayı olup olmadığını gösterir. Metoda giren char veri türünün bir harf olup olmadığını gösterir. 46 23

Sarmalayan Sınıflar Character sınıfının bazı static metotları devam Metot Açıklama boolean isletterordigit(char ch) boolean islowercase(char ch) boolean isuppercase(char ch) boolean iswhitespace(char ch) char tolowercase(char ch) char touppercase(char ch) String tostring(char ch) Metoda giren char veri türünün 0-9 arası bir tamsayı veya harf olup olmadığını gösterir. Metoda giren char veri türünün bir küçük harf olup olmadığını gösterir. Metoda giren char veri türünün bir büyük harf olup olmadığını gösterir. Metoda giren char veri türünün boşluk gösteren bir Unicode harf olup olmadığını gösterir. Metoda giren char temel veri türünü küçük harfe çevirir. Metoda giren char temel veri türünü büyük harfe çevirir. Metoda giren char temel veri türünü String e çevirir. 47 Sarmalayan Sınıflar Character sınıfında bazı static olmayan metotları Metot int compareto(character) boolean equals(object o) Char charvalue() String tostring() Açıklama İki adet Character nesnesini sayısal olarak karşılaştırır. Metodu çağıran Character nesnesini metoda giren nesneyle karşılaştırır. Metodu çağıran character nesnesinin char temel veri türü olarak değerini verir. Metodu çağıran Character nesnesini String e çevirir. 48 24

Konular Metotlarla Programlama Statik Metotlar ve Değişkenler Math Sınıfı Sarmalayan Sınıflar Fazladan Yükleme (Overloading) Nesne Kurucular Fazladan Yükleme (Overloading) Bir metod farklı sınıflar içinde aynı isimle yer alabilir. Metod kullanılırken nesne adıyla birlikte yazılacağından karşıklık olmaz. Bir sınıfta bir metodun birden fazla durum için kullanılabilmesi metodun fazla yüklenmesiyle gerçekleştirilir. Örneğin Math sınıfındaki birçok metot int, long, float ve double kullanılabilecek şekilde falzadan yüklenmiştir. Math.max(x, y) yazıldığında aynı metoda int, long, float ve double türündeki veri gönderilebilir. 50 25

Fazladan Yükleme (Overloading) Örnekte aynısey() adlı metod fazla yüklenmiştir. //Fazladan yükleme örnegi için FazladanYukleme sinifi public class FazladanYukleme public void aynisey() System.out.println("Merhaba gencler..."); public boolean aynisey(int sayi) boolean yanit; if (sayi % 2 == 0) yanit = true; else yanit = false; return yanit; 51 Fazladan Yükleme (Overloading) // FazladanYukleme nin çalistirilmasi import java.util.*; public class FazladanYuklemeDeneme public static void main(string [] args) boolean yanit; int N; System.out.print("Bir sayi giriniz:"); Scanner klavye = new Scanner(System.in); N = klavye.nextint(); FazladanYukleme fark = new FazladanYukleme(); yanit = fark.aynisey(n); if (yanit) System.out.println(N + " cift sayidir."); else System.out.println(N + " tek sayidir."); fark.aynisey(); Çıktı: Bir sayi giriniz:5 5 tek sayidir. Merhaba gencler... 52 26

Konular Metotlarla Programlama Statik Metotlar ve Değişkenler Math Sınıfı Sarmalayan Sınıflar Fazladan Yükleme (Overloading) Nesne Kurucular Nesne Kurucular Bir nesne oluşturulduğu anda parametrelerine otomatik olarak veya kullanıcı tarafından değer atanmak istenebilir. Bu tür başlangıç değer atamaları nesne kurucusu (constructor) tarafından yapılır. Nesne kurucusu new Sınıf_adı(...) şeklinde yapılır. Nesne kurucusu da sınıfa ait bir metotdur ve falzadan yükleme yapılabilir. 54 27

Nesne Kurucular //Fazladan yüklenen Nesne kuruculari public class Araba private String renk; private int beygirgucu; private int hiz; public Araba(String renk, int guc, int hiz) this.renk = renk; this.beygirgucu = guc; this.hiz = hiz; public Araba(String renk) this.renk = renk; 55 Nesne Kurucular public void verigoster() System.out.println("Renk = "+ this.renk); System.out.println("Beygir Gucu = " + this.beygirgucu); System.out.println("Hiz = " + this.hiz); System.out.println(); public static void main(string [] args) Araba ferrari = new Araba("kirmizi",450,320); Araba fiat = new Araba("beyaz"); fiat.setbeygirgucu(70); fiat.sethiz(155); System.out.println("Ferrari Ozellikleri "); ferrari.verigoster(); System.out.println("Fiat Ozellikleri "); fiat.verigoster(); Çıktı: Ferrari Ozellikleri Renk = kirmizi Beygir gucu = 450 Hiz = 320 Fiat Ozellikleri Renk = beyaz Beygir gucu = 70 Hiz = 155 56 28

Nesne Kurucular Eğer bir nesne kurucusu tanımlanmamışsa Java otomatik olarak bir nesne kurucusunu var sayar. public class Araba private String renk; private int beygirgucu; private int hiz; public static void main(string [] args) Araba ferrari = new Araba(); // Varsayılan nesne kurucusu 57 Nesne Kurucular Eğer programcı bir nesne kurucusu tanımlamışsa varsayılan kurucu kullanılamaz. public class ArabaYeni private String renk; private int beygirgucu; private int hiz; public ArabaYeni (String renk, int guc, int hiz) this.renk = renk; this.beygirgucu = guc; this.hiz = hiz; 58 29

Nesne Kurucular public static void main(string [] args) ArabaYeni ferrari = new ArabaYeni(); // derleyici hata // verir. 59 Nesne Kurucular Önceki örnekte nesne kurucu 3 parametreli bir şekilde tanımlanmıştır. Hiç parametre gönderilmeden nesne kurucusu çağırıldığında derleyici hata verir. Bu hata yeni bir nesne kurucu oluşturularak giderilebilir. 60 30

Nesne Kurucular // Bir önceki programdaki hatanin düzeltilmis hali public class ArabaYeni2 private String renk; private int beygirgucu; private int hiz; public ArabaYeni2(String renk, int guc, int hiz) this.renk = renk; this.beygirgucu = guc; this.hiz = hiz; public ArabaYeni2() 61 Nesne Kurucular public static void main(string [] args) ArabaYeni2 ferrari = new ArabaYeni2(); // tanimli nesne // kurucusu 62 31

Nesne Kurucular Nesne kurucusu diğer metotları çağırabilir. Nesne kurucusu bir nesne geri döndüren metottur. Ancak return kelimesi kullanmaz. 63 Nesne Kurucular //Nesne kurucusunun diger metotlari çagirmasi public class Araba3 private String renk; private int beygirgucu; private int hiz; public Araba3 (String renk, int guc, int hiz) System.out.print("Yeni bir Araba3 nesnesi"); System.out.println(" olusturuluyor."); // nesne kurucusu baska metot çagiriyor. this.set (renk, guc,hiz); 64 32

Nesne Kurucular public Araba3() public void set(string renk, int guc, int hiz) this.renk = renk; this.beygirgucu = guc; this.hiz = hiz; public void verigoster() System.out.println("Renk = " + this.renk ); System.out.println("Beygir Gucu = " + this.beygirgucu); System.out.println("Hiz = " + this.hiz); System.out.println(); 65 Nesne Kurucular public static void main(string [] args) Araba3 ferrari = new Araba3("kirmizi",500,335); System.out.println("Ferrari ozellikleri"); ferrari.verigoster(); ferrari.set("siyah",480,325); System.out.println("Yeni Ferrari ozellikleri"); ferrari.verigoster(); Çıktı: Yeni bir Araba3 nesnesi olusturuluyor. Ferrari ozellikleri Renk = kirmizi Beygir gucu = 500 Hiz = 335 Yeni Ferrari ozellikleri Renk = siyah Beygir gucu = 480 Hiz = 325 66 33