Java Ders 11
Java Ders 11
DERS 1
Genel Hatirlatmalar
Java Giris
Mehmet BULUTLUOZ
[Link] [Link].
Genel Hatirlatmalar
4. Anlamadiklarinizi Sorun
Java Developer
Mobile Developer
Ders Isleyisi
Bilmeniz Gerekenler
3. Google Clasroom
- Tum ders notlari, zoom linki ve videolar Google
Classroom’dan paylasilacak
- Maillerinize davetiye gonderildi
Ders Isleyisi
Bilmeniz Gerekenler
1- Ogrenmesi kolay
2- Dunyada en cok kullanilan programlama dili
Sun'a göre 3 milyar cihaz Java kullanıyor. Şu anda
Java'nın kullanıldığı birçok cihaz var.
Bunlardan bazıları şu şekildedir:
- Acrobat reader, medya oynatıcı, antivirüs vb.
- Masaüstü Uygulamaları
- Bankacılık uygulamaları gibi Kurumsal
Uygulamalar
- Cep Telefonu
- Akıllı kart uygulamalari
- Robotik uygulamalari
- Oyunlar
3- Java “Object Oriented Programming (OOP)” Language’ dir.
Object Oriented Programming Nedir?
Field Method
(Variables) (Functions)
Application
Object Nasil Kullanilir ?
Ogretmen
Ogrenci
Dersler
Personel Notlar
Bir Class Hangi Bolumlerden Olusur?
1 – Class Declaration
1 2
2 – Curly braces : Suslu parantez
2
Bir Class’in Icinde Neler Bulunur?
1 – Field / Variables
1
2 2 – Main Method
3 3 – Method
Class Olustururken (Declaration) Kullanilan Keyword’ler Nelerdir?
Bit
Byte
Memory
(Hafiza)
23 EKIM 2021
DERS 2
Java Giris
Variables
Mehmet BULUTLUOZ
[Link] [Link].
Variables (Degisken) Olusturma
Declaration
Variable bellekte (memory) ayrilmis olan alanin (reserved area) adidir.
1- Deger atamasi yapilirken data turune uygun deger atanmalidir. Diger turlu Java hata verir.
Variables Deger Atama
Assignment
2- Ilk once declaration, daha sonra atama yapilabilir.
3- Bir defa declaration yapildiktan sonra, birden fazla
atama yapilabilir. Java son degeri tutar, oncekini siler.
Variables Deger Atama
Assignment
4- Ayni data turunde birden fazla variable tek komutla deklare edilebilir.
5- Ayni data turunde birden fazla variable tek komutla deklare edilip deger atanabilir.
Eclips Kullanim
1- Proje olusturma
3- Class olusturma
Not: float sayilarin sonunda “ f ” yazilmalidir, yazilmazsa java sayiyi double kabul eder
8) double Data Type: Buyuk ondalik sayilar icin kullanilabilir. Hafizada 64 bit kullanir
6. Variable isimleri 1’den fazla kelime iceriyorsa, ilk kelimeden sonraki her kelimenin ilk
hafi buyuk harf ile baslamalidir. firstName, bigApple, ageJohnWalker gibi. Buna
camelCase denir.
Memory (Hafiza) Kullanimi
Javada kullanilan iki hafiza vardir
1- Stack Memory : primitive data tiplerine ait degerleri ve Non-primitive datalara (Object)
ait referanslari(adres) barindirir
2- Heap Memory : Non-primitive data’lari depolamak(store) icin kullanilir
Memory (Hafiza) Kullanimi
reference of an Object
Object
byte
long int
String Array
boolean
Stack Heap
Variables Class Work
3- Iki farkli tamsayi data turunde 2 variable olusturun bunlarin toplamini yazdirin
Interview Question
Scanner
Data Casting
Increment-Decrement
Mehmet BULUTLUOZ
[Link] Muh.
Onceki Dersten Aklimizda Kalanlar
➢ Java’da kod yazarken bir veri tipinden diğer bir veri tipine aktarım yapmamız
gerekebilir.
➢ Veri tiplerinde bir variable’a , olusturuldugu data tipinden farkli bir data turunden
deger atanmasina Data Casting denir.
byte < short < int < long < float(ondalıklı) < double(ondalıklı)
Data Casting
1) Auto Widening (Otomatik Genisletme)
Dar veri tipinden daha genis bir very tipine gecmek iztedigimizde Java donusumu otomatik
olarak yapacaktir.
➢ Genis veri tipinden daha dar bir veri tipine gecmek istedigimizde Java donusumu
otomatik olarak YAPMAYACAKTIR.
➢ Bu durumda Java Casting’in bir problem olusturabilecegini varsayarak sizden
MANUEL ONAY isteyecektir.
➢ Narrowing Casting bazi datalari kaybetmemize yol acabilir, bazen de sayiyi kendi
sinirlari icinde kalan baska bir sayiya donusturebilir
Data Casting
Soru 1 ) byte veri tipinde bir degisken olusturun, short,int,float ve double data tiplerinde
birer degisken olusturup adim adim widening yapin ve yazdirin
Soru 2 ) int veri turunde bir degisken olusturun ve adim adim narrowing yapin ve yazdirin
Soru 3 ) Float data turunde bir variable olusturun ve yazdirin
Soru 4 ) double 255.36 sayisini int’a ve sonra da olusturdugunuz int sayiyi byte’a cevirip
yazdirin
Soru 5 ) int 2 sayiyi birbirine boldurun ve sonucu yazdirin
Soru 6 ) int bir sayiyi double bir sayiya bolun ve sonucu yazdirin
Soru 7 ) Farkli data tipleri ile islem yapip, sonuclarini yazdiralim
30 HAZIRAN 2021
DERS 4
Increment-Decrement
Matematiksel Operatorler
Mehmet BULUTLUOZ
[Link] Muh.
Onceki Dersten Aklimizda Kalanlar
1) Scanner ile kullanicidan String bir deger aliyorsak iki secenegimiz var
- next() kullanirsak ilk space’e kadar olan kismi alir
- nextLine() tum satiri alir
- Eger kullanicidan tek karakter almak istiyorsak nextChar() method’u olmadigi icin next() ile ilk
kelimeyi alip, next()’ten sonra . Koyup charAt(0) kullaniriz
- scan objesi ile isimiz bittiginde [Link]() method’u ile scanner kapatilir
2) Syso ile bir metin yazdirirken, konsolda alt satira gecmek istiyorsak, ikinci satirin baslamasini
istedigimiz harften once bosluk birakmadan, \n yazmaliyiz.
3) Java’da dizilerdeki elementlere ulasmak icin index kullanilir. Index 0’dan baslar. Ornegin Mehmet
kelimesindeki h harfi [Link] ama index’i 2 dir.
4) Data Casting : bir variable’a kendi data turunden baska turde bir deger atamak istersek Data
Casting yapmaliyiz. 2 sekilde data casting olabilir
i) Auto Widening (otomatik genisletme) : Eger variable’in data turu atamak istedigimiz degerin data
turunden genisse Java otomatik olarak bu atamayi yapar.
ii) Explicit Narrowing (Manuel onay ile daraltma) Eger variable’in data turu atamak istedigimiz
degerin data turunden dar ise, Java bu islemi otomatik olarak yapmaz. Bizden bu islem icin onay
ister,
Cunku explicit narrowing data kayiplarina yol acabilir, hatta variable’in sinirlari disinda ise datanin
degistirlmesine sebep olabilir
Increment
Bir Variable’in Degerini Artirma Yontemleri
veya
?
veya
?
? ?
Decrement
Bir Variable’in Degerini Azaltma Yontemleri
veya
?
veya
?
? ?
Pre Increment & Post Increment
➢ Pre Increment ve Post Increment operatorlerinin her ikisi de artirma islemi icin kullanilir
➢ Pre Increment isleminde variable statement’da kullanilmadan once artirilir veya azaltilir
Output : 16
➢ Post Increment isleminde variable statement’da kullanilir, sonra artirilir veya azaltilir
Output : 15
Javada Matematiksel Operatorler
1- Ustel islemler
2- Parantez ici
3- Carpma-Bolme
4- Toplama-cikarma
Ornek 1 : Ornek 2 :
38 / 2 * ( 4 + 3 ) * 2 = 8 + 2 * ( 14 – 6 / 2 ) - 12 =
Modulus %
Soru 1) Kullanicidan 4 basamakli bir sayi alin ve rakamlar toplamini bulup yazdirin
Ipucu 1:
538 % 10 = 8
Ipucu 2:
Int Sayi /10 => Bize son basamak haric sayiyi verir
int sayi=538;
sayi = sayi / 10 =>
sayi’ya 53 degerini atar
1 TEMMUZ 2021
DERS 5
Wrapper Class
Concatenation
Karsilastirma Operatorleri
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
Birden cok String’i + isareti ile topladiginizda Java bu String degiskenleri birlestirerek yeni
bir String olusturur
Not : Eger matematiksel bir islemin icinde String kullanilirsa, matematikteki oncelikler
dikkate alinarak islem yapilir. Sira String ile toplamaya geldiginde toplama yerine
Concatenation uygulanir
Hello23
5Hello
Hello5
Hello6
Concatenation
(String Datalari Birlestirme)
Soru 1 ) Asagida verilen variable’lari kullanarak istenen sonuclari yazdiran programlari
yaziniz.
Karsilastirma Operatorleri
If Statements
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1) Wrapper Classes : promitive data turleri deger alirlar ama method’lari yoktur. Proimitive data
turleri ile hazir method’lar kullanabilmek icin Java Wrapper Class’lari olusturmustur. Character,
Boolean, Byte, Short, Integer, Long, Float ve Double
2) Egerbir String sadece sayilardan olusuyorsa [Link]() method’u ile int’a cevirilebilir.
3) Concatenation : Java, String bir variable ile + isaretinin kullanildigini gordugunde , toplama islemi
yapmaz + isaretinin iki tarafindaki degerleri BIRLESTIRIR.
*** Java’nin concatenation yapmasi icin + isaretinin bir tarafinda String olmasi yeterlidir.
4) Matematiksel bir degeri String’e cevirmek istersek “” ile concat etmemiz yeterlidir.
5) Iki sayiyi toplamak degil de birlestirmek (yan yana yasmak) istersek basa veya araya +”” yapariz.
“”+sayi1+sayi2 sayi1+ “” + sayi2
6) Eger char bir degisken matematiksel bir islemde kullanilirsa, Java o karakterin ASCII degerini
matematiksel islemde kullanir. Eger ascii degerinin devreye girmesini istemiyorsak oncesinde “” ile
concat yapabiliriz.
7) Concat yapilirken Java matematikteki islem oncelik sirasina uygun hareket eder. Ornegin carpma
ve toiplama varsa once carpmayi yapar.
Relational Operators
(Karsilastirma Operatorleri)
&& isareti ile birlestirilen tum ifadeler dogru ise sonuc true olur.
Diger tum durumlarda false doner. ( && operatoru mukemmeliyetcidir )
boolean sonuc1= (5+2 == 7) && (4+3 !=5) ; sonuc1 degeri true olur
[Link]((5*2 != 15) && (5>7)); false yazdirir
|| OR (veya) isareti
|| isareti ile birlestirilen tum ifadeler yanlis ise sonuc false olur.
Diger tum durumlarda truee doner. ( || operatoru iyimserdir )
Eger hava guzel olursa piknige gidecegiz. (guzel olmazsa karar yok)
Eger (hava guzel olursa) {piknige gideriz} her durumda alt satira gecer
If (boolean sart) {sart saglanirsa istenen kod} her durumda alt satira gecer
If Statements
(If cumleleri)
Not : If statement birden fazla olursa hepsi birbirinden bagimsiz olur. If cumlelerini
birbirine baglamayi da ogrenecegiz.
Eger hava guzel olursa piknige gidecegiz. (guzel olmazsa karar yok)
Eger Ali ararsa ona kizacagim. (aramazsa karar yok)
Eger aksam mac varsa onu izleriz. (mac yoksa karar yok)
If Statements
(Sorular)
Soru 1) Kullanicidan bir tamsayi isteyin ve sayinin tek veya cift oldugunu yazdirin
Soru 2) Kullanicidan gun isimlerinden birinin ilk harfini isteyin ve o harfle baslayan gun
isimlerini yazdirin
Ornek: ilkHarf=P output = “Pazar, Pazartesi veya Persembe”
ilkHarf=S output = “Sali”
*** Buyuk kucuk harf problem olmamasi icin toUpperCase methodunu kullanin
Soru 3) Kullanicidan gun ismini alin ve haftaici veya hafta sonu oldugunu yazdirin
Ornek: gun=Pazar output = “Hafta sonu”
gun=Sali output = “Hafta ici”
*** String icin equals method’unu kullanin
Soru 4) Kullanicidan dikdortgenin kenar uzunluklarini isteyin ve dikdortgenin kare olup
olmadigini yazdirin
Soru 5) Kullanicidan bir gun alin eger gun “Cuma” ise ekrana “Muslumanlar icin kutsal
gun” yazdirin. “Cumartesi” ise ekrana “Yahudiler icin kutsal gun” yazdirin. “Pazar”
ise ekrana “Hiristiyanlar icin kutsal gun” yazdirin
3 TEMMUZ 2021
DERS 7
If Else Statements
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1) Javada kullanilan karsilastirma operatorleri
= Asignment operatoru, esitligin sol tarafina variable ismi, sag tarafina ise deger yazilir
==, != karsilastirma operatorleri denir.
<, <= karsilastirma operatorleri matematiksel islem degil, mantiksal karsilastirma yapar
>, >= sonuclari true veya false olur. (true veya false donerler)
2) Conditional Operatorler && (And), || (OR)
&& mukemmeliyetcidir, and ile birbirine bagli sartlarin tamami True olursa sonuc True
olur, bunun disindaki tum durumlar False’dur.
|| iyimserdir, OR ile birbirine baglanan sartlarin tumu F olursa sonuc F olur, bunun
disindaki tum durumlar True’dur.
3) If Statements : If(boolean sart) { sart dogru ise calisacak kod}
sart’in sonucu true ise {body} calisir, false ise {body} calismaz
{body} calissa da calismasa da her durumda {body}den sonraki satir calisir
if cumleleri birbirinden bagimsizdir, hepsi de calisabilir, hicbiri de calismayabilir
(boolean sart) bolumune boolean sonuc dondurmeyen bir kod yazildiginda Java hata verir
Socrative Quiz
5) Isminizi yazin
Sure : 15 Dakika
If Else Statements
If (boolean sart) {sart saglanirsa istenen kod} else {sart saglanmazsa istenen kod}
If Else Statements
(Sorular)
Soru 2) Kullanicidan bir karakter girmesini isteyin ve girilen karakterin harf olup
olmadigini yazdirin
Soru 3) Kullaniciya yasini sorun, eger yas 65’den kucuk ise “emekli olamazsin,
calismalisin”, 65’den buyukse “Emekli olabilirsin” yazdirin
Soru 4) Kullanicidan bir ucgenin uc kenar uzunlugunu alin eger uc kenar uzunlugu
birbirine esit ise ekrana “Eskenar ucgen” yazdirin. Diger durumlarda ekrana
“Eskenar degil” yazdirin.
& Ile && Arasindaki Fark
& isareti kullanildiginda Java isaretin iki yanindaki mantiksal ifadelerin ikisini de kontrol
eder. Bu islem kodumuzu yavaslatir
ilk karsilastirma yanlis olmasina ragmen Java tum karsilastirmalari kontrol etmeye
devam eder.
&& isareti kullanildiginda ise Java en bastan kontrol etmeye baslar, mantiksal ifadelerin
birinde yanlisi bulursa sonrakileri kontrol etme ihtiyaci duymaz. Bu islem kodumuzu
hizlandirir
ilk karsilastirma yanlis oldugunu gorunce Java diger karsilastirmalari kontrol etmeden
alt satira gecer.
If Else If … Statements
Eger soruyu biliyorsa Ali soruyu cozsun , o bilmiyorsa Veli biliyorsa Veli cozsun,
o da bilmiyorsa Ayse biliyorsa, Ayse cozsun, o da bilmiyorsa Fatma biliyorsa,
Fatma cozsun, o da bilmiyorsa kim isterse o cozsun.
Eger soruyu biliyorsa Ali soruyu cozsun , o bilmiyorsa Veli biliyorsa Veli cozsun,
o da bilmiyorsa Ayse biliyorsa, Ayse cozsun, o da bilmiyorsa Fatma biliyorsa,
Fatma cozsun, o da bilmiyorsa kim isterse o cozsun.
If (sart) {sart saglanirsa istenen kod} else if {sart saglanmazsa istenen kod}
else if {sart saglanmazsa istenen kod} else if ( kac tane durum varsa else if ….. )
else {sart saglanmazsa istenen kod}
If Else If Statements
(Sorular)
Soru 5) Kullanicidan gun ismini yazmasini isteyin. Girilen isim gecerli bir gun ise gun
isminin 1.,2. ve [Link] ilk harf buyuk diger ikisi kucuk olarak yazdirin, gun ismi
gecerli degilse “Gecerli gun ismi giriniz” yazdirin
Soru 6) Kullanicidan iki sayi isteyin, sayilarin ikisi de pozitif ise sayilarin toplamini yazdirin,
sayilarin ikisi de negative ise sayilarin carpimini yazdirin, sayilarin ikisi farkli
isaretlere sahipse “farkli isaretlerde sayilarla islem yapamazsin” yazdirin,
sayilardan sifira esit olan varsa “sifir carpmaya gore yutan elemandir” yazdirin.
Soru 7) Kullanicidan 100 uzerinden notunu isteyin. Not’u harf sistemine cevirip yazdirin.
50’den kucukse “D”, 50-60 arasi “C”, 60-80 arasi “B”, 80’nin uzerinde ise “A”
Soru 8) Kullanicidan maas icin bir teklif isteyin ve asagidaki degerlere gore cevap azdirin.
Teklif 80.000’in uzerinde ise “Kabul ediyorum” ,
60 – 80.000 arasinda ise “Konusabiliriz”,
60.000’nin altinda ise “Maalesef Kabul edemem” yazdirin
Nested If Else Statements
If (calisan kadinsa)
{if (yas>60) {emekli olabilirsin} else {emekli olamazsin}}
else
{if (yas>65) {emekli olabilirsin} else {emekli olamazsin}}
If Else Statements
Sorular
Ternary Operator
Switch Case
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1) If Else Statements : If cumleleri eger else ile birbirine baglanmazsa bagimsiz olarak calisirlar.
Bu durumda her bir if body’si calisadabilir, calismayadabilir.
2) If cumlelerini else ile birbirine bagladigimizda, bagli if statement’lardan sadece biri
calisir,digerleri calismaz
3) Bazen tek bir if else ile sorulari cozemeyiz, bu durumda if else statement’lari ic ice (nested)
kullanmamiz gerekir
If Else If Statements
(Sorular)
Soru 9) Interview Question
[Link]
Nested If Else Statements
Sorular
[Link]
Ternary Operator
Not1 : Ternary islemi If Statement ile yapacagimiz islemleri basit olarak yapmamizi
saglar
Not2 : Ternary islemi bize bir sonuc donecegi icin, bu islemi bir variable’a atamaliyiz.
Ternary Operator
Ekranda Ne Goruruz ?
Soru3 : int y = 1;
int z = 1;
int a = y<10 ? y++ : z++;
[Link](y + “,” + z + “,” + a);
Ternary Operator
Sorular
Soru2 ) Kullanicidan bir tamsayi alin ve sayinin tek veya cift oldugunu yazdirin
Soru4 ) Kullanicidan bir sayi alin. Sayi pozitifse “Sayi pozitif” yazdirin, negatifse
sayinin karesini yazdirin
Nested Ternary
Soru1 : Kullanicidan bir tamsayi alin ve sayi 10’dan kucukse “Rakam” , 100’den kucukse “iki
basamakli sayi”degilse “uc basamakli veya daha buyuk sayi” yazdirin
Soru2 : Kullanicidan bir harf isteyin kucuk harf ise consola “Kucuk Harf” , buyuk harfse
consola “Buyuk Harf” yoksa “girdiginiz karakter harf degil” yazdirin.
Nested Ternary
Ekranda Ne Goruruz ?
Soru1 : int y = 8;
(y > 5) ? (y<10 ? 2*y : 3*y) : (y>10 ? 2+y : 3+y);
Soru2 : int y = 12;
(y > 5) ? (y<10 ? 2*y : 3*y) : (y>10 ? 2+y : 3+y);
Soru3 : int y = 5;
(y > 5) ? (y<10 ? 2*y : 3*y) : (y>10 ? 2+y : 3+y);
Soru5 ) Kullanicidan bir sayi alin ve sayi 3 basamakli ise “uc basamakli sayi”, yoksa “Uc
basamakli degil” yazdirin
6 TEMMUZ 2021
DERS 9
Switch Case
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1) Ternary : if ile ayni gorevi yapar ama if’e gore daha basit yapidadir,
2) Ternary’nin icine kodlar yazamayiz ama if gibi dusunup sonuc degerleri atayabiliriz
3) Ternary her zaman bize bir sonuc dondurecegi icin sonuca uygun bir variable’a atama yapabilir
veya ditrek sonucu yazdirmak icin syso icine yazabiliriz
4) Eger bir variable’a atama yapacaksak sartin true ve false olmasi durumlarinda alacagi
degerlerin data turleri ayni olmak zorundadir, direk yazdiracaksak sonuclar ayni data turunden
olmayabilir
String sonuc = sayi%2==0 ? “sayi cift” : “sayi tek” ;
syso( sayi%2==0 ? “sayi cift” : 20) ;
5) Sart kismi boolean olmali
6) Eger tek bir sart ile soruyu cozemiyorsak icice ternary (nested) kullanabiliriz
7) boolean sart ? True olursa sonuc : False olursa sonuc ;
Switch Statement
If else ile cozdugumuz sorularda kontrol etmemiz gereken sart sayisi cok oldugunda
switch Statement kullanilir.
Switch Statement
default komutu basta tanimlanan degisken icin hic bir case calismazsa calistirmak
isedigimiz kodlari yazdigimiz bolumdur.
(If else statements da en sonda yazdigimiz else gibi calisir)
Output :
Ali Can
Output :
AliCan
String Manipulation / Methods
1- charAt( )
Istenen indexdeki karakteri (char) dondurur. Index 0’dan baslar, maximum
index (String’in uzunlugu – 1) dir.
Output :
Eger method’da index olarak maximum indexden buyuk bir sayi kullanilirsa Java hata
verir (StringIndexOutOfBoundsException).
String Manipulation / Methods
3-toUpperCase()
4-toLowerCase()
Girilen String degiskendeki tum harfleri istenen bicime cevirir.
Output :
techproeducation
TECHPROEDUCATION
Output :
techproeducatıon
7 TEMMUZ 2021
DERS 10
String Manipulations
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1) switch case : Eger if else ile kontrol edecegimiz durumlar fazla ise, if else yerine switch-case
kullaniriz
2) Switch’de parantez icine boolean, long,float ve double degerleri olmaz, bunun disindaki String,
int, char vb.. Degerler yazilabilir
3) Switch-case karsilastirmalari case’lerde yapar, switch’de girilen deger, case’de girilen degere
esitse o case calisir
4) Herhangi bir case calismaya basladiginda break gorene kadar calismaya devam eder, break
gorunce switch-case’in sonuna gider .
5) Case’lerde tanimli olmayan tum degerler icin calismasini istedigimiz kod’lari default : bolumune
yazariz (ifelse statements daki en son else bolumu gibidir)
6) Birden fazla case icin ayni kodlar calisacaksa, bu case’ler alt alta yazilir, sonrasinda calismasi
istenen ortak kod yazilip, ardindan break; konulur
String Manipulation / Methods
5-equals
Verilen iki String’in iceriginin birbirine esit olup olmadigini kontrol eder.
Eger verilen Stringlerdeki tum karakterler (bosluk, buyuk harf, kucuk harf, ozel
karakter ..) tamamen ayni ise TRUE doner, aksi durumda (bir karakter bile farkli olsa)
FALSE doner.
Output :
true
String Manipulation / Methods
equals Vs ==
(Interview Sorusu)
equals() methodu verilen iki String’in iceriginin birbirine esit olup olmadigini kontrol eder.
Ayni degere sahip olsa da farkli iki objeyi == ile karsilastirdigimizda sonuc FALSE olur.
Output :
false
true
String Manipulation / Methods
6-equalsIgnoreCase
Verilen iki String degiskeni BUYUK HARF / kucuk harf farki gozetmeksizin
karsilastirir.
Buyuk / kucuk harf farkliligi disinda herhangi bir karakter farkliligi oldugunda equals
methodunda oldugu gibi FALSE dondurur.
Output :
true
String Manipulation / Methods
7-length()
Output :
Output :
0
String Manipulation / Methods
8-indexOf()
indexOf() Sorular
Soru 1) Kullanicidan bir cumle ve bir harf isteyin, harfin cumlede var olup
olmadigini yazdirin
9-lastIndexOf()
lastIndexOf() Sorular
Soru 1) Kullanicidan bir cumle ve bir harf isteyin, harfin cumlede var olup
olmadigini yazdirin
String Manipulations
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1) equals() verilen iki String’in iceriklerini case sensitive olarak karsilastirir, icerikler ayni ise TRU,
ayni degilse FALSE dondurur
2) Equals() ile == ‘in farki : equals() sadece iceriklere bakar, == ise hem iceriklere hem de
referanslara(adrese) bakar. Diger bir deyisle == verilen iki String’in ayni String oldugunu kontrol
eder.
3) equalsIgnoreCase() : verilen iki String’in icerigini case sensitive olmayarak karsilastirir. (Money,
MONEY, money, MoNeY bunlarin hepsi icin true dondurur)
4) length() : verilen String’deki karakter sayisini verir. Son karakterin index’ini bulmak icin
length()-1 kullanilir.
5) “” String’inin length’i 0 dir… Ancak String str = null; dendiginde , null str’in degeri degildir. null bir
keyword’dur, null pointer olarak bilinir ve str’in degerinin olmadigini ifade eder. Yani bize str’in
bir degeri olmadigini isaret eder.
Dolayisiyla [Link](); dedigimizde Java RTE verir.
6) indexOf(String veya char); parametre olarak girilen char veya String’in kullanildigi ilk index’I
verir.
7) lastIndexOf(String veya char); parametre olarak girilen String veya char’I sondan basa dogru arar
ve ilk buldugu kullanimin index’ini bize dondurur.
String Manipulation / Methods
10-contains()
Verilen String’in istenen karakter(ler)i icerip icermedigini kontrol eder. Iceriyorsa TRUE,
icermiyorsa FALSE dondurur.
contains() sorular
Soru 2) Kullanicidan bir cumle isteyin. Cumle “buyuk” kelimesi iceriyorsa tum
cumleyi buyuk harf olarak, “kucuk” kelimesi iceriyorsa tum cumleyi kucuk harf olarak
yazdirin, iki kelimeyi de icermiyorsa “Cumle kucuk yada buyuk kelimesi icermiyor”
yazdirin.
String Manipulation / Methods
11-endsWith()
Verilen String’in istenen karakter(ler) ile bitip bitmedigini kontrol eder. Istenen
karakter(ler) ile bitiyorsa TRUE, yoksa FALSE dondurur.
12-startsWith()
Verilen String’in istenen karakter(ler) ile baslayip baslamadigini kontrol eder. Istenen
karakter(ler) ile basliyorsa TRUE, yoksa FALSE dondurur.
13-isEmpty()
Verilen String’in uzunlugu 0(sifir) ise (Hicbir karakter icermiyorsa) TRUE, yoksa FALSE
dondurur.
false
true
Hata verir
String Manipulation / Methods
13- replace()
Verilen String’deki istenen karakter(ler)i istenen yeni karakter(ler) ile degistirir.
14- replaceAll()
replace() methodu ile benzer olarak verilen String’deki istenene karakter(ler)i istenen
yeni karakter(ler) ile degistirir. Aralarindaki farklar
- replace() methodunda char kullanilabilir, replaceAll()’da char kullanilamaz
replaceAll()
Java'da*rakamlar*1234567890
******* ******** **********
****'** ******** **********
Java*da*rakamlar*1234567890
15- replaceFirst()
Verilen String’deki istenen karakter(ler)in ilkini, istenen yeni karakter(ler) ile degistirir
Java'da*rakamlar 1234567890
*ava'da rakamlar 1234567890
9 TEMMUZ 2021
DERS 12
String Manipulations
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1) Contains( ) parametre olarak yazdigimiz String bir baska String icinde var olup olmadiga bakar.
Aranan String’in kac tane oldugu ile ilgilenmez, sadece var mi yok mu bakar. False veya true
dondurur
2) EndsWith( ) verilen bir String’in, parametre olarak girilen String ile bitip bitmedigini kontrol eder.
True veya False doner
3) startsWith( ) verilen bir String’in, parametre olarak girilen String ile baslayip baslamadigini
kontrol eder. True veya False doner
4) isEmpty( ) parametre Kabul etmez [Link]( ) seklinde kullanilir, ve verilen String’in bos olup
olmadigini kontrol eder. True veya False doner . “” icin true doner, str=null; bunun icin hata verir.
5) null bir deger degildir, ama atandigi objenin hic bir degerinin olmadigini isaret eder.
6) replace( parametre1, parametre2) verilen String’deki parametre1’lerin yerine parametre2 yazar.
Char icin de kullanilabilir. Parametre1 ve parametre2’nin uzunlukluklari esit olmak zorunda
degildir. Her hangi bir karakter veya String’I ortadan kaldirmak istersek parametre1 olarak yok
etmek istedigimiz String’I , parametre2 yerine ise “” yazariz.
7) replaceAll(parametre1, parametre2) replace ile ayni isi yapar ama char Kabul etmez, gelismis
ozellik olarak regular Expressions regexp kullanilabilir
8) replaceFirst(parametre1, parametre2 ) sarta uyan ilk parametre1 yerine parametre2 yazar
String Manipulation / Methods
16- substring()
Index kullanarak verilen String’in istenen parcasini almamizi saglar.
- Parametre olarak 1 sayi girilirse, girilen index’den String’in sonuna kadar bolumu
- Parametre olarak 2 sayi girilirse, girilen [Link] indexden (inclusive) baslayip,
[Link] kadar (exclusive) karakteri bize dondurur
onsepti kullanir
Hata verir
String Manipulation / Methods
substring()
OOP ko
a
Hata verir
17- trim()
Istedigimiz String’in basinda veya sonunda var olan bosluk / “space” leri temizler
28
|Java ogrenmek cok guzel.|
24
String Manipulation / Methods
Soru 1) String methodlarini kullanarak “ Java ogrenmek123 Cok guzel@ ” String’ini “Java
ogrenmek cok guzel.” sekline getirin.
Soru 2) String seklinde verlen asagidaki fiyatlarin toplamini bulunuz
String str1 = “$13.99”
String str2 = “$10.55”
ipucu : [Link]() methodunu kullanabilirsiniz.
Soru 3) Kullanicidan isim isteyin. Eger
- isim “a” harfi iceriyorsa “Girdiginiz isim a harfi iceriyor”
- isim “Z” harfi iceriyorsa “Girdiginiz isim Z harfi iceriyor”
- ikisi de yoksa “Girdiginiz isim a veya Z harfi icermiyor” yazdirin
Soru 4) Kullanicidan isim ve soyismini isteyin ve hangisinin daha uzun oldugunu yazdirin.
Soru 5) Kullanicidan 4 harfli bir kelime isteyin ve girilen kelimeyi tersten yazdirin.
String Manipulation / Methods
Soru 6) Kullanicidan bir sifre girmesini isteyin. Asagidaki sartlari sagliyorsa “Sifre
basari ile tanimlandi”, sartlari saglamazsa “Islem basarisiz,Lutfen yeni bir
sifre girin” yazdirin
- Ilk harf buyuk harf olmali
- Son harf kucuk harf olmali
- Sifre bosluk icermemeli
- Sifre uzunlugu en az 8 karakter olmali
Soru 7) Kullanicidan ismini, soyismini ve kredi karti bilgisini isteyin ve asagidaki gibi
yazdirin
isim-soyisim : M***** B*******
kart no : **** **** **** 1234
10 TEMMUZ 2021
DERS 13
Method Creation
Method Call
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
Method Creation
For Loop
Mehmet BULUTLUOZ
[Link] [Link].
Method Creation
Method Olusturma
*** Eger bir Class’da ayni isme sahip birden fazla method olusturmamiz gerekirse
parametreleri farkli yapmamiz gereklidir (Overloading)
Method Creation
Method Olusturma
6 Body (Method Body) : { } arasinda kalan kodlarimizi yazdigimiz bolumdur
*** Method nerede olusturulmalidir ?
Method Class body’si icinde Main method disinda olusturulmalidir
Method Call
Method Cagirma
Method olusturmak method’u calistirmak icin yeterli degildir.
Ihtiyac duyuldugunda daha onceden olusturulmus methodu calistirmak icin Method ismi
(parametreler ile birlikte) yazilmalidir.
Bu isleme method cagirma denir
2) Overloading nasil yapilir ? Java ayni isim ve ayni parametrelerle birden fazla method
olusturulmasina izin vermez. Ayni isimle birden fazla method olusturmak isterseniz
method signature (metot imzasi)’nin degistirilmesi gerekir
3) method signature (metot imzasi) nasil degistirilir?
Method signature’i degistirmek icin 3 yontem kullanilabilir
- parametrelerin data tipleri degistirilebilir
- parametrelerin sayisi degistirilebilir
- parametre sayisi ayni olmak zorunda ise farkli data tipindeki parametrelerin sirasi
degistirilir
*** method’un return type’ini degistirmek, access modifier’ini degistirmek veya static
kelimesi eklemek method signature’i degistirmez
13 TEMMUZ 2021
DERS 15
For Loop
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
Soru : Bir oyun programinda oyuncuya level ve puanina gore bonus hesaplayan bir method yaziniz.
Bonus eklendikten sonra oyuncu yeni puaniyla oyuna devam edecek. (Oyun icinde birden fazla defa
bonus ekleme fonksiyonu kullanilabilir)
Bonus kurali :
- ilk 10 level icin mevcut puan 1000’den az ise 50, 1000 veya cok ise 100 bonus
- 11-50 level arasi mevcut puanin yuzde 10’u kadar bonus
- [Link] itibaren puan 10.000’den az ise 1000 bonus, 10.000 den coksa mevcut puanin %15
kadar bonus
For Loop
Belirli bir koşul sağlandığı sürece tekrarlanması gereken işler için kullanılan kod
bloklarina LOOP(Dongu) denir. Tekrar sayısı belirli olan durumlarda for loop kullanılması
tercih edilir.
For Loop
➢ Eger Ending Condition hep true verirse loop sonsuz donguye girer
➢ Eger Loop‘ta Ending Condition hic true olmazsa loop body hic devreye girmez
➢ loop'da artis degeri pozitif oldugu gibi negatif de olabilir (i-- vb)
Soru 7 ) Interview Question Kullanicidan bir String isteyin ve Stringi tersten yazdirin.
Soru 8 ) Interview Question Kullanicidan bir String isteyin ve Stringi tersine ceviren
bir program yazin.
Soru 9 ) Interview Question Kullanicidan bir String isteyin. Kullanicinin girdigi String’in
palindrome olup olmadigini kontrol eden bir program yazin.
Soru 10 ) Kullanicidan iki sayi isteyin. Girilen sayilar ve aralarindaki tum tamsayilari
toplayip, sonucu yazdiran bir program yaziniz
Soru 11 ) Interview Question Kullanicidan 10’dan kucuk bir tamsayi isteyin ve girilen
sayinin faktoryel’ini bulun. (5!=5*4*3*2*1)
14 TEMMUZ 2021
DERS 15
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1- For loop : baslangic ve bitisi belli olan tekrarli kod calismalarini yapmak icin loop kullaniriz.
2- Loop yazarken karar vermemiz gereken 3 sey
i) Baslangic degeri
ii) bitirmek icin kosulumuz nedir
iii) her adimda degiskeni nasil degistirecegiz
3- Eger baslangic degerini artis veya azalis yaparak degistirdigimizde bitis kosuluna yaklasmiyorsak
sonsuz loop olusur,
4- Eger baslangic degeri bitis kosulunu saglamazsa, for loop calisir ama loop body’si hic devreye
girmez, dolayisiyla loop anlamsiz olur…
5- loop daki degisken artabildigi gibi, soruya gore azaladabilir
Nested For Loop
Bazen tek bir loop ile istedigimiz sonuclara ulasamayiz.
Ozellikle iki boyutlu sekiller cizdirmek veya carpim tablosu gibi sayi ikilileri olusturmak
icin nested loop kullanmamiz gerekir.
* 1 2 3 4
** 2 4 6 8
*** 3 6 9 12
****
15 TEMMUZ 2021
DERS 16
Mehmet BULUTLUOZ
[Link] [Link].
Nested For Loop
Soru 12 ) Kullanicidan pozitif bir rakam girmesini isteyin ve girilen rakama gore
asagidaki sekli cizdirin
*
**
***
****
Soru 13 ) Kullanicidan pozitif bir rakam girmesini isteyin ve girilen rakama gore carpim
tablosu olusturun. Ornek,kullanici 3 girerse,
123
246
369
While Loop
While Loop
Soru 1 ) While loop kullanarak 3 den 13 e kadar tum tek tamsayilari ekrana yazdiriniz.
Soru 2 ) For loop ve while Loop kullanarak 3 basamakli sayilardan 15, 20 ve 90’na tam
bolunebilen sayilari yazdirin.
Soru 3 ) Kullanicidan baslangic ve bitis degerlerini alin. Baslangic degeri ve bitis degeri
dahil aradalarindaki tum cift tamsayilari while loop kullanarak ekrana yazdiriniz.
Soru 4) Kullanicidan baslangic ve bitis haflerini alin ve baslangic harfinden baslayip bitis
harfinde biten tum harfleri buyuk harf olarak ekrana yazdirin. Kullanicinin hata
yapmadigini farz edin.
While Loop
Soru 5) Kullanicidan bir rakam alin ve bu rakam icin carpim tablosunu ekrana
yazdirin. Kullanicinin hata yapmadigini farz edin.
3x1=3 3x2=6 3x3=9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27 3x10=30
Soru 6 ) Kullanicidan bir sayi alin ve bu sayiyi tam bolen sayilari ve toplam kac tane
olduklarini ekranda yazdirin
DoWhile Loop
Scope
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1- Nested For Loop : iki boyutlu sekiller veya iki degiskenli denklemler kullanmamiz gerektiginde
nested for loop’lara ihtiyacimiz olur
2- Outer loop’un her bir dongusu icin inner loop bastan sona calisir. Inner bittikten sonra bir alt
satira gecip orada islem varsa devam eder..
3- While loop , sart olarak yazdigimiz boolean ifade true oldugu muddetce while loop body’si tekrar
tekrar calisir. Sart false oldugunda loop sona erer ve sonraki satirdan kod calismaya devam eder
4- Daha once for loop da kullandigimiz baslangic degeri ve artis sekli while loop’un syntax’inde yer
almaz ama loop’un calismasi icin gereklidir. Bunun icin biz her while loop icin loop baslamadan
once baslangic degeri olusturacak variable’I olusturmali ve loop’un icinde de degisim seklini ve
miktarini yazmaliyiz.
5- For loop Vs While Loop :
adim sayisi veya baslangic ve bitis degerleri belli ise for loop daha Pratik olabilir.
Ancak adim sayisi ongorulemiyorsa, loop’un bitisi bir adima degil de sarta bagliysa bu durumda
while loop daha avantajli olmaktadir.
Ornegin kullanicidan degerler aliyorsak ve kullaniciya istedigi kadar deger grime hakki veriyorsak
for loop kullanmamiz mumkun degildir.
Do While Loop
Do While Loop Vs While Loop
Fark : While Loop, dongunun başlangıcında kosulu kontrol eder ve kosul saglanirsa
body icindeki kodlari calistirir.
Do-while loop’ta ise , kosul body icerisindeki kodlar 1 kere calistiktan sonra
kontrol edilir.
Sonuc : Bir while loop’daki kosul yanlıssa, loop hic calismaz ‘do-wile' loop’ta ise , kosul
yanlissa kodlar 1 kere calisir
Do While Loop
Soru 1 ) 9 den 190 e kadar 7 nin kati olan tum tamsayilari ekrana yazdiriniz.
Soru 2 ) ’m’ harfinden baslayarak ‘c’ harfine kadar tum harfleri yazdirin.
Soru 3) Kullanicidan toplamak uzere pozitif sayilar isteyin, islemi bitirmek icin 0’a basmasini
soyleyin.
Kullanici 0’a bastiginda toplam kac pozitif sayi girdigini ve girdigi pozitif sayilarin
toplaminin kac oldugunu yazdirin.
Soru 4) Kullanicidan toplamak uzere pozitif sayilar isteyin, islemi bitirmek icin 0’a basmasini
soyleyin.
Kullanici yanlislikla negative sayi girerse o sayiyi dikkate almayin ve “Negatif sayi
giremezsiniz” yazdirip basa donun
Kullanici 0’a bastiginda toplam kac pozitif sayi girdigini, yanlislikla kac negative sayi
girdigini ve girdigi pozitif sayilarin toplaminin kac oldugunu yazdirin.
Do While Loop
Soru 5 ) Kullanicidan bir sifre girmesini isteyin. Girilen sifreyi asagidaki sartlara gore kontrol
edin ve sifredeki hatalari yazdirin.
Kullanici gecerli bir sifre girinceye kadar bu islemi tekrar edin ve gecerli sifre
girdiginde “Sifreniz Kabul edilmistir” yazdirin.
- Sifre kucuk harf icermelidir
- Sifre buyuk harf icermelidir
- Sifre ozel karakter icermelidir
- Sifre en az 8 karakter olmalidir.
Soru 6 ) Kullanicidan toplamak icin sayi isteyin ve toplam 500’e ulasincaya kadar devam
istemeyi ettirin. Toplam 500’e ulastiginda veya gectiginde toplami ve kac sayi
girildigini yazdirin
Scope
Instance,Class ve Local Variables
Object Nasil Kullanilir ?
Ogretmen
Ogrenci
Dersler
Personel Notlar
Scope
Instance,Class ve Local Variables
Scope (Kapsam)
➢ Bir Class icerisinde olusturulan variable’lar icin Scope, o variable’a nereden, nasil
ulasilabilecegini ve nerede gecerli oldugunu ifade eder.
4) Loop Variables
Scope
Instance,Class ve Local Variables
Static olmamalidir
Default Value
Eger instance bir variable olusturur ama deger atamazsaniz, Java otomatik olarak
default degerleri assign eder. (String icin null, sayisal data turleri 0, boolean false)
Scope
Instance,Class ve Local Variables
Ornek :
Bir okul uygulamasi yaptigimizi dusundugumuzde, ogretmenIsmi, ogrenciIsmi, matematiNotu
gibi degiskenler bir kisi ile iliskilendirilmedikce anlamli olmaz
Scope
Instance,Class ve Local Variables
Static olmalidir
Ornek : Bir okul uygulamasi yaptigimizi dusunun okulIsmi, okulId, acikMi gibi degiskenler
bir kisiyi degil okulla ilgili herkesi ilgilendirir ve bir kisi okul ismini veya okul telefon
numarasini degistirirse okulla ilgili herkes icin okul ismi degisir.
Scope
Instance Vs Class Variables
Static variable’lar herkes icin ortaktir (okul ismi gibi) , instance variable’lar ise objeye
baglidir (matematikNotu, ogrenciIsmi gibi)
Static variable yetkisi olan herkes tarafindan degistirilebilir ve bu degisim her obje icin
gecerlidir. Instance variable da yetkisi olan herkes tarafindan degistirilebilir ancak
yapilan degisiklik sadece o obje ile ilgilidir, geneli kapsamaz.
Scope
Instance,Class ve Local Variables
Local Variable
➢ Herhangi bir method icerisinde
olusturulan variable’lardir (main
method dahil).
➢ Sadece o method icerisinde
gecerlidir
➢ Baska methodlarda da kullanilacak
variable’lari, local olusturmak yerine
class level’da olusturmak gereklidir.
➢ Class level’da olusturulacak variable,
main method’da kullanilacaksa static
olarak olusturulmalidir. Bu durumda
bu variable kullanacak, diger
method’lar da static olmalidir.
Scope
Instance,Class ve Local Variables
Local Variable
Loop Variables
Arrays
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1- Scope : Olusturdugumuz variable’larin gecerli oldugu bolgedir. Bu konuda ogrenmemiz gereken sey
hangi variable’a nereden ve nasil ulasabilecegimizdir.
2- Java’da bilmemiz gereken 4 scope vardir. Bunlardan ilk ikisi class level’da olusturulan variable’lar
icin gecerlidir.
i) instance variables (Object variables): Objelere bagli olarak degisir ( ogretmen ismi veya not gibi)
- class level’da olusturulmalidir.
- static olmamasi gerekir
- static olmadigi icin static alanlardan direk kullanilamaz (object olusturularak kullanilabilir)
- olusturmak yeterlidir, deger atamak mecburi degildir. (deger atanmazsa default degeri alir)
ii) static variables (Class variable) : Tum objeler icin ortaktir. (okul ismi gibi) Eger static variable
degistirilirse tum objeler etkilenir.
- class level’da olusturulmalidir. (local’de static variable olusturulamaz)
- static kelimesi kullanilarak tanimlanmalidir
- Class icerisinde static olan veya olmayan heryer’den erisilebilir.
- olusturmak yeterlidir, deger atamak mecburi degildir. (deger atanmazsa default degeri alir)
Onceki Dersten Aklimizda Kalanlar
1- Scope : Olusturdugumuz variable’larin gecerli oldugu bolgedir. Bu konuda ogrenmemiz gereken sey
hangi variable’a nereden ve nasil ulasabilecegimizdir.
2- Java’da bilmemiz gereken 4 scope vardir. Bunlardan ilk ikisi class level’da olusturulan variable’lar
icin gecerlidir.
i) instance variables (Object variables): Objelere bagli olarak degisir ( ogretmen ismi veya not gibi)
- class level’da olusturulmalidir.
- static olmamasi gerekir
- static olmadigi icin static alanlardan direk kullanilamaz (object olusturularak kullanilabilir)
- olusturmak yeterlidir, deger atamak mecburi degildir. (deger atanmazsa default degeri alir)
ii) static variables (Class variable) : Tum objeler icin ortaktir. (okul ismi gibi) Eger static variable
degistirilirse tum objeler etkilenir.
- class level’da olusturulmalidir. (local’de static variable olusturulamaz)
- static kelimesi kullanilarak tanimlanmalidir
- Class icerisinde static olan veya olmayan heryer’den erisilebilir.
- olusturmak yeterlidir, deger atamak mecburi degildir. (deger atanmazsa default degeri alir)
Onceki Dersten Aklimizda Kalanlar
3- diger 2 scope class level’da degildir
iii) local variable : herhangi bir method icerisinde olusturulan variable’larder ve sadece
olusturulduklari method icerisnde direk kullanilabilirler.
- olusturmak icin declaration yeterlidir, ancak kullanmak icin declaration yetmez, mutlaka
oncelikle deger atamasi (assignment) yapmak gerekir.
- static olarak tanimlanamaz
- assignment yapmadan kullanmaya kalkarsak java CTE verir
iv) loop variable (bazi kaynaklarda buna da local variable denir)
- sadece olusturulduklari loop icerisinde gecerlidirler.
- loop’un disinda erisilemez ve kullanilamazlar.
Scope
Instance,Class ve Local Variables
public class MyClass{
int num1;
String name = "Ali";
public static void main(String args){
add();
product (5);
}
public static add(){ 1) Hangileri instance variable’dir ?
num1 ++;
2) Hangileri local variable’dir?
int num2 = 6;
char letter; 3) num1 icin default value nedir ?
[Link]("Do addition "); 4) Java hangi satirlarin altini kirmizi cizer?
}
public product(int num3){ 5) Kac satir compile time error verir?
name = "Veli";
num2++;
[Link](num3 * num3);
}}
Arrays
Arrays birden fazla variable depolamak icin kullanilabilen object (non-primitive data)’lerdir.
3) Bir Array olusturmadan once o Array’in icine kac variable koyacagimiza karar
vermeliyiz.
4) Bir Array icine koyabilecegimiz variable sayisina o Array’in “length” i denir. O Array
icine length’den fazla variable koyamayiz.
value methods
. Array
Stack Heap
Arrays
6) Bir Array nasil declare edilir?
Array declare etmek icin iki yol vardir :
- int myArray[ ] ; // Bu daha cok kullanilir
- int [ ] myArray;
int myArray[ ] = new int[3]; Veya int myArray[ ] = {9, 10, 11};
myArray[0] = 9;
myArray[1] = 10;
myArray[2] = 11;
Soru 1: Elemanlari “Ali” , “Veli”, “Ayse” ve “Fatma” olan bir array olusturun ve bu
array’i yazdirin.
Arrays
9) Array’in elemanlarina nasil ulasilir ve nasil update edilir ?
NOT 1 : “n” array’in length’i olmak uzere myArray[n-1] son elemani gosterir
Soru 2: Soru 1’deki elemanlardan “Ali” yerine “Can”, “Ayse” yerine “Gul” atayin.
Arrays
Arrays
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1- Array (dizi) : birden cok datayi store etmek icin kullandigimiz objelerdendir. (non-primitive)
2- NP oldugu icin heap memory’de run time’da olusturulur
3- Array olusturmadan once maximum element sayisina (length) karar vermemiz ve koyacagimiz
elementlerin data turunu declare etmemiz gerekir. String arr [ ] = new String[5];
4- Array’I olusturuken icine koyacagimiz elementlerin data turunu dec;lare ettigimiz icin, o data turunden
baska turde data koyamayiz
5- Array’in kapasitesi sonradan degistirilemez.. Declare edilirken length yazilmazsa CTE verir
6- Array’ler sadece primitive data turundeki datalari veya non-primitive data turundeki datalarin
referanlarini store edebilirler
7- Array’I direk yazdirmak istersek Java array’I degil referansini yazdirir. Array’deki elementleri
yazdirmak icin for loop kullanabiliriz veya tum array’I yazdirmak icin Arrays class’indan toString
method’unu kullanabiliriz
8- Array’I olusturdugumuzda deger atamazsak Java default degerler assign eder
9- Arraydeki tum elementlere index ile ulasabilir veya update edebiliriz
10-
Arrays
Soru 1: Verilen 3 elemanli bir array’in tum elemanlarini bir soldaki konuma tasiyacak bir
program yazin. Ornek; array [1,2, 3] ise output [2, 3, 1] olacak.
Soru 2: Verilen bir array’in tum elemanlarini toplayan bir program yazalim.
Arrays
Output nedir ?
1
3
-3
-5
0
1
-3
-4
Arrays
false
false
true
Arrays
16) Bir String nasil array’e cevrilir ?
split( ) method’u String’e ait bir method’dur ve belirledigimiz ayirac’a gore String’i
parcalara ayirip bir Array’e cevirir.
[J, a, v, a, , o, g, r, e, n, m, e, k, ,, , I, T, , a, l, a, n, i, n, d,
a, , y, e, r, , e, d, i, n, m, e, k, , d, e, m, e, k, t, i, r, .]
Arrays
23 TEMMUZ 2021
DERS 21
Mehmet BULUTLUOZ
[Link] [Link].
Multi Dimensional Arrays
(Cok Katli Array’ler)
Eger bir Array ic ice Array’lerden olusuyorsa buna Multi Dimensional Array denir
Multi Dimensional Arrays
(Cok Katli Array’ler)
ArrayLists
Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1- Multi Dimensional Arrays : cok katli array, eger bir array’in icinde elemnt olarak yine array’ler
bulunuyorsa buna MDA denir.
2- distaki array outer, icrteki array’ler ise inner array olarak adlandirilir.
3- MDA kac katli ise declaration sirasinda o kadar [ ] yazmamiz gerekir
4- int arr[ ] [ ] = new int [3][2]; bu declaration’da ilk [3] outer array’in icinde kac tane inner array oldugunu
gosterir, ikinci [2] inner array’lerin uzunlugunu verir. Bu sekilde bir declaration ile MDA olusturulursa
inner array’ler farkli uzunlukta olamaz, hepsinin uzunlugunun 2 olmasi sarttir… [[0,0],[0,0],[0,0]]
5- Alternatif olarak tum array elemntlerini yazarak MDA olusturulabilir.
int arr [ ] [ ] = {{4,1}, {5,1,3,6},{2,7,8,9,12}} bu durumda inner array’lerin uzunluklari ayni olmak zorunda
degildir. arr[1] sadece 1 koseli parantez kullanirsak outer array’in 1 index’indeki inner array’ini ifade
eder. arr[2][1]➔ outer array’in 2 index’indeki inner array’in 1 index’indeki elementini verir = 7
6- MDA’de her bir elemente ulasmak veya kullanmak istiyorsak nested for loop kullanmalisiniz
7- MDA direk yazdirmak istersek [Link](arr) kullanilabilir. Eger deepToString kullanilmaz ,
yerine toString kullanilirsa inner array’lerin referanslarini yazdirir
Socrative Quiz
5) Isminizi yazin
Sure : 15 Dakika
ArrayList
ArrayList nedir?
ArrayList length’i esnek olan bir Array’dir
➢ Bir array’den bir eleman silmek istedigimizde yeni bir array olusturmamiz
gerekir, ArrayList de gerekmez.
ArrayList
ArrayList olusturma
Compile Time Error verir, esitligin sag tarafinda ArrayList kullanmak zorundayiz
1) add()
add() method ArrayList’e eleman eklemek icin kullanilir
Ornek :
List<String> hayvan = new ArrayList<>();
A) add() method’u index olmadan calisabilir
[Link]("kedi"); // [kedi]
[Link]("yilan"); // [kedi, yilan]
B) add() method’u index ile de calisabilir
2) size()
size() method ArrayList’de kac eleman oldugunu gosterir.
Ornek :
List<String> hayvan = new ArrayList<>();
[Link]([Link]()); // 0
[Link]("kedi"); // [kedi]
[Link]("yilan"); // [kedi, yilan]
[Link]([Link]()); // 2
3) isEmpty()
isEmpty() method’u ArrayList bos ise true, bos degilse false dondurur
ArrayList Method’lari
4) remove()
remove() method’u ArrayList’den belli bir elemani silmek icin kullanilir.
[Link]([Link](1)); //yilan
ArrayList Method’lari
B) remove(“eleman”) index’i degil elemani kullanirsak kullandigimiz
elemanin ilk kullanildigi yeri bulur ve siler.
5) set()
set() methodu ArrayList’de var olan bir elemani degistirmeye yarar
[Link](1, “tavsan”);
6) get(index)
get() methodu ArrayList’deki istenen indexdeki elemani dondurur.
[Link]([Link](0)); // kedi
[Link]([Link](1)); // yilan
ArrayList Method’lari
7) contains()
contains() methodu ArrayList’de bir elemanin var olup olmadigini
kontrol eder. Eleman varsa true, yoksa false return eder.
[Link]([Link](“kedi”)); // true
[Link]([Link](“tavsan”)); // false
ArrayList Method’lari
[Link](hayvan);
[Link](hayvan); // [kedi, tavsan, yilan]
ArrayList Method’lari
9) equals()
equals() methodu iki listteki ayni indexteki elemanlarin ayni olup olmadigini kontrol
eder. Ayni indexteki tum elemanlar ayni ise true return eder, farkli ise false return eder
[Link]("a"); // [a]
[Link]([Link](second)); // false
[Link]("a"); // [a]
[Link]([Link](second)); // true
[Link](“b"); // [a,b]
[Link](0,“b"); // [b,a]
[Link]([Link](second)); // false
ArrayList Method’lari
10) clear()
clear() methodu ArrayList’teki tum elemanlari siler.
Return type’i void’dir, hic bir sey donmez
[Link]([Link]()); // false
[Link]([Link]()); // 2
[Link]();
[Link]([Link]()); // true
[Link]([Link]()); // 0
Sorular ArrayList
1) Elemanlari A, C, E, ve F olan bir String ArrayList olusturup ekrana yazdiriniz.
2) indexsiz add() methodunu kullanarak, B’yi ekleyiniz.
index’li add() methodunu kullanarak, L’yi 1 numarali index’e ekleyiniz.
ArrayList’i ekrana yazdiriniz, list goyle olmali; A, L, C, E, F, B.
3) set() methodu kullanarak, E’yi D yapiniz.
ArrayList’i ekrana yazdiriniz, list goyle olmali; A, L, C, D, F, B.
4) remove() methodu kullanarak, F’yi siliniz.
ArrayList’i ekrana yazdiriniz, list goyle olmali; A, L, C, D, B.
5) sort() methodu kullanarak, elemanlari alfabetik siraya diziniz.
ArrayList’i ekrana yazdiriniz, list goyle olmali; A, B, C, D, L.
6) contains() methodu kullanarak, L’nin list’de var oldugunu ve M’nin list’de var
olmadigini dogrulayiniz.
7) size() methodu kullanarak, list’in kag eleman oldugunu ekrana yazdiriniz.
8) clear() methodu kullanarak, list’deki tum elemanlari siliniz.
9) isEmpty() methodu kullanarak, list’deki tum elemanlarin silindigini dogrulayiniz
Array’i ArrayList’e Cevirmek
String [ ] arr = {"tavsan", "serce" };
[Link]([Link]()); // 2
[Link](list); // [tavsan, serce]
NOT: Eger array’deki bir elemani degistirirseniz list’teki eleman da otomatik olarak
degisir. Listteki bir elemani degistirirseniz array de otomatik olarak degisir.
[Link]
String arr[ ] = [Link](new String[0]);
[Link]([Link]); // 2
System. out .println(Arrays. toString (arr)); // [tavsan,horoz]
[Link]
Object arr[ ] = [Link]( );
[Link]([Link]); // 2
System. out .println(Arrays. toString (arr)); // [tavsan,horoz]
For Each Loop
Enhanced (Gelistirilmis) For Loop
Faydalari:
Kodun daha okunabilir olmasini saglar. Hata yapma ihtimalini azaltir.
public static void main(String args[ ]){ public static void main(String args[ ]){
ArrayList<String> list=new
ArrayList<String>();
int arr[ ]={12,13,14,44}; [Link]("Ali");
[Link]("Veli");
for( int i: arr) { [Link]("Can");
[Link](i + “ ”); for( String s : list) {
} [Link](s + “ ”);
}
} }
For Each Loop
Soru 1:
Bir integer array olusturunuz ve bu array’deki tum sayilarin carpimini For-each loop
kullanarak bulunuz. Sonucu ekrana yazdiriniz.
Soru 2:
Bir integer list olusturunuz ve bu list’deki tum sayilarin karesinin toplamini For-each
loop kullanarak bulunuz. Sonucu ekrana yazdiriniz.
Soru 3:
iki String array olusturunuz ve bu array’lerdeki ortak elemanlari For-each loop
kullanarak bulunuz. Sonucu ekrana yazdiriniz.
Ortak eleman yoksa ekrana “Ortak eleman yok” yazdiriniz
Soru 4:
Bir String olusturunuz, bu String’deki character’leri for-each loop kullanarak
yazdiriniz. ipucu: split()
Constructor
(Java object’leri nasil olusturur ?)