nesne yönelimli programlama

advertisement
NESNE YÖNELİMLİ PROGRAMLAMA – HAFTA # 2
Yrd.Doç.Dr.Hacer Karacan
Java Temel Söz Dizimi
•
•
•
•
•
•
•
•
Sınıf Tanımlama
Kod Blokları
Metod Tanımlama
Değişken Tanımlama
İlkel Veri Tipleri ve Operatörler
Operatörlerin Öncelikleri
String (Dizgi) Sınıfı
Belgeleme ve Program Yazma Tarzı
Sınıf ve Nesne
• Her sınıfın sıfır veya daha fazla örnegi vardır.
• Sınıf statik, nesne dinamiktir.
• Nesneler program kosturuldugunda sınıf tanımından dinamik
olarak yaratılırlar (“construction”).
• Nesneler sorumluluklarını tamamladıklarında ortadan
kaldırılırlar (“destruction”).
• Nesnenin sınıfı sabittir ve nesne bir kez yaratıldıktan sonra
degistirilemez.
Her oluşturulan nesne için bellekte yer ayrılır ve bilgiler ayrılan bu alanda
tutulur. Nesneye ayrılan bellek alanına kolaylıkla ulaşabilmek için her bir
nesneye referans denilen benzersiz bir numara atanır.
Web Teknolojileri
Papatya
2004
Kitap
_____________________
____________________________
kitabınAdınıGöster()
kitapAdı
kitabınSayfaSayısı()
KİTAP A
yayınEvi
basımTarihi
kitabınAdınıGöster()
kitabınSayfaSayısı()
Java ile Temel Programlama
Seçkin
2005
_____________________
kitabınAdınıGöster()
kitabınSayfaSayısı()
KİTAP B
Sınıf Tanımlama
• Java‟da bir sınıf tanımında aşağıdaki ifadeler kullanılabilir:
▫
▫
▫
▫
▫
▫
Erişim Belirleyici
Class anahtar kelimesi
Sınıf Adı
Değişken Tanımları
Yapılandırıcılar
Metodlar
<erişim_belirleyici> class <SinifAdi> {
<degisken_tipi> d1;
<degisken_tipi> d2;
...
<donus_tipi> <metodAdi> ( // parametre listesi
<parametre_tipi> p1, <parametre_tipi> p2, …) {
…
}
<donus_tipi> <metodAdi> ( // parametre listesi
<parametre_tipi> p1, <parametre_tipi> p2, …) {
…
}
}
public class Kapı {
//Değişkenler
static int yükseklik;
int durumu;
String rengi;
float derinliği;
…
// Metodlar
int getDurum (int rentId) {
…
}
…
}
Kod Blokları
• Kod blokları yazılan kodların kapsamını belirtmek üzere
kullanılırlar. Kod blokları genellikle şu amaçlar için
kullanılır
▫ Sınıfın kapsamını belirtmek için
▫ Metodun kapsamını belirtmek için
▫ Döngü ve karar yapılarının kapsamını belirtmek için.
Metod Tanımlama
• Metodlar daima bir sınıf içerisinde tanımlanırlar. Bir metod tanımında aşağıdaki yapılar
kullanılır.
▫ Erişim Belirleyici: Metodu diğer nesnelerin kullanıp kullanamayacağını belirleyen
anahtar kelemedir.
▫ Dönüş Değerinin Türü: Metodun icrası sonucu metodtan bir değer bekleniyorsa bu
değerin tipinin belirtilmesi gerekir. Bu dönüş tipi ilkel değişken olabileceği gibi bir
nesne değişkeni de olabilir. Eğer metodun icrası sonucu bir değer beklenmiyorsa dönüş
tipi alanına void anahtar kelimesi yazılır.
▫ Metod Adı: Metodu çağırabilmek için diğer bir değişle kullanabilmek için metoda bir
isim verilmelidir.
▫ Parametreler: Metodlar işlevleri esnasında dışarıdan değerler alabilirler. Dışarıdan
alınan bu değerlere parametre denilmektedir. Parametre sayısı birden çok ise
parametreler virgüllerle ayrılarak yazılırlar. Metodlar parametre almaya da bilirler bu
durumda ise parantez içleri boş bırakılır.
Metod Tanımlama
<Erişim Belirleyici> <Dönüş Tipi> <metodAdi> ([parametreler])
{
<yapılacak işler>
}
public float kutleHesapla (int yariCap){
// metod değişkenleri
float ozKutle;
float PI_SAYISI=3,14;
float kutle;
// metod gövdesi
ozKutle = ozKutleyiVer();
kutle= ozKutle*4*PI_SAYISI*Math.pow(yariCap,3.0);
return kutle;
}
Java’da her komut satırı,
noktalı virgül ile sonlanır!
Metod Tanımlama
• Metodlar yalnızca sınıfların içerisinde tanımlanırlar bundan dolayı
da metodları kullanabilmek için o sınıftan türetilmiş nesnelere
ihtiyaç duyarız. Bir metodu şu şekilde çağırırız:
nesneAdı.metodAdı();
yazıcı.çıktıAl();
yazıcı.çıktıAl(rekli);
gibi
• Sınıf bloğunda yer alan metodları tanımlamak için sadece sınıf
isimleri kullanılmaz. Sınıfa ait metodları bir birinden ayırmak için
sınıf isminin yanında parametreleri de kullanılır.
▫ Bu sayede sınıf içerisinde aynı isimli birden fazla metod
bulunabilir. Ancak hem ismi aynı hem de aynı parametreleri
çağıran birden çok metod tanımlanamaz.
Ekrana yazı yazılması



