nesne yönelimli programlama · 3 sınıf ve metot tanımları Önceki kuşak diller yapısal...
TRANSCRIPT
![Page 1: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/1.jpg)
Nesne Yönelimli Programlama
Not: Bu dersin sunumları, “Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu, M.
Özbayoğlu, M. Erten, O. Ergin” kitabı kullanılarak hazırlanmıştır.
![Page 2: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/2.jpg)
Konular
Sınıf ve Metot Tanımları
Metotların Çağırılması
void Metot Tanımları
Değer Döndüren Metotlar
Parametreli Metotlar
this Parametresi
Yerel Değişkenler
Parametrelerin Metotlara Gönderimi
Bilgi Saklanması ve Kuşatması
Nesneler ve Gösterimleri
toString() Metodu
Nesne Kurucuları
![Page 3: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/3.jpg)
3
Sınıf ve Metot Tanımları
Önceki kuşak diller yapısal programlama dilleriydi.
Java nesne yönelimli bir programlama dilidir.
Yapısal dillerde akış denetim komutları ve metot yapıları öne çıkmaktaydı.
Nesne yönelimli dillerde ise programlar nesneler halinde oluşturulmaktadır.
Nesne yönelimli dillerde program geliştirirken aşağıdaki aşamalar gerçekleştirilir:
Nesnelerin ortak özellikleriyle sınıf (class) oluşturmak
Tanımlı sınıfları kullanılarak nesneler oluşturmak (instantiation)
Java programı nesneler ile sınıf içinde tanımlanmış metotları çağırır (method invocation)
![Page 4: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/4.jpg)
4
Sınıf ve Metot Tanımları
Okul sınıfı için ortak özellikler aşağıdaki gibi olabilir.Java kitabı:
Özellikler:
Adı: Java ile Programlama
Yazarlar: Ali Yazıcı, Y.Murat Erten, Erdoğan Doğdu, A.Murat Özbayoğlu, Oğuz Ergin
Yayıncı: Palme Kitabevi
Sayfa: 270
Fiyat: 50 YTL
Matematik kitabı:
Özellikler:
Adı:
Yazarlar:
Yayıncı:
Sayfa: 270
Fiyat: 50 YTL
Fizik kitabı:
Özellikler:
Adı:
Yazarlar:
Yayıncı:
Sayfa:
Fiyat:
![Page 5: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/5.jpg)
5
Sınıf ve Metot Tanımları
Personel sınıfı için ortak özellikler aşağıdaki gibi olabilir.
Aşağıda Personel sınıfından oluşturulmuş bir nesne
görülmektedir.
Personel sınıfı:
Sınıf Adı: Personel
Özellikleri (verileri):
- isim
- sicilNo
- vergiNo
- ePosta
Metotları:
+ maasHesabi();
+ ePostaYollama();
Nesne Adı: bilgisayarMuhBlmBaskani
Özellikleri:
- isim: Ali Yazici
- Axxxx
- 900......
- ePosta: [email protected]
![Page 6: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/6.jpg)
Nesne Oluşturma
Java dahil pek çok programlama dilinde nesne oluşturmak için new anahtar kelimesi kullanılır.
new anahtar kelimesi belirtilen sınıftan yeni bir nesne oluşturur ve bir referans değeri tanımlar. Örneğin Okul sınıfından bir nesne oluşturmak istersek;
Okul okulA= new Okul();
İfadesini kullanırız.
6
![Page 7: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/7.jpg)
Nesne Oluşturma
Sol tarafta Okul sınıfının adı venesnenin değişken adıbulunmaktadır. Bu kısım sağ taraftan gelen
referans bilgisini tutmak için yazılır.
Baştaki sınıf ismi tutulanreferansın ne tür bir nesneolduğunu tanımlar.
Bu işlem sonucu oluşturulannesneye okulA isimli değişkenvasıtasıyla erişim sağlanmak-tadır.
Eşittir operatörünün sağ tarafınabakarsak new anahtar kelimesive Okul sınıfıyla aynı isimdekiOkul() metodunu görürüz.
Bu yapı Okul sınıfından birnesne oluşturur. Bu nesne için bellekte bir alan
tahsis eder ve bellekteki bu alanınreferans bilgisini eşittirin soltarafına gönderir.
7
Okul okulA = new Okul();
![Page 8: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/8.jpg)
new Operatörü
Bellekte yeni nesne için yer ayırır. Sınıf içerisinde bulunan ve yapılandırıcı olarak adlandırılan metodu çağırır.
Yeni nesnenin referans değerini döndürür. Bu değer bir referans değişkenindesaklanır.
Yeni bir nesne oluşturmak için bir önceki örneğimizde
Okul okulA = new Okul (); İfadesini kullanmıştık
Bu ifade istenirse sol parça önce tanımlanmak şartıyla iki satırda tanımlanabilir.
8
Okul okulA; // nesne referans değişkeni tanımlama
okulA = new Okul (); /* yeni bir okul nesnesi
oluşturup referans değerini okulA değişkenine
aktarma.*/
![Page 9: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/9.jpg)
9
Sınıf ve Metot Tanımları
Personel sınıfı Java’da aşağıdaki gibi tanımlanabilir.
public class Personel
{
// Özellikler (veriler)
public String isim;
public String sicilNo;
public String vergiNo;
public String ePosta;
// Metotlar
public void maasHesabi()
{
// metot işlemleri ...
}
public void ePostaYollama()
{
// metot işlemleri ...
}
}
![Page 10: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/10.jpg)
10
Sınıf ve Metot Tanımları
Personel sınıfı başka bir program tarafından
kullanılabilir.
Bu programda bir main() metodu olması zorunludur.
public class PersonelDene
{
public static void main(String [] args)
{
Personel bilgisayarMuhBlmBaskani;
//nesne referans değerini tanımlama
// nesneyi oluşturur
bilgisayarMuhBlmBaskani = new Personel;
/* yeni bir Personel nesnesi oluşturup referans değerini
bilgisayarMuhBlmBaskani değişkenine aktarma. */
bilgisayarMuhBlmBaskani.maasHesabi();
bilgisayarMuhBlmBaskani.ePostaYollama();
}
}
![Page 11: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/11.jpg)
11
Sınıf ve Metot Tanımları
Sınıflar gösterilirken UML (Unified Modeling Language) gösterimi kullanılabilir.
UML gösteriminde bir sınıf isim, özellikler ve metotlar olarak üç kısımdan oluşur.
Personel için UML gösterimi aşağıdaki gibi yapılabilir.
Personel
+isim : String
+sicilNo : String
+vergiNo : String
+ePosta : String
+maasHesabi() : void
+ePostaYollama() : void
![Page 12: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/12.jpg)
12
Sınıf ve Metot Tanımları
Aşağıda YeniSinif adlı sınıfın oluşturulması ve DeneYeniSinif sınıfında kullanılması görülmektedir.
public class YeniSinif
{
public void veriYazdir()
{
System.out.println("Sadece mesaji yazdiralim.");
}
}
class DeneYeniSinif
{
public static void main(String [] args)
{
YeniSinif uye = new YeniSinif();
uye.veriYazdir();
System.out.println("-+-+-+-+-+-+-+-+-+-+-+-+-+-");
uye.veriYazdir();
System.out.println("-+-+-+-+-+-+-+-+-+-+-+-+-+-");
}
}
Çıktı:
Sadece mesaji yazdiralim.
-+-+-+-+-+-+-+-+-+-+-+-+-+-
Sadece mesaji yazdiralim.
-+-+-+-+-+-+-+-+-+-+-+-+-+-
![Page 13: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/13.jpg)
Değer ile çağırma
Değişkenin aldığı değer metoda gönderilir.
Metot içinde yapılan işlemler orjinal nesneyideğiştirmez.
Referans ile çağırma
Metoda değişkenin (nesnenin) kendisi gönderilmişgibi olur ve nesnenin bellekteki adresi yollanır.
Metot içinde yapılan işlemler orjinal nesneyideğiştirir.
13
Nesneler ve Gösterimleri
![Page 14: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/14.jpg)
Değer ile çağırma
int i, j;
i = 10;
j = i;
i = 20;
System.out.println(i + “ ve “ + j);
14
Çıktı: 20 ve 10
![Page 15: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/15.jpg)
Referans ile çağırma
İki basit veri tipi kullanıldığında değişkenler birbirinden bağımsız hareket ederler ve iki ayrı değişken olarak değer alabilirler.
Nesne kullanıldığında atama işlemi esnasında “=” işaretinin sağındaki nesnenin referansı (adresi) işaretin solundaki referansa (adrese) eşitlenir.
Dolayısıyla bir değişken ismi kullanarak yapılan bir değişim diğer değişkeni de (ismi farklı olsa da) aynı şekilde değiştirmektedir.
Bunun sebebi iki nesnenin de referanslarının (adreslerinin) aynı olmasıdır.
15
![Page 16: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/16.jpg)
Nesne Değişkenleri
Java ve diğer nesneye yönelimli programlama dillerinde genel olarak iki tür değişken vardır. nesne değişkenleri
ilkel değişkenler
16
![Page 17: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/17.jpg)
Nesne Değişkenleri
Nesne Değişkenleri nesnelerin bellekteki referans değerlerini tutandeğişkenlerdir.
Bu değişkenler de tanımlandıkları anda bellekten yer ayırırlar ancak ayrılanbu alan oluşturulacak olan nesnenin referans bilgisini tutmak içindir.
Nesne değişkenleri tanımlandığı anda new ile bir nesne oluşturulursa onesnenin referans değeri değişkene atanır. Ancak nesne oluşturulmaz ise ozaman değişkene null yani boş değeri atanır.
17
![Page 18: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/18.jpg)
null Referansı
Programcılıkta null ifadesi, bellekte ayrılan bir alanı göstermekle görevli değişkenlerin hiçbir yeri göstermediği durumları temsil eder.
Nesne değişkenlerinin görevlerinin, nesnenin bellekteki konumunu gösterdiğine göre, nesne değişkenleri de null değerini alabilirler.
Nesne değişkenleri tanımlanırken eğer new ile nesne oluşturulmaz ise nesne değişkeninin değeri null olur.
18
Okul okulD; // okulD null değerini alır
Okul okulD=null //başlangıç ifadesi olarak null alabilir.
![Page 19: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/19.jpg)
null Referansı
Bir nesneye olan ihtiyacımız bittiğinde ondankurtulmak istersek null ifedesine başvururuz.
Java’da eğer bir nesnenin referans değeri birnesne değişkeninde tutulmuyorsa bu nesnebellekten silinir.
19
Okul okulC= new Okul(); /* Okul sınıfından bir nesne oluşturulur ve referansı okulC ye atanır. */
okulC=null; /* okulC ye null değeri atandığından bir
önceki satırda satırda oluşturulan nesneye erişilemez
ve sistemden silinir. */
![Page 20: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/20.jpg)
Referans Atama Yöntemleri
Bir nesne değişkeni oluşturduğumuzda new ile yeni bir nesneoluşturursak oluşturulan nesnenin referansı o nesne değişkenineatanır.
Nesne değişkeni oluşturulduğunda nesne oluşturulmazsa null referansdeğeri atanır.
Başka bir durum ise nesne değişkeni oluşturulduğunda var olan birnesnenin referansının atanmasıdır.
20
![Page 21: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/21.jpg)
Referans Atama
Okul okulC= okulA;
Bu durumda iki nesne değişkeni de aynı referans değerine sahip olacaktır.
Bunun anlamı her iki nesne değişkeni de aynı nesneyi temsil ediyor demektir. Nesnenin kopyalanması anlamına gelmez.
Nesne değişkenleri programın icrası sırasında farklı referans değerler alabilir.
Bir nesneye erişebilmek için en az bir nesne değişkeninin o nesneyi göstermesi gerekmektedir.
21
![Page 22: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/22.jpg)
Değişken Tanımlama
Bir sınıf oluşturulurken o sınıftan türeyecek nesnelerin özelliklerideğişkenlerle tanımlanır.
Bu değişkenler ilkel değişkenler olabileceği gibi nesne değişkenleri deolabilmektedir.
22
Class Okul{
public String okulAdı;
public String yayınEvi;
public Date basımTarihi;
public int sayfaSayısı;
public String kitabınAdınıGöster(){ return okulAdı;
}
Değişkenler nesne özelliklerini temsil etmenin dışındametodların içerisinde işlemler için de tanımlanabilirler. Bu değişkenler yerel değişkenler olarak adlandırılırlar ve metod
içerisinde tanımlanmaları şarttır..
![Page 23: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/23.jpg)
Konular
Sınıf ve Metot Tanımları
Metotların Çağırılması
void Metot Tanımları
Değer Döndüren Metotlar
Parametreli Metotlar
this Parametresi
Yerel Değişkenler
Parametrelerin Metotlara Gönderimi
Bilgi Saklanması ve Kuşatması
Nesneler ve Gösterimleri
toString() Metodu
Nesne Kurucuları
![Page 24: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/24.jpg)
Metod Çağırma
Bir nesnenin metodunu çağırmak için nokta operatörünü kullanırız.Nesnenin referansını tutan değişken isminin sağına nokta koyduktansonra metodun ismini ve varsa parametre değerlerini çağırarakmetodu çağırmış oluruz.
24
pubilc Class Kitap{
public String kitapAdı;
public String yayınEvi;
public Date basımTarihi;
public int sayfaSayısı;
public float maliyet;
public float satisFiyatiHesapla( ){
float fiyat=0.0;
fiyat=maliyet+maliyet*0.18
// maliyete %18 kdv eklenir
return fiyat;
}
}
Kitap kitap1= new Kitap();
kitap1.maliyet= 10.00;
float fiyat=
kitap1.satisFiyatiHesapla(
);
if (fiyat<20)
……
![Page 25: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/25.jpg)
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 aitmetotlar nesne adıyla birlikte çağırılmaktadır.
Bir metot ait olduğu sınıfın içinde başka birmetodu doğrudan adıyla çağırabilir. (this
işaretçisi de kullanılabilir.)
25
![Page 26: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/26.jpg)
26
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 ve değer döndürmeyen metotlar.
Geri değer döndüren metotlarda dönecek verinin türü metottanımında verilir. Değer döndürülecek yerde de return komutukullanılır.
double numara;
numara = Math.random(); /* random() methodu 0 ile 1 arasında bir gerçel sayı
döndürmekte ve döndürülen değer numara değişkenine atanmaktadır.
Geri değer döndürmeyen metotlarda ise metottanımında void kullanılır ve return komutu
kullanılmaz.
System.out.println(“Ekrandaki mesaj”);
![Page 27: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/27.jpg)
Konular
Sınıf ve Metot Tanımları
Metotların Çağırılması
void Metot Tanımları
Değer Döndüren Metotlar
Parametreli Metotlar
this Parametresi
Yerel Değişkenler
Parametrelerin Metotlara Gönderimi
Bilgi Saklanması ve Kuşatması
Nesneler ve Gösterimleri
toString() Metodu
Nesne Kurucuları
![Page 28: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/28.jpg)
28
void Metot Tanımları
void metotlar çağırıldıkları yere değer döndürmezler.
public void metot_adi()
{
- - -
}
Yukarıdaki ilk satır metot başlığı (heading), parantez arasındaki kısım ise gövde (body) olarak adlandırılır.
public, metodun her isteyen tarafından
kullanılabileceğini gösterir.
void metodun çağırılan yere değer döndürmeyeceğini
gösterir.
![Page 29: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/29.jpg)
Konular
Sınıf ve Metot Tanımları
Metotların Çağırılması
void Metot Tanımları
Değer Döndüren Metotlar
Parametreli Metotlar
this Parametresi
Yerel Değişkenler
Parametrelerin Metotlara Gönderimi
Bilgi Saklanması ve Kuşatması
Nesneler ve Gösterimleri
toString() Metodu
Nesne Kurucuları
![Page 30: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/30.jpg)
30
Değer Döndüren Metotlar
Değer döndüren metotlar aşağıdaki gibi tanımlanır.
public döndürülen_değer_türü metot_adi()
{
- - -
}
Döndürülen değer türü Java’da tanımlı veri türlerindenbirisi veya kullanıcı tanımlı bir tür olmalıdır.
Metodun gövde kısmında bir veya daha fazla returnkomutu kullanılmalı ve döndürülen değer bir ifadeylehesaplanmalı veya bir değişkenle gönderilmelidir.
![Page 31: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/31.jpg)
31
Değer Döndüren Metotlar
Aşağıdaki örnekte veriYazdir() metodu int türünde değer döndürmektedir.
public class VeriDondur
{
public int veriYazdir()
{
int say;
String mesaj = "Sadece bu mesaji yazdiralim.";
System.out.println(mesaj);
say = mesaj.length(); //uzunluğu bulmak için kullanılan metod
return say;
}
}
![Page 32: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/32.jpg)
32
Değer Döndüren Metotlar
Aşağıdaki örnekte veriYazdir() metodu int türünde değer döndürmektedir.
class DeneVeriDondur
{
public static void main(String [] args)
{
int sembolSayisi;
VeriDondur eleman = new VeriDondur();
sembolSayisi = eleman.veriYazdir();
System.out.println("Sembol sayisi="+sembolSayisi);
sembolSayisi = eleman.veriYazdir();
System.out.println("Sembol Sayisi="+sembolSayisi);
}
} Çıktı:
Sadece mesaji yazdiralim.
Sembol sayisi=28
Sadece mesaji yazdiralim.
Sembol sayisi=28
![Page 33: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/33.jpg)
Konular
Sınıf ve Metot Tanımları
Metotların Çağırılması
void Metot Tanımları
Değer Döndüren Metotlar
Parametreli Metotlar
this Parametresi
Yerel Değişkenler
Parametrelerin Metotlara Gönderimi
Bilgi Saklanması ve Kuşatması
Nesneler ve Gösterimleri
toString() Metodu
Nesne Kurucuları
![Page 34: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/34.jpg)
34
Parametreli Metotlar
Metot dışarıdan (çağırıldığı yerden) girdi alabilir.
Metot 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 metotlar dışarıdan parametre alabilir.
public döndürülen_değer_türü
metot_adi(param_türü1 param_adı1,
param_türü2 param_adı2, ...)
{
- - -
}
![Page 35: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/35.jpg)
35
Parametreli Metotlar
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;
}
}
![Page 36: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/36.jpg)
36
Parametreli Metotlar
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
![Page 37: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/37.jpg)
Konular
Sınıf ve Metot Tanımları
Metotların Çağırılması
void Metot Tanımları
Değer Döndüren Metotlar
Parametreli Metotlar
this Parametresi
Yerel Değişkenler
Parametrelerin Metotlara Gönderimi
Bilgi Saklanması ve Kuşatması
Nesneler ve Gösterimleri
toString() Metodu
Nesne Kurucuları
![Page 38: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/38.jpg)
38
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; //this.mesaj yazabiliriz sadece mesaj yazabilirsiniz.
System.out.println("Gelen mesaj:" + this.mesaj);
say = mesaj.length();
return say;
}
}
![Page 39: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/39.jpg)
39
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
![Page 40: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/40.jpg)
Konular
Sınıf ve Metot Tanımları
Metotların Çağırılması
void Metot Tanımları
Değer Döndüren Metotlar
Parametreli Metotlar
this Parametresi
Yerel Değişkenler
Parametrelerin Metotlara Gönderimi
Bilgi Saklanması ve Kuşatması
Nesneler ve Gösterimleri
toString() Metodu
Nesne Kurucuları
![Page 41: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/41.jpg)
41
Yerel Değişkenler
Değişkenler tanımlandıkları blok içinde geçerlidir.
Bir metodun içinde tanımlanan değişkenin geçerliliği metot bittiğinde sona erer.
Aynı değişken adı farklı metotlarda kullanılabilir.
Her değişkenin geçerliliği ait olduğu metot başladığında başlar ve bittiğinde sona erer.
// i değişkeni for bloğu içinde tanımlıdır
for(int i = 1; i < 100; i++)
toplam = toplam + i;
System.out.println(i); // Hatalıdır! i tanımlı değildir.
![Page 42: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/42.jpg)
42
Yerel Değişkenler
Aşağıdaki örnekte yeniMiktar isimli iki ayrı değişken hem sınıf içinde hemde main() metodunda kullanılmıştır.
public class BankaHesabi
{
public double miktar;
public double faiz;
public void yeniToplamGoster ()
{
double yeniMiktar = miktar + (faiz/100.0) * miktar;
System.out.println ("Faizli miktar " + yeniMiktar + "
YTL.");
}
}
![Page 43: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/43.jpg)
43
Yerel Değişkenler
class DeneBankaHesabi
{
public static void main (String [] args)
{
BankaHesabi benimHesabim = new BankaHesabi ();
benimHesabim.miktar = 100.00;
benimHesabim.faiz = 5;
double yeniMiktar = 800.00;
benimHesabim.yeniToplamGoster ();
System.out.println ("Hesapta " + yeniMiktar + " YTL
olmaliydi.");
}
}Çıktı:
Faizli miktar 105.0 YTL.
Hesapta 800.0 YTL olmaliydi.
![Page 44: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/44.jpg)
Konular
Sınıf ve Metot Tanımları
Metotların Çağırılması
void Metot Tanımları
Değer Döndüren Metotlar
Parametreli Metotlar
this Parametresi
Yerel Değişkenler
Parametrelerin Metotlara Gönderimi
Bilgi Saklanması ve Kuşatması
Nesneler ve Gösterimleri
toString() Metodu
Nesne Kurucuları
![Page 45: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/45.jpg)
45
Parametrelerin Metotlara Gönderimi
Metotların başlığında tanımlanan parametrelere biçimsel parametre (formal parameter) denir.
Bir metot çağrıldığında bazı değişkenler veya değerler parametrelere karşılık olarak metoda gönderilirler. Bunlara da gerçek parametre veya argüman denir.
Değer ile çağırma (call-by-value): Argümanların sadece değeri metoda gönderilir.
Referans ile çağırma (call-by-reference): Argümanların referansı (adresi) metoda gönderilir.
// bir nesne metoduna farklı değerler gönderilmektedir.
birNesne.notKayitIslemi(1010598, “Ahmet”, ‘E’, “Matematik”,
78.89);
![Page 46: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/46.jpg)
Konular
Sınıf ve Metot Tanımları
Metotların Çağırılması
void Metot Tanımları
Değer Döndüren Metotlar
Parametreli Metotlar
this Parametresi
Yerel Değişkenler
Parametrelerin Metotlara Gönderimi
Bilgi Saklanması ve Kuşatması
Nesneler ve Gösterimleri
toString() Metodu
Nesne Kurucuları
![Page 47: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/47.jpg)
47
Bilgi Saklanması ve Kuşatması (Encapsulation)
Parametre ve değişkenlerin sadece gerekli durumlarda ve yerlerde kullanılması ve program ayrıntılarının mümkün olduğunca saklanmasına kuşatma veya saklama denir.
Bir sınıfın değişkenlerinin her yerden ve herkes tarafından erişime açık olması (public) tercih edilmez.
Bunun için erişim değiştiricileri (access modifiers)denilen kelimeler kullanılır.
Bunlardan yaygın kullanılanlar public ve private kelimeleridir.
![Page 48: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/48.jpg)
48
Bilgi Saklanması ve Kuşatması
public ve private
public : herhangi bir program veya sınıf tarafından çağrılabilir, kullanılabilir.
private : sadece sınıfının içindeki metotlar tarafından kullanılabilir, başka bir sınıf veya metot tarafından kullanılamaz.
Private değişkenlere genellikle set ve get fonksiyonları kullanılarak erişilir.
Fonksiyonlarla değişkenlere erişirken değerlerin kontrolü, düzeltilmesi veya hatalı girişleri kaydetmeden kullanıcıya bilgi verilmesi işlemleri kolaylıkla yapılabilir.
![Page 49: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/49.jpg)
49
Bilgi Saklanması ve Kuşatması
public class personel
{
public String isim;
public String ePosta;
public double maas;
public double maasHesabi(double brutMaas)
{
double netMaas;
netMaas = 0.81*brutMaas;
return netMaas;
}
public void kayitYazdir()
{
System.out.println("Personel ismi:"+isim);
System.out.println("Personel ePosta:"+ePosta);
System.out.println("Personel maasi:"+maas);
}
}
![Page 50: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/50.jpg)
50
Bilgi Saklanması ve Kuşatması
import java.util.Scanner;
public class DenePersonel
{
public static void main(String[] args)
{
personel bil = new personel(); //nesne kurucusu
double maas, netMaas;
bil.isim="Ahmet Cakir";
bil.ePosta="[email protected]";
System.out.print("Brut maasi giriniz:");
Scanner klavye=new Scanner(System.in);
maas = klavye.nextDouble();
netMaas = bil.maasHesabi(maas);
System.out.println("Brut Maas="+maas);
System.out.println("Net Maas="+netMaas);
bil.maas=netMaas;
bil.kayitYazdir();
}
}
Çıktı:
Brut maasi giriniz:4500
Brut Maas=4500.0
Net Maas=3645.00000005
Personel ismi:Ahmet Cakir
Personel ePosta:[email protected]
Personel maasi:3645.00000005
![Page 51: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/51.jpg)
51
Bilgi Saklanması ve Kuşatması
public class BankaHesabi
{
private double bakiye; //public degiskeni
public double yeniBakiye(double cekilenMiktar)
{
double kalan;
kalan=bakiye-cekilenMiktar;
if(kalan<0.0)
{
System.out.println("Yetersiz bakiye...");
return 0.0;
}
else
return kalan;
}
}
![Page 52: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/52.jpg)
52
Bilgi Saklanması ve Kuşatması
import java.util.Scanner;
public class deneBankaHesabi
{
public static void main(String [] args)
{
Scanner klavye = new Scanner(System.in);
double kalan = 1000.0, miktar;
BankaHesabi hesap = new BankaHesabi();
System.out.print("Cekilecek miktar:");
miktar = klavye.nextDouble();
hesap.bakiye=kalan; // Derleyici hata gösterecek.
// Bakiye has private access in BankaHesabi
kalan = hesap.yeniBakiye(miktar);
System.out.println("Yeni bakiye = “ + amount);
}
}
![Page 53: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/53.jpg)
53
Bilgi Saklanması ve Kuşatması
private değişkenlere erişim
Özel değişkenlere (private) ulaşılması gerektiğinde erişim (accessor) metodu (get), özel değişkenleri değiştirmek gerektiğinde değiştirici (mutator) metodu (set) kullanılır.
Erişim ve değiştirici metotlar diğer sınıfların ve nesnelerin erişebilmesi için public tanımlanır.
Erişim metodu adı getDegiskenAdı() şeklinde
tanımlanmalıdır.
Değiştirici metodu adı setDegiskenAdi() şeklinde
tanımlanmalıdır.
![Page 54: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/54.jpg)
54
Bilgi Saklanması ve Kuşatması
set ve get metotları
Set metodu: Değişkenin değerini değiştirmek için kullanılır.
Get metodu: Değişkenin değerine ulaşmak için kullanılır.
Metot isimlerinde set ve get kullanılması zorunlu değildir. (Örneğin yaz ve oku kullanılabilir.)
public void setDegisken(int sayi){
privateDegisken = sayi;}
public int getDegisken(){
return privateDegisken;}
![Page 55: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/55.jpg)
55
Bilgi Saklanması ve Kuşatması
set ve get metotları - örnek
public class BankaHesabi3
{
private double hesapBakiyesi;
public void setHesapBakiyesi(double Miktar)
{ //set metodunu değişkenin değerini değiştirmek için
hesapBakiyesi = Miktar;
}
public double paraCek(double cekilenMiktar)
{
double bakiye = hesapBakiyesi;
bakiye -= cekilenMiktar;
if(bakiye < 0.0)
System.out.println("Yetersiz bakiye...");
else
hesapBakiyesi = bakiye;
return hesapBakiyesi;
}
![Page 56: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/56.jpg)
56
Bilgi Saklanması ve Kuşatması
set ve get metotları - örnek
public double getHesapBakiyesi()
{ //Get metodu değişkenin değerine ulaşmak için
return hesapBakiyesi;
}
}
import java.util.Scanner;
public class deneBankaHesabi
{
public static void main(String [] args)
{
Scanner klavye = new Scanner(System.in);
double kalan, miktar;
BankaHesabi3 hesap = new BankaHesabi3();
![Page 57: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/57.jpg)
57
Bilgi Saklanması ve Kuşatması
set ve get metotları - örnek
System.out.print("Hesabinizdaki para: ");
kalan = klavye.nextDouble();
System.out.print("Cekilecek para: ");
miktar = klavye.nextDouble();
hesap.setHesapBakiyesi(kalan);
kalan = hesap.paraCek(miktar);
System.out.println("Yeni bakiye= "+kalan);
hesap.setHesapBakiyesi(kalan*1.1);
kalan = hesap.getHesapBakiyesi();
System.out.println("Yeni bakiye= "+kalan);
}
}
Çıktı:
Hesabinizdaki para: 10000
Cekilecek para: 400
Yeni bakiye= 9600.0
Yeni bakiye= 10560.0
![Page 58: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/58.jpg)
58
Bilgi Saklanması ve Kuşatması
set ve get metotları
setHesapBakiyesi() ve getHesapBakiyesi()
metotları genel erişimli (public) oldukları için sınıf dışından çağrılarak ilgili değişken alanının okunması ve değiştirilmesi işlemleri yapılabilir.
Her değişken için bu metotların yazılması zorunlu ve gerekli değildir. Tasarımcının kararına göre değişkenlere bu erişim hakkı verilebilir.
![Page 59: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/59.jpg)
59
Bilgi Saklanması ve Kuşatması
set ve get metotları
OgrenciKayit sınıfı için UML gösterimi aşağıdaki gibi yapılabilir.
OgrenciKayit
‒ad: String
‒kisaSinav1: int
‒kisaSinav2: int
‒araSinav: int
‒final: int
‒toplamPuan: double
‒not: char
+veriGir(): void
+ciktiYaz(): void
+setToplam(): void
+setNot(): void
![Page 60: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/60.jpg)
60
Bilgi Saklanması ve Kuşatması
set ve get metotları – örnekpublic class ogrenciKayit
{
private int kisaSinav1, kisaSinav2, araSinav, finalSinavi;
private double toplamPuan;
private char notu;
private string ad;
public void veriGir()
{ Scanner klavye = new Scanner(System.in);
System.out.print("Ogrenci adini giriniz:");
ad = klavye.next();
System.out.print("Kisa sinav1 ve kisa sinav2 notlari:");
kisaSinav1 = klavye.nextInt();
kisaSinav2 = klavye.nextInt();
System.out.print("Ara sinav ve final notlari:");
araSinav = klavye.nextInt();
finalSinavi = klavye.nextInt();
}
![Page 61: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/61.jpg)
61
Bilgi Saklanması ve Kuşatması
set ve get metotları – örnek
public void ciktiYaz()
{
System.out.println ("Isim =" + ad);
System.out.println("Toplam puan ve notu:");
System.out.println(toplamPuan + " " + notu);
}
public void setToplam()
{
toplamPuan = 0.25 * (kisaSinav1 + kisaSinav2) / 2.0 +
0.5 * finalSinavi + 0.25 * araSinav;
}
![Page 62: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/62.jpg)
62
Bilgi Saklanması ve Kuşatması
set ve get metotları – örnek
public void setNot()
{
if(toplamPuan >= 90.0)
notu = 'A';
else if(toplamPuan >= 80.0)
notu = 'B';
else if(toplamPuan >= 70.0)
notu = 'C';
else if(toplamPuan >= 60.0)
notu = 'D';
else
notu = 'F';
}
}
![Page 63: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/63.jpg)
63
Bilgi Saklanması ve Kuşatması
set ve get metotları – örnek
public class deneOgrenciKayit
{
public static void main(String[]args)
{
OgrenciKayit ogrenci1 = new OgrenciKayit();
ogrenci1.veriGir();
ogrenci1.setToplam();
ogrenci1.setNot();
ogrenci1.ciktiYaz();
}
}
Çıktı:
Ogrenci adini giriniz: Ahmet
Kisa sinav1 ve kisa sinav2 notlari: 45 67
Ara sinav ve final notlari: 55 80
Isim = Ahmet
Toplam puan ve not:
67.75 D
![Page 64: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/64.jpg)
64
Bilgi Saklanması ve Kuşatması
set ve get metotları – örnekpublic class KesirliSayi
{
private int pay;
private int payda;
public void setSayi(int pay1, int pay2)
{
pay = pay1;
payda = pay2;
}
public int getPay()
{
return pay;
}
public int getPayda()
{
return payda;
}
![Page 65: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/65.jpg)
65
Bilgi Saklanması ve Kuşatması
set ve get metotları – örnek
public KesirliSayi topla(KesirliSayi sayi1)
{
KesirliSayi sayi2 = new KesirliSayi();
sayi2.pay = sayi1.pay * payda + pay * sayi1.payda;
sayi2.payda = sayi1.payda * payda;
return sayi2;
}
public void yazdir()
{
System.out.println(pay + "/" + payda);
}
}
![Page 66: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/66.jpg)
66
Bilgi Saklanması ve Kuşatması
set ve get metotları – örnekimport java.util.Scanner;
public class DeneKesirliSayi
{
public static void main(String[] args)
{
int pay1, pay2, payda1, payda2;
KesirliSayi ilkSayi = new KesirliSayi();
KesirliSayi ikinciSayi = new KesirliSayi();
KesirliSayi sayilarToplami;
KesirliSayi sonSayi = new KesirliSayi();
Scanner klavye = new Scanner(System.in);
System.out.println("Birinci sayinin pay ve paydasi:");
pay1 = klavye.nextInt();
payda1 = klavye.nextInt();
ilkSayi.setSayi(pay1, payda1);
![Page 67: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/67.jpg)
67
Bilgi Saklanması ve Kuşatması
set ve get metotları – örnek
System.out.println("Ikinci sayinin pay ve paydasi:");
pay2 = klavye.nextInt();
payda2 = klavye.nextInt();
ikinciSayi.setSayi(pay2, payda2);
sayilarToplami = ilkSayi.topla(ikinciSayi);
sayilarToplami.yazdir();
sonSayi.setSayi(7,8);
sonSayi.yazdir();
}
}
Çıktı:
Birinci sayinin pay ve paydasi: 10 2
Ikinci sayinin pay ve paydasi: 10 5
70/10
7/8
![Page 68: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/68.jpg)
68
Bilgi Saklanması ve Kuşatması
Kuşatma prensiplerine göre iyi bir sınıf oluşturmak
Sınıf tanımından hemen önce sınıfın, verilerin ve metodların amacını açıklayan bir yorum konmalıdır.
Bütün sınıf değişkenleri “private” olarak tanımlanmalıdır.
Diğer sınıflar ve programlar tarafından değerlerinin değiştirilmesi veya atanması gerekebilecek değişken ve metotlar için erişim ve değiştirici (get,set) metotları oluşturulmalıdır.
Bütün public metotların başında metot hakkında bilgi veren kısa bir açıklama bulunmalıdır.
Sınıf içinde kullanılan, dışarıdan erişilmeyecek metotlar “private” olarak tanımlanmalıdır. Bunlara yardımcı metotlar denir ve yalnızca sınıf içinde tanımlı diğer metotlar tarafından kullanılırlar.
![Page 69: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/69.jpg)
Konular
Sınıf ve Metot Tanımları
Metotların Çağırılması
void Metot Tanımları
Değer Döndüren Metotlar
Parametreli Metotlar
this Parametresi
Yerel Değişkenler
Parametrelerin Metotlara Gönderimi
Bilgi Saklanması ve Kuşatması
Nesneler ve Gösterimleri
toString() Metodu
Nesne Kurucuları
![Page 70: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/70.jpg)
70
Nesneler ve Gösterimleri
Değer ile çağırma (call-by-value)
Değişkenin aldığı değer metoda gönderilir.
Metot içinde yapılan işlemler orjinal nesneyi değiştirmez.
Referans ile çağırma (call-by-reference)
Metoda değişkenin (nesnenin) kendisi gönderilmiş gibi olur ve nesnenin bellekteki adresi yollanır.
Metot içinde yapılan işlemler orjinal nesneyi değiştirir.
![Page 71: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/71.jpg)
71
Nesneler ve Gösterimleri
Değer ile çağırma (call-by-value)
int i, j;
i = 10;
j = i;
i = 20;
System.out.println(i + “ ve “ + j);
20 ve 10.
Çıktı:
20 ve 10
![Page 72: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/72.jpg)
72
Nesneler ve Gösterimleri
Referans ile çağırma (call-by-reference)
İki basit veri tipi kullanıldığında değişkenler birbirinden bağımsız hareket ederler ve iki ayrı değişken olarak değer alabilirler.
Nesne kullanıldığında atama işlemi esnasında “=” işaretinin sağındaki nesnenin referansı (adresi) işaretin solundaki referansa (adrese) eşitlenir.
Dolayısıyla bir değişken ismi kullanarak yapılan bir değişim diğer değişkeni de (ismi farklı olsa da) aynı şekilde değiştirmektedir.
Bunun sebebi iki nesnenin de referanslarının (adreslerinin) aynı olmasıdır.
![Page 73: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/73.jpg)
73
Nesneler ve Gösterimleri
Nesneleri karşılaştırma
İki nesne == ile karşılaştırılırsa nesnelerin bellek adresleri karşılaştırılmış olacaktır.
İki nesnenin eşitliği bütün nesne özelliklerinin karşılaştırılmasını gerektirir ve bunun için equals()
metodu yazılmalıdır.
İki nesnenin alanlarının tek tek karşılaştırılması gerekir.public boolean equals(KesirliSayi sayi)
{
return (this.pay == sayi.pay && this.payda == sayi.payda);
}
public KesirliSayi kopya()
{
KesirliSayi yeniSayi = new KesirliSayi();
yeniSayi.setSayi(this.pay, this.payda);
return yeniSayi;
}
![Page 74: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/74.jpg)
74
Nesneler ve Gösterimleri
Nesneleri karşılaştırma – örnek
public class DeneKesirliSayi3
{
public static void main(String [] args)
{
KesirliSayi s1 = new KesirliSayi();
s1.setSayi(3,5);KesirliSayi s2 = s1.kopya();s2.setSayi(3,5);
if (s1.equals(s2))System.out.println(s1.yazdir()+ " ve "+
s2.yazdir()+ “ esittir”);else
System.out.println(s1.yazdir()+ " ve "+ s2.yazdir()+ " esit degildir");
if (s1 == s2)System.out.println("s1 ve s2 ayni nesnelerdir");
elseSystem.out.println("s1 ve s2 farkli nesnelerdir");
}}
Çıktı:
3/5 ve 3/5 esittir
s1 ve s2 farkli nesnelerdir
![Page 75: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/75.jpg)
Konular
Sınıf ve Metot Tanımları
Metotların Çağırılması
void Metot Tanımları
Değer Döndüren Metotlar
Parametreli Metotlar
this Parametresi
Yerel Değişkenler
Parametrelerin Metotlara Gönderimi
Bilgi Saklanması ve Kuşatması
Nesneler ve Gösterimleri
toString() Metodu
Nesne Kurucuları
![Page 76: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/76.jpg)
76
toString() Metodu
Java otomatik olarak tüm sınıflar için toString() metodunu
sağlar.
Bu metot herhangi bir nesne için çağırıldığında o nesnenin kimlik numarasını döndürür.
KesirliSayi s1 = new KesirliSayi();
s1.setSayi(3, 5);
System.out.println(s1.toString());
System.out.println(s1);
Görüldüğü gibi s1 nesnesi println metoduna parametre olarakgönderdiği zaman otamatik olarak toString metodu çağrılmıştır.
Metod ekrana nesnenin türünü (KesirliSayi) ve hemen yanına @ ve
bir kod yazmaktadır. Bu kod nesnenin bir tür kimlik numarasıdır.
Çıktı:
KesirliSayi@60aeb0
KesirliSayi@60aeb0
![Page 77: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/77.jpg)
77
toString() Metodu
Kesirli sayı sınıfı için ayrı bir toString() metodu
tanımlanabilir.
public class KesirliSayi
{
// ...
public String toString()
{
return pay + “/” + payda;
}
}
KesirliSayi s1 = new KesirliSayi();
s1.setSayi(3, 5);
System.out.println(s1.toString());
System.out.println(s1);Çıktı:
3/5
3/5
![Page 78: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/78.jpg)
Konular
Sınıf ve Metot Tanımları
Metotların Çağırılması
void Metot Tanımları
Değer Döndüren Metotlar
Parametreli Metotlar
this Parametresi
Yerel Değişkenler
Parametrelerin Metotlara Gönderimi
Bilgi Saklanması ve Kuşatması
Nesneler ve Gösterimleri
toString() Metodu
Nesne Kurucuları
![Page 79: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/79.jpg)
79
Nesne Kurucuları
Nesne kurucusu (constructor) nesnenin oluşturulması sırasında değişkenlerin istenildiği gibi düzenlenmesini sağlar.
Nesne kurucusunun adı sınıf adıyla aynıdır.
Nesne kurucusu değer döndürmez ve void kullanılmaz.
Nesne kurucusu dışarıdan parametre alabilir.
Bir sınıfta nesne kurucusu yoksa alan adalrına ilk değerler atanır. (int için 0, nesne için null)
public class Sınıf_Adı
{
public Sınıf_Adı(param_türü1 param_adı1, ...)
{
---
}
}
![Page 80: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/80.jpg)
80
Nesne Kurucuları
Bir sınıfta birden fazla nesne kurucusu olabilir.
Hangi nesne kurucusunun kullanılacağına gönderilen parametre sırası ve türlerine göre karar verilir.
Buna metot aşırı yükleme (method overloading) denir.
![Page 81: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/81.jpg)
81
Nesne Kurucuları
import java.util.Scanner;
public class Kisi
{
private String isim;
private String ePosta;
private String dogumYeri;
private double genelNot;
public Kisi(String a, String b, String c, double o)
{
isim = a;
ePosta = b;
dogumYeri = c;
genelNot = o;
}
public Kisi()
{
}
![Page 82: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/82.jpg)
82
Nesne Kurucuları
public void setIsim(String adSoyad)
{
isim = adSoyad;
}
public void setePosta(String eMail)
{
ePosta = eMail;
}
public void setDogumYeri(String yer)
{
dogumYeri = yer;
}
public void setgenelNot(double ortalama)
{
genelNot = ortalama;
}
![Page 83: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/83.jpg)
83
Nesne Kurucuları
public double getgenelNot()
{
return genelNot;
}
public void bilgiOku()
{
Scanner klavye = new Scanner(System.in);
System.out.print("Ismi giriniz: ");
isim = klavye.nextLine();
System.out.print("e-Postayi giriniz: ");
ePosta = klavye.nextLine();
System.out.print("D. Yeri giriniz: ");
dogumYeri = klavye.nextLine();
System.out.print("GPA giriniz: ");
genelNot= klavye.nextDouble();
}
![Page 84: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/84.jpg)
84
Nesne Kurucuları
public void bilgiYaz()
{
System.out.println("Ogrenci Ismi: "+isim);
System.out.println("Ogrenci e-Posta adresi: "+ePosta);
System.out.println("Ogrenci Dogum Yeri: "+dogumYeri);
}
public boolean equals(Kisi birKisi)
{
if (isim.equals(birKisi.isim)&&
ePosta.equals(birKisi.ePosta)&&
dogumYeri.equals(birKisi.dogumYeri))
return true;
else
return false;
}
}
![Page 85: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/85.jpg)
85
Nesne Kurucuları
class DeneKisi
{
public static void main(String [] args)
{
Kisi ogrenci1 = new Kisi("Erdogan Dogdu",
"[email protected]","Konya",2.49);
Kisi ogrenci2 = new Kisi("Erdogan Dogdu",
"[email protected]","Konya",3.90);
Kisi ogrenci3 = new Kisi();
ogrenci3.setIsim("Sertac Dogdu");
ogrenci3.setePosta("[email protected]");
ogrenci3.setDogumYeri("Ankara");
ogrenci3.setgenelNot(3.28);
ogrenci1.bilgiYaz();
ogrenci2.bilgiYaz();
System.out.println(ogrenci1 + " " + ogrenci2);
if (ogrenci1.equals(ogrenci2))
System.out.println("ayni ogrenciler " +
ogrenci1.getgenelNot());
else
System.out.println("farkli ogrenciler...");
}
}
![Page 86: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/86.jpg)
86
Nesne Kurucuları
Çıktı:
Ogrenci Ismi: Erdogan Dogdu
Ogrenci e-Posta adresi: [email protected]
Ogrenci Dogum Yeri: Konya
Ogrenci Ismi: Erdogan Dogdu
Ogrenci e-Posta adresi: [email protected]
Ogrenci Dogum Yeri: Konya
Kisi@1f6a7b9 Kisi@7d772e
ayniOgrenciler 2.49
![Page 87: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/87.jpg)
87
Nesne Kurucuları
Nesnelerin metotlara girdi ve çıktı olarak kullanımı
Nesneler metotlara parametre olarak gönderilebilir veya dönen değer olarak alınabilir.
public Sınıf_Adı2 metotAdı(Sınıf_Adı1 nesne_adı1, ...)
{
---
return nesne_adı1;
}
Metot nesne alabilir farklı bir değer veya nesne döndürebilir.
public BankaHesabi hesapBul(Personel P)
{
BankaHesabi b = new BankaHesabi();
---
return b;
}
![Page 88: Nesne Yönelimli Programlama · 3 Sınıf ve Metot Tanımları Önceki kuşak diller yapısal programlama dilleriydi. Java nesne yönelimli bir programlama dilidir. Yapısal dillerde](https://reader030.vdocuments.pub/reader030/viewer/2022040504/5e31dbae111bc6768f09542f/html5/thumbnails/88.jpg)
88
Nesne Kurucularıpublic class DeneKesirliSayi4
{
public static void birArtir(KesirliSayi sayi)
{
sayi.setSayi(sayi.getPay() + 1, sayi.getPayda + 1);
}
public static vodi birArtir(int i)
{
i++;
}
public static void main(String [] args)
{
KesirliSayi s = new KesirliSayi();
s.setSayi(3, 5);
birArtir(s);
s.yazdir();
int j = 5;
birArtir(j);
System.out.println(j);
}
}