Ekrana yazı yazdırmak için System.out.println() ve
System.out.print() metotları kullanılır.
System.out.println() ekrana yazdıktan sonra alt satıra
geçer, System.out.print() ise alt satıra geçmez.
Aşağıda örnek kodlar verilmiştir.
System.out.print(“JAVA ”);
System.out.print(“PROGRAMLAMA”);
Çıktı:
JAVA PROGRAMLAMA
System.out.println(“JAVA ”);
System.out.print(“PROGRAMLAMA”);
Çıktı:
JAVA
PROGRAMLAMA
Ekrana yazı yazılması
String yazi = “Java ile Programlama”;
System.out.print(yazi);
Çıktı:
Java ile Programlama
int a = 5; double b = 2.5; boolean c = true;
char d = „?‟;
System.out.println(a);
System.out.println(b);
Çıktı:
System.out.println(c);
5
System.out.println(d);
2.5
true
?
Ekrana yazı yazılması
Çıktı:
5
17
a = 5, a+b = 517
a+b = 22
517 5 17 26
a = 13, b =17, c =4
int a = 5, b = 17, c = 4;
System.out.println(a);
System.out.println(b);
System.out.print(“a = ” + a);
System.out.println(“, a+b =” + a + b);
System.out.println(“a+b =” + (a + b));
System.out.print(a + b + “ “);
System.out.print(a + “ “ + b + “ “);
//a,b,c nin tümü integer olduğundan toplanır.
System.out.print(a + b + c);
a = b - c;
System.out.println(“a = ” + a + “, b = “ + b +
c = ” +c);
“,
Ekrana yazı yazılması
System.out.println(5);
System.out.println();
System.out.print(28);
Çıktı:
5
>> Boş satır
28
Örnek
class Merhaba {
public static void main(String args[]) {
System.out.println(“Merhaba");
System.out.println(“Burasi bir alt satir." );
System.out.println(“println daima bir alt satıra gecer." );
System.out.println(“ Bu uzun bir metin. Bu nedenle“ +
“ programin icinde satirlara dagittik. “ +
“ Ancak, cift tirnaklar icinde duran ve aralarinda + olan “ +
“ metinler println icin tek parca sayilir.”);
System.out.println(“Buraya sayi da yazabiliriz: “
+ 12345 );
System.out.println(“Yine arada + kullandik." );
}
}
Ekran Çıktısı :
Merhaba
Burasi bir alt satir.
println daima bir alt satıra gecer.
Bu uzun bir metin. Bu nedenle programin icinde satirlara dagittik. Ancak,
cift tirnaklar icinde duran ve aralarinda + olan metinler println icin tek parca
sayilir.
Buraya sayi da yazabiliriz: 12345
Yine arada + kullandik.
Metotların Çağırılması




Sınıf içinde tanımlanan metotlar nesneler kullanılarak çağırılabilir.
İki tür metot vardır:
 değer döndüren metotlar
 değer döndürmeyen metotlar
Geri değer döndüren metotlarda dönecek verinin türü metot
tanımında verilir. Değer döndürülecek yerde de return komutu
kullanılır.
double numara;
numara = Math.random();
Geri değer döndürmeyen metotlarda ise metot tanımında void
kullanılır ve return komutu kullanılmaz.
System.out.println(“Ekrandaki mesaj”);
Metodlara Değer Gönderme



Metod dışarıdan (çağırıldığı yerden) girdi alabilir.
Metod adının yanında parantez içinde alacağı değişkenlerin adları
ve türleri bildirilir.
Değer döndürmeyen ve değer döndüren metodlar dışarıdan
parametre alabilir.
public döndürülen_değer_türü
metod_adi(param_türü1 param_adı1, param_türü2
param_adı2, ...)
{
- - }
Metodlara Değer Gönderme
• Bir metod hiç parametre almayabileceği gibi birden fazla paremetre de kabul edebilir.
• Metod tanımlanırken her parametrenin değişken türü yanında belirtilir.
public void kitapBilgileriniAl(String pKitapAdı, String pYayinEvi, Date pBasımTarihi ){
kitapAdı= pKitapAdı;
yayinEvi= String pYayinEvi;
basımTarihi= pBasımTarihi;
}
Metodlara Değer Gönderme
import java.util.Scanner;
public class VeriYolla
{
public int veriYazdir(String mesaj)
{
int say;
System.out.println("Gelen mesaj:"+mesaj);
say = mesaj.length();
return say;
}
}
Metodlara Değer Gönderme
class DeneVeriYolla
{
public static void main(String [] args)
{
VeriYolla veri = new VeriYolla();
String ileti;
int sembolSayisi;
Scanner klavye = new Scanner(System.in);
ileti = klavye.next();
sembolSayisi = veri.veriYazdir(ileti);
System.out.println("Sembol sayisi="+sembolSayisi);
}
}
Çıktı:
Java
>> Klavyeden girildi
Gelen mesaj:Java
Sembol sayisi=4
Metodlardan Değer Döndürme
• Metodlar çalıştırılmaları sonucu bir değer yada ifade geri döndürebilirler. Metod
tanımlanırken metodun bize bir değer dönmesini istiyorsak bu dönecek değerin
hangi türde olduğunu dönüş tipinde belirtmemiz gerekmektedir. Örneğin kitap
sınıfına ait bir nesnenin satış bedelini hesaplayan bir metodu şu şekilde yazarız.
public float satisFiyatiHesapla(float maliyet){
float fiyat=0.0;
fiyat=maliyet+maliyet*0.18;
// maliyete %18 kdv eklenir
return fiyat;
}
• Metodlar ilkel değişkenler yanında nesne referansları da döndürebilir.
public String kitabinIsmi(){
return kitapAdi;
}
• Return  değer döndürür & metodu sonlandırır
this Parametresi

Bir metodun içinden, ait olduğu sınıftaki başka bir metot veya
değişkene ulaşılmak isteniyorsa this parametresi kullanılabilir.
import java.util.Scanner;
public class VeriYolla2
{
public String mesaj;
public int veriYazdir()
{
int say;
System.out.println("Gelen mesaj:" + this.mesaj);
say = mesaj.length();
return say;
}
}
this Parametresi
class DeneVeriYolla
{
public static void main(String [] args)
{
VeriYolla2 veri = new VeriYolla2();
String ileti;
int sembolSayisi;
Scanner klavye = new Scanner(System.in);
ileti = klavye.next();
veri.mesaj = ileti;
sembolSayisi = veri.veriYazdir();
System.out.println("Sembol sayisi=" + sembolSayisi);
}
Çıktı:
}
Java
>> Klavyeden girildi
Gelen mesaj:Java
Sembol sayisi=4
Anahtar Sözcükler
▫ Özel amaçlı anahtar sözcükler özel tanıtıcılardır ve programın
tanımlanmasını kontrol etmek için Java dili tarafından
kullanılmaktadır.
▫ Yerleşik türleri, değiştiricileri ve akış kontrolü için mekanizmayı
tanıtmak için kullanır.
▫ Toplam 59 tane özel amaç için ayrılmış sözcüktür.
▫ İşletmen ve ayırıcıların sözdiziminin birleştirilmesi ile oluşturulmuş
olan bu anahtar sözcükler, Java dilinin tanımlanmasını biçimlendirir.
▫ Bu anahtar sözcükler yalnızca istenen amaca hizmet ederler ve bir
değişken, bir sınıf ya da bir metod adı için tanıtıcı olarak
kullanılamazlar.
Anahtar Sözcükler
abstract
boolean
break
byte
byvalue
case
cast
catch
char
class
const
continue
default
do
doule
else
extenhds
false
final
finally
float
for
future
generic
goto
if
implements
import
inner
instanceof
int
interface
long
native
new
null
operator
outer
package
private
protected
public
rest
return
short
static
super
switch
synchronized
this
throw
throws
transient
true
try
var
void
volatile
while
Değişken Nedir?
• Bir Java programında temel bellek birimi değişkenlerdir. Bir tanıtıcı, tür
ve kapsam birleşerek bir değişkeni tanımlayabilir.
• Bir değişken aşağıdaki şekilde ifade edilebilir:
• <tür tanıtıcı> <degiskenAdi1>, <degiskenAdi2>,... ;
int x, y, z;
x, y ve z olan üç tamsayıyı bildirir.
int a = 3, b, c = 5;
a ve c’nin başlangıç değerleriyle üç tamsayıyı daha bildiriyor.
byte z=2z;
z’i çalıştırır.
double pi= 3.14159;
Pi sayısını (tam olmasa da yaklaşık olarak) bildirir.
char x='x';
x değişkeni 'x' değerine sahip.
Değişken Tipleri
▫ Özel Değişkenler
 6 tane sayısal değişken
 1 tane karakter değişkeni
 1 tane Boolean değişkeni
Varsayılan (default) değerler
▫ Kullanıcı Tanımlı Değişkenler
 Sınıflar
 Arayüzler
 Diziler
Değişken Tanımlama
• Java‟da değişken tanımlama, C, pascal gibi daha eski nesil
programlama dillerine nazaran daha esnek tutulmuştur. Bu esneklik
dahilinde değişkenler kullanılırken şunlara dikkat edilmelidir:
▫ Değişkenler sınıf içerisinde metodların dışarısında kalan alanların
herhangi bir yerinde tanımlanabilir,
▫ Değişkenler metodlar içerisinde kullanmadan önce tanımlanmalıdır.
▫ Genelde değişken blokları sınıf bloklarının başında tanımlanır.
▫ Değişkenlerin geçerliliği tanımlandıkları blokla sınırlıdır.
▫ Metod değişkenlerini kullanmadan önce ilk değerleri atanmalıdır.
▫ Sınıf değişkenlerinin ilk değerleri otomatik olarak atanır.
Değişken Tanımlama
• Java‟da değişken tanımlamak için önce tanımlanacak değişkenin
tipi yazılır. Ardından tanımlanacak değişkene verilecek ad yazılır.
“=” işareti eklendikten sonra, eşitliğin sağ tarafı isteğe göre iki
şekilde yazılabilir:
▫ new + değişken tipini yazıp parantez içinde çift tırnaklar kullanarak
değişkenin değerini yazarak,
String degiskenAdi = new String(”deger”);
▫ Sadece çift tırnaklar içinde değişkenin başlangıç değerini yazarak.
String degiskenAdi = “deger”;
• Başlangıç değeri vermediğimiz durumda
varsayılan (default) değeri devreye girecektir.
değişken
tiplerinin
Değişken Tanımlama
• Değişken isimleri harfleri, rakamları, '_' ya da '$' karakterlerini
içeren fakat rakamlar ile başlamayan şekilde tanımlanır.
• Anahtar kelimeler değişken olarak kullanılamaz.
Doğru
Yanlış
a
item_Cost
itemCost
_itemCost
item$Cost
itemCost2
item#Cost
item-Cost
item*Cost
abstract
2itemCost
Global / Yerel Değişkenler
• Değişkenler global ve yerel olarak iki sınıfa ayrılırlar:
▫ Global olarak adlandırılan değişkenlere programın her yerinden
ulaşılabilir.
▫ Yerel değişkenlere ise sadece bulundukları program bloğundan
ulaşılabilir.
class Kiralama {
public int sayi;
// global değişken
public void Ekle() {
float fiyat = 3.50F; // yerel değişken
int gun = 3;
// yerel değişken
}
}
Sayısal İfadeler
• Sayısal ifadenin sonucunu saklamak isterseniz, sayısal türde bir
değişken hazırlanması gerekir.
• İki tane sayısal tür vardır:
▫ tamsayılar olarak bildiğimiz tam değerli sayılar
▫ virgüllü sayılar dediğimiz kesirli kısımları saklanan sayılar
• Toplam 6 sayısal ifade vardır:
▫ Tam Değerli Sayılar için;




long
int
short
byte
▫ Kesirli Sayılar için;
 double
 float
Adı
long
Genişliği
64
int
32
short
byte
16
8
Aralığı
-9,223,372,036,854,775,808'den
9,223,372,036,854,775,807'e
-2,147,483,648'den
2,147,483.647'e
-32,768'den 32.767'e
-128'den 127'e
Adı
double
float
Genişliği
64
32
Aralığı
1.7e-308’den 1.7e+308’e
3.4e-038’den 3.4e+038’e
Sayısal Olmayan İfadeler
• Sayısal olmayan türler boolean ifadeler, karakterler ve string
ifadelerden oluşur.
Adı
Değerler
Boolean
True False
Char
„a‟
String
“Merhaba”
Operatörler
• Java operatörleri özel karakterlerdir.
• Bu karakterler, operatör üzerinde yapmak istediğiniz bir işlemi
derleyiciye yöneltir.
• İşlem komutları operatörler tarafından belirlenir.
• Java‟ da 4 çeşit operatör bulunmaktadır:
▫
▫
▫
▫
Atama Operatörleri
Aritmetiksel Operatörler
İlişkisel Operatörler
Mantıksal Operatörler
Aritmetiksel Operatörler
Operatör
Sonuç
+
toplama
-
Çıkarma
*
çarpma
/
bölme
%
mod
Örnek
class TemelMatematik {
public static void main(String args[]) {
int x=2+2;
int y = x * 3;
int z=y/2;
int k =-z;
System.out.println("x ="+ x);
System.out.println("y = " + y);
System.out.println("z = " + z);
System.out.println("k = " + k);
}
}
Ekran Çıktısı :
x=4
y = 12
z=6
k = -6
class Modül {
public static void main(String args[ ]) {
int x = 42;
double y = 42.3;
System.out.println("x mod 10 = " + x % 10);
System.out.println("y mod 10 = " + y % 10);
}
}
Ekran Çıktısı:
x mod 10 = 2
y mod 10 = 2.3
İlişkisel Operatörler
Operatör
Sonucu
==
Eşittir
!=
Eşit değil
>
-den büyük
<
-den küçük
>=
-den büyük ya da eşit.
<=
-den küçük ya da eşit
Mantıksal Operatörler
▫ Tüm ikili mantıksal operatörler iki boolean değeri birleştirir ve
sonuç yine bir boolean değer olur.
Operatör
Sonucu
&
Bit Seviyesinde AND
|
Bit Seviyesinde OR
^
Bit Seviyesinde XOR
||
Mantıksal OR
&&
Mantıksal AND
!
Mantıksal NOT
Örnek
class Mantık{
public static void main (String args [ ]) {
boolean a = true;
boolean b = false;
boolean c = a||b;
boolean d = a && b;
boolean e = a ^ b;
boolean f = (!a && b) | (a && !b);
boolean g = !a;
System out.println(" a ="+a);
System out.println(" b ="+b);
System out.println(" a||b ="+c);
System out.println(" a && b ="+d);
System out.println(" a ^ b ="+ e);
System out.println(" !a&&b||a&&!b ="+f);
System out.println(" !a ="+g);
}
}
Ekran Çıktısı:
a = true
b = false
a || b = true
a && b = false
a ^ b = true
!a&&b||a&&!b= true
!a = false
Atama Operatörleri
Operatör
Kullanılış Şekli
Eşittir
+=
değişken1 += değişken2
değişken1 = değişken1 + değişken2
-=
değişken1-= değişken2
değişken1 = değişken1 – değişken2
*=
değişken1*= değişken2
değişken1 = değişken1 * değişken2
/=
değişken1/= değişken2
değişken1 = değişken1 / değişken2
%=
değişken1%= değişken2
değişken1 = değişken1 % değişken2
&=
değişken1&= değişken2
değişken1 = değişken1 & değişken2
|=
değişken1|= değişken2
değişken1 = değişken1 | değişken2
^=
değişken1^= değişken2
değişken1 = değişken1 ^ değişken2
<<=
değişken1<<= değişken2
değişken1 = değişken1 << değişken2
>>=
değişken1>>= değişken2
değişken1 = değişken1 >> değişken2
değişken1>>>= değişken2
değişken1 = değişken1 >>> değişken2
>>>=
Çoğaltma ve azaltma işleçleri
public class ArtirmaIleAzaltma
{
public static void main (String [] args)
{
int sayi = 5;
System.out.println(sayi);
sayi++;
System.out.println(sayi);
sayi--;
System.out.println(sayi);
}
Çıktı:
}
5
6
5
Çoğaltma ve azaltma işleçleri

++ ve -- operatörleri değişkenlerin önüne de yazılabilir.
public class ArtirmaIslemOnceligi
{
public static void main (String [] args)
{
int x = 5;
int sayi = x;
x++;
System.out.println(“sayi = “ + sayi);
System.out.println(“x = “ + x);
Çıktı:
System.out.println(sayi++);
sayı = 5
System.out.println(++sayi);
x = 6
5
}
7
}
Çoğaltma ve azaltma işleçleri


++ ve -- operatörleri bir değişkene aynı anda birden fazla
uygulanamaz.
Aşağıdaki yazımlar yanlıştır:
++sayi++;
++++sayi;
sayi++--;
(sayi++)++;
public class Main {
public static void main(String[] args) {
int a=1, b=-2, c=0, d=3, e=50;
//Mod Operatörü
System.out.println("30 un mod 7 ye göre degeri " + 30%7); //2
//Aritmetik Atama Operatörü
System.out.println("b+=5 nin degeri " + (b+=5) ); //3
System.out.println("c*=5 nin degeri " + (c*=5) ); //0
//Arttırma Azaltma Operatörleri
System.out.println("a++ nin degeri " + a++); //1
System.out.println("a nin degeri " + a); //2
System.out.println("++a nin degeri " + ++a); //3
System.out.println("a nin degeri " + a); //3
//Iliskisel Operatorler ve Kısa Devre Iliskisel Operatörler
System.out.println("a b den büyükse veya d sıfır degilse " + ((a>b) | d!=0)); //true
//Kısa devre iliskisel operatorler
System.out.println("a b ye esit ve c d ye esit degil mi " + ((a==b) && (c!=d))); //false
//? Operatoru
int Sonuc=((a!=b) && !(c>e)) ?10:20;
System.out.println("a b ye esit degilse ve c e den büyüksenin degili dogruysa sonuc 10 degilse 20 " +
Sonuc); //10
}
}
Ekran Çıktısı
(a=1, b=-2, c=0, d=3, e=50)
30 un mod 7 ye göre degeri 2
b+=5 nin degeri 3
c*=5 nin degeri 0
a++ nin degeri 1
a nin degeri 2
++a nin degeri 3
a nin degeri 3
a b den büyükse veya d sıfır degilse true
a b ye esit ve c d ye esit degil mi false
a b ye esit degilse ve c e den büyüksenin degili dogruysa sonuc 10 degilse 20 10
,,
Operatörlerin Öncelikleri
Operatörler
Tip
[] ()
Parantez
++ - ! ~
Bir işlem
*/%
Çarpan
+-
Toplam
< > <= >=
Karşılaştırma
== !=
Eşitlik
?:
Durumsal
= += -= /= %=
Atama
Operatörlerin Öncelikleri

Matematik işlemlerinin Java’da gösterimi.
Matematik işlemi
Java’da gösterimi
E = mc2
E = m * c * c;
(3a+b) / 2(y-3)
(3 * a + b) / (2 * (y - 3))
1+ (1 / (1 + 1 /(1 + 1 / 2)))
1 + (1 / (1 + (1 / 1 + ( 1/ 2))))
String (Dizgi) Sınıfı



String bir karakter dizgisidir.
String Java’nın temel veri türlerinden değildir ve sınıf
olarak tasarlanmıştır.
Aşağıda örnekler verilmiştir.
String ileti = “Gazi Üniversitesi”;
System.out.print(ileti);

veya
System.out.print(“Gazi Üniversitesi”);
Çıktı:
GaziÜniversitesi
Dizgilerin eklenmesi


İki dizginin ardarda eklenmesi + ile yapılır.
Aşağıda örnek verilmiştir.
String birinciParca = “Gazi”;
String ikinciParca = “Üniversitesi”;
String gaziCeng = birinciParca + ikinciParca
+ “ Bilgisayar Mühendisliği”;
System.out.print(gaziCeng);
Çıktı:
GaziÜniversitesi Bilgisayar Mühendisliği
Dizgilerin boyutunun bulunması


Dizgilerin uzunluğunu bulmak için dizgi sınıfının length()
metodu kullanılır.
Aşağıda örnek verilmiştir.
int uzunluk = “GAZİ ÜNV.”.length();
System.out.print(uzunluk);
veya
String gazi = “GAZİ ÜNV.”;
int uzunluk = gazi.length();
System.out.println(uzunluk);
Çıktı:
9
Dizgi metotları
Metot
İşlevi
.toLowerCase()
Dizgi küçük harfe çevrilir.
String ileti = “MERHABA”;
String küçükHarfli =
ileti.toLowerCase();
// merhaba olur
.toUpperCase()
Dizgi büyük harfe çevrilir.
String ileti = “merhaba”;
String küçükHarfli =
ileti.toUpperCase();
// MERHABA olur
Dizgi metotları
Metot
İşlevi
.substring(Başlangıç)
Dizgide Başlangıçtan sonuna kadar
kopyalama yapar.
String ileti = “merhaba”;
String parca =
ileti.substring(4);
// aba olur
.substring(Başlangıç, Son)
Dizgide Başlangıçtan Sona kadar
kopyalama yapar.
String ileti = “merhaba”;
String parca =
ileti.substring(1, 4);
// erh olur
Dizgi metotları
Metot
İşlevi
.indexOf(Bir Dizgi)
Bir Dizgi‟yi arar varsa bağlangıç sırasını
yoksa -1 değerini döndürür.
String ileti = “müdür müdür müdür?”;
int mudurNerede =
ileti.indexOf(“müdür”);
// mudurNerede değişkeninin değeri 0
olur
Dizgi metotları
Metot
İşlevi
.indexOf(Bir Dizgi, Başlangıç)
Bir Dizgi‟yi Başlangıç‟tan itibaren arar
varsa bağlangıç sırasını yoksa -1 değerini
döndürür.
String ileti = “müdür müdür müdür?”;
int mudurNerede =
ileti.indexOf(“müdür”, 4);
// mudurNerede değişkeninin değeri 6
olur
Dizgi metotları
Metot
İşlevi
lastIndexOf(Bir Dizgi)
Bir Dizgi‟yi sondan itibaren arar varsa
bağlangıç sırasını yoksa -1 değerini
döndürür.
String ileti = “müdür müdür müdür?”;
int mudurNerede =
ileti.lastIndexOf(“müdür”, 4);
// mudurNerede değişkeninin değeri 12
olur
Dizgi metotları
Metot
İşlevi
.trim()
Dizginin başındaki ve sonundaki
boşlukları siler.
String ileti = “ merhaba ”;
int bosluklarAtilmis =
ileti.trim();
// bosluklarAtilmis değişkeninin değeri
“merhaba” olur
Dizgi metotları
Metot
İşlevi
.charAt(Konum)
Dizgide yer alan konum numaralı
karakteri geri verir.
String ileti = “merhaba”;
char konumdakiKarakter =
ileti.charAt(3);
// konumdakiKarakter değişkeninin
değeri “h” olur
.compareTo(Bir Dizgi)
Bir Dizgi ile karşılaştırma yapılır.
Küçükse – değer, eşitse 0 ve büyükse +
değer döndürür.
String ileti = “merhaba”;
int esitlik = ileti.compareTo(“merhaba”);
// esitlik değişkeninin değeri 0 olur
String (Dizgi) Sınıfı
import java.util.Scanner;
public class StringDenemesi
{
public static void main (String [] args)
{
String isim, baslik, altIsim;
Scanner klavye = new Scanner(System.in);
isim = klavye.next();
System.out.print (“Isimdeki harf sayisi = ”);
System.out.println(isim.length());
System.out.println(isim.toLowerCase());
baslik = “
JAVA
”;
System.out.println(baslik);
System.out.println(baslik.trim());
System.out.println(isim.charAt(0));
altIsim = isim.substring (3);
System.out.println(altIsim);
altIsim = isim.substring (0,4);
System.out.println(altIsim);
int nerede = isim.indexOf (“TURK”);
System.out.println(nerede);
}
}
String (Dizgi) Sınıfı
Çıktı:
// Klavyeden TÜRKİYE stringi okunmuştur
Isimdeki harf sayısı = 7
turkiye
JAVA
JAVA
T
KIYE
TURK
0
equals ve equalsIgnoreCase metotları
equals() iki dizginin eşit olup olmadığını kontrol eder. equalsIgnoreCase()
ise karşılaştırma sırasında büyük küçük harf ayrımına bakmaz.

İki string eşitse true değilse false döner.
public class EqualsDenemesi
{
public static void main (String [] args)
Çıktı:
{
true
String birinci = “GAZİ”;
false
String ikinci = “ÜNV.”;
true
String ucuncu = “ünv.”;
true

System.out.println(birinci.equals(birinci));
System.out.println(birinci.equals(ikinci));
System.out.println(ikinci.equalsIgnoreCase(ucuncu));
System.out.println(ikinci.equals(ucuncu.toUpperCase()));
}
}
String (Dizgi) Sınıfı - Örnek
import java.util.*;
public class StringIslemleri
{
public static void main (String [] args)
{
String isim, baslik, altIsim;
int nerede;
Scanner klavye = new Scanner(System.in);
System.out.println(“Bir cumle giriniz...”);
isim = klavye.nextLine();
System.out.print (“Bu cumlede bosluklar dahil ”);
System.out.println(isim.length() + “ karakter var.”);
System.out.print (“Cumlenin buyuk harfle yazilmis ”);
System.out.println(“hali...”);
System.out.println(isim.toUpperCase());
baslik = “
GAZİ ÜNV.
”;
System.out.println(“Baslik: ” + baslik);
System.out.print (“Basligin trimden sonraki hali: ”);
System.out.println(baslik.trim());
String (Dizgi) Sınıfı - Örnek
altIsim = isim.substring(3);
System.out.println(“Alt baslik: ” + altIsim);
altIsim = isim.substring(1,5);
System.out.println(“Alt baslik: ” + altIsim);
nerede = isim.lastIndexOf(“N”);
System.out.print (“N'nin bulundugu son konum: ”);
System.out.println(nerede);
}
}
Çıktı:
Bir cümle giriniz...
GAZİ Ünv.
// klavyeden girilmiştir
Bu cümlede boşluklar dahil 9 karakter var.
Cümlenin büyük harfle yazılmış hali...
GAZİ ÜNV.
Baslik: GAZİ ÜNV.
Basligin trimden sonraki hali:GAZİ ÜNV.
Alt baslik: İ ÜNV.
Alt baslik: AZİ Ü
N‟nin bulunduğu son konum: 6
Özel karakterler
Java’da bazı karakterler dizgi içerisinde işlem yapar.

Metot
İşlevi
\”
“ işaretinin String içinde kullanımı
\‟
„ işaretinin String içinde kullanımı
\\
\ işaretinin String içinde kullanımı
\n
String içinde yeni satıra geçilir
\r
String içinde satır başına geçilerek yazmaya devam eder
\t
String içinde sekme (tab) yapar
String (Dizgi) Sınıfı
Özel karakterler - devam
 Java’da özel karakterler için örnekler.
char tekTirnak = „\‟‟;
System.out.println(“\r\t\n”);
System.out.println(“\n\n\n”); // 4 satır alta geçilir
System.out.println(“Gazi Üniversitesi\n Bilgisayar
Mühendisliği ”);
Çıktı:
Gazi Üniversitesi
Bilgisayar Mühendisliği
Belgeleme ve Program Yazma Tarzı


Yazılan programın anlaşılabilirliğini artırmak amacıyla
açıklamalar yazmak gerekir.
Aynı satır içine açıklamalar // ile yazılır.
int a = 5;
// Bu satırın tamamı yorumdur ve Java tarafından
//algılanmaz.
// Burada a = 10 yazılsa bile programın çıktısı 5’tir.
// a = 10;
System.out.println(a);
Çıktı:
5
Belgeleme ve Program Yazma Tarzı

Birden çok satırdan oluşan açıklamalar /* ile */ arasında
yazılır.
/**
* GaziÜniversitesi
* Bilgisayar Mühendisliği Bölümü
*/
int a = 5;
System.out.println(a);
Çıktı:
5
Belgeleme ve Program Yazma Tarzı

Programın anlaşılabilirliğini artırmak amacıyla blokların aynı
hizada yazılması gerekir.
public class GuzelProgram
{
public static void main(String [] args)
{
System.out.println();
.
.
.
System.out.println();
}
}
Download