47
NESNEYE DAYALI NESNEYE DAYALI PROGRAMLAMA PROGRAMLAMA Ders 1 Ders 1

NESNEYE DAYALI PROGRAMLAMA

  • Upload
    rowa

  • View
    92

  • Download
    1

Embed Size (px)

DESCRIPTION

NESNEYE DAYALI PROGRAMLAMA. Ders 1. Java Nedir?. Java ™ platformu , ağ(network) ‘nın önemi hesaba katılarak ve aynı yazılımın birçok değişik bilgisayar ortamında veya değişik tür makinalarda çalışması fikri ile geliştirilmiş yeni bir teknolojidir. - PowerPoint PPT Presentation

Citation preview

Page 1: NESNEYE DAYALI PROGRAMLAMA

NESNEYE DAYALI NESNEYE DAYALI PROGRAMLAMAPROGRAMLAMADers 1Ders 1

Page 2: NESNEYE DAYALI PROGRAMLAMA

Java Nedir?Java Nedir?

Java ™ platformu , ağ(network) ‘nın önemi Java ™ platformu , ağ(network) ‘nın önemi hesaba katılarak ve aynı yazılımın birçok hesaba katılarak ve aynı yazılımın birçok değişik bilgisayar ortamında veya değişik tür değişik bilgisayar ortamında veya değişik tür makinalarda çalışması fikri ile geliştirilmiş yeni makinalarda çalışması fikri ile geliştirilmiş yeni bir teknolojidir. bir teknolojidir.

Java teknolojisi kullanılarak aynı uygulamayı Java teknolojisi kullanılarak aynı uygulamayı değişik ortamlarda çalıştırabiliriz – örneğin Pc değişik ortamlarda çalıştırabiliriz – örneğin Pc lerde , Macintosh bilgisayarlarda , hatta cep lerde , Macintosh bilgisayarlarda , hatta cep telefonlarında . telefonlarında .

Page 3: NESNEYE DAYALI PROGRAMLAMA

Java yı hem programlama dili , hemde bir ortam olarak Java yı hem programlama dili , hemde bir ortam olarak düşenebiliriz . Programlama dili olarak , açık , nesneye düşenebiliriz . Programlama dili olarak , açık , nesneye yönelik (object-oriented) , güvenli , sağlam , internet yönelik (object-oriented) , güvenli , sağlam , internet için elverişli bir teknoloji diyebiliriz . Ortam olarak da için elverişli bir teknoloji diyebiliriz . Ortam olarak da işletim sistemi , veri tabanı (database) , ve orta işletim sistemi , veri tabanı (database) , ve orta katman (middleware) teknolojileri bulmak mümkündür. katman (middleware) teknolojileri bulmak mümkündür.

Gerek Java , gerekse Java’ya bağlı alt teknolojiler , VB Gerek Java , gerekse Java’ya bağlı alt teknolojiler , VB veya Borland Delphi gibi sadece belli bir firma veya Borland Delphi gibi sadece belli bir firma tarafından geliştirilmiş olan başlı başına ürünler tarafından geliştirilmiş olan başlı başına ürünler değillerdir . değillerdir .

Page 4: NESNEYE DAYALI PROGRAMLAMA

Java ve Java’ya bağlı alt teknolojiler , Java ve Java’ya bağlı alt teknolojiler , Sun Microsystems tarafından verilmiş Sun Microsystems tarafından verilmiş açıklamalardan oluşmaktadır . açıklamalardan oluşmaktadır .

Bu açıklamalara sadık kalan her yazılım Bu açıklamalara sadık kalan her yazılım fırması JVM(Java Virtual Machine = fırması JVM(Java Virtual Machine = Java) veya Java’ya bağlı alt teknolojiler Java) veya Java’ya bağlı alt teknolojiler yazabilir/gerçekleştirebiliryazabilir/gerçekleştirebilir..

Page 5: NESNEYE DAYALI PROGRAMLAMA

Eğer bu açıklamalara (specifications) sadık Eğer bu açıklamalara (specifications) sadık kalmayıp , standart dışı bir JVM veya Java’ya kalmayıp , standart dışı bir JVM veya Java’ya bağlı alt teknoloji yazmaya/gerçekleştirmeye bağlı alt teknoloji yazmaya/gerçekleştirmeye kalkarsanız hukuki bir suç işlemiş kalkarsanız hukuki bir suç işlemiş olursunuz(Microsoft firmasının yaptığı gibi). olursunuz(Microsoft firmasının yaptığı gibi).

Şu anda en yaygın kullanılan JVM ler , IBM’in Şu anda en yaygın kullanılan JVM ler , IBM’in ve Sun Microsystems ın üretmiş olduklarıdır, ve Sun Microsystems ın üretmiş olduklarıdır, ayrıca HP , Apple ve daha bir çok firmanın ayrıca HP , Apple ve daha bir çok firmanın üretmiş oldukları JVM ler bulunmaktadır üretmiş oldukları JVM ler bulunmaktadır

Page 6: NESNEYE DAYALI PROGRAMLAMA

Java ile ne Java ile ne yapılabilir?yapılabilir?

Java Programlama dili ile projelerimizi diğer Java Programlama dili ile projelerimizi diğer programlama dillerine göre daha kolay ve sağlıklı bir programlama dillerine göre daha kolay ve sağlıklı bir şekilde yapmanız mümkündür . Kısaca göz atacak şekilde yapmanız mümkündür . Kısaca göz atacak olursak , Java ile ;   olursak , Java ile ;  

·    GUI (graphical user interface , grafiksel kullanıcı ara ·    GUI (graphical user interface , grafiksel kullanıcı ara yüzü) uygulamaları , appletler. yüzü) uygulamaları , appletler.

·    Distributed components   (ör . EJB, RMI, CORBA). ·    Distributed components   (ör . EJB, RMI, CORBA). ·    Servlet , Jsp (web tabanlı uygulamalar). ·    Servlet , Jsp (web tabanlı uygulamalar). ·    Veri tabanlarına erişim ile alakalı uygulamalar. ·    Veri tabanlarına erişim ile alakalı uygulamalar. ·    Cep telefonları , Smart kart lar için uygulamalar . ·    Cep telefonları , Smart kart lar için uygulamalar . ·    Ve daha niceleri ….    için uygulamalar yazmamız ·    Ve daha niceleri ….    için uygulamalar yazmamız

mümkünkür. mümkünkür.

Page 7: NESNEYE DAYALI PROGRAMLAMA

Java nasıl çalışır?Java nasıl çalışır?

Java uygulamaları JVM (Java Virtual Machine) Java uygulamaları JVM (Java Virtual Machine) tarafından yorumlanır. JVM , işletim sisteminin tarafından yorumlanır. JVM , işletim sisteminin en tepesinde bulunur.Bu sayade yazımış olan en tepesinde bulunur.Bu sayade yazımış olan Java uygulamaları değişik işletim sistemlerinde Java uygulamaları değişik işletim sistemlerinde , herhangi bir değişiklik yapmadan çalışabilir, , herhangi bir değişiklik yapmadan çalışabilir, Java nın felsefesi olan “bir kere yaz heryerde Java nın felsefesi olan “bir kere yaz heryerde çalıştır” sözü gerçekleştirilmiştir. çalıştır” sözü gerçekleştirilmiştir.

Şekil 1

Page 8: NESNEYE DAYALI PROGRAMLAMA

Aşağıdaki şekillerde , javanın kaynak kodundan, Aşağıdaki şekillerde , javanın kaynak kodundan, çalışmasına kadar olan evreleri gösterilmektedir. çalışmasına kadar olan evreleri gösterilmektedir.

Derleme anı (Compile Time)Derleme anı (Compile Time)

Çalışma anı ( Run-time) Çalışma anı ( Run-time) 

Byte koduna çevrilen kaynak kod , JVM tarafından yorumlanır ve uygulama çalıştırılmış olur.

Şekil 2

Page 9: NESNEYE DAYALI PROGRAMLAMA

Java uygulaması örneğiJava uygulaması örneği

Ufak bir Java uygulaması örneği , bu örneği Ufak bir Java uygulaması örneği , bu örneği birazdan detaylı olarak inceliyeceğiz.birazdan detaylı olarak inceliyeceğiz.

public class Selam { public class Selam {

public static void main(String args[]) public static void main(String args[]) { {

System.out.println("Selamlar !"); System.out.println("Selamlar !"); } }

}}

Page 10: NESNEYE DAYALI PROGRAMLAMA

Şekil 3

Yazılan java kaynak kodlarımız ilk önce derlenir daha sonra ise çalıştırırız. Java kaynak kodunda belirttiğimiz her sınıf (class) için fiziksel olarak bir class dosyası oluşturulur.

Page 11: NESNEYE DAYALI PROGRAMLAMA

Gelişim Evreleri Gelişim Evreleri 19951995Java Teknolojisinin ilk çıkış yılı ; ilk olarak applet teknolojisinin dikkat çektiği seneler. Java Teknolojisinin ilk çıkış yılı ; ilk olarak applet teknolojisinin dikkat çektiği seneler. 19961996Java Development Kit (JDK) v1.0  çıkartıldı. Temel seviyeli işlevleri içeren bir versiyon Java Development Kit (JDK) v1.0  çıkartıldı. Temel seviyeli işlevleri içeren bir versiyon

(ör. soket programlama, dosya I/O, GUI) (ör. soket programlama, dosya I/O, GUI) 19971997JDK 1.1 çıkartıldı.  Bu sürümde  Java GUI , veritabanı erişimi için JDBC , dağınık JDK 1.1 çıkartıldı.  Bu sürümde  Java GUI , veritabanı erişimi için JDBC , dağınık

objeler için  RMI ve daha birçok yeni gelişmeler eklendi . objeler için  RMI ve daha birçok yeni gelişmeler eklendi . 19981998JDK 1.2 çıkartıldı . JDK 1.2 çıkartıldı . JFC/Swing yayınlandı- aynı sene içersinde 500,000+ download gerçekleştirildi. JFC/Swing yayınlandı- aynı sene içersinde 500,000+ download gerçekleştirildi. 19991999Java teknolojisi   J2SE, J2EE ve J2ME olarak 3’e bölündü . Java teknolojisi   J2SE, J2EE ve J2ME olarak 3’e bölündü . Java HotSpot (performans arttırıcı) yayınlandı . Java HotSpot (performans arttırıcı) yayınlandı . JavaServer Pages (JSP) teknolojisi yayınlandı. JavaServer Pages (JSP) teknolojisi yayınlandı. J2EE platform’u yayınlandı . J2EE platform’u yayınlandı . Linux üzerinde J2SE platformu yayınlandı . Linux üzerinde J2SE platformu yayınlandı . 20002000JDK v1.3 çıkartıldı . JDK v1.3 çıkartıldı . Java APIs for XML teknolojisi yayınlandı . Java APIs for XML teknolojisi yayınlandı .    

Page 12: NESNEYE DAYALI PROGRAMLAMA

Javanın başarılı olmasındaki sebeblerJavanın başarılı olmasındaki sebebler   

1.  Çok güzel bir programlama dili olması1.  Çok güzel bir programlama dili olması a. C/C++ da olduğu gibi hafıza problemlerinin a. C/C++ da olduğu gibi hafıza problemlerinin

olmaması .olmaması . b. Nesneye yönelik (Object - Oriented) b. Nesneye yönelik (Object - Oriented)

olması .olması . c. C/C++/VB  dillerinin aksine dinamik olması .c. C/C++/VB  dillerinin aksine dinamik olması . d. Güvenli .d. Güvenli . e. Internet uygulamarı için elverişli .e. Internet uygulamarı için elverişli .2. Platform bağımsız olması :2. Platform bağımsız olması : bir kere yaz her bir kere yaz her

yerde çalıştıryerde çalıştır                

Page 13: NESNEYE DAYALI PROGRAMLAMA

Çöp toplayıcı (Garbage Collector )Çöp toplayıcı (Garbage Collector )

Çöp toplayıcı devamlı olarak takip  Çöp toplayıcı devamlı olarak takip  halindedir.Bir  programın çalışma durumunda , halindedir.Bir  programın çalışma durumunda , ortaya çıkan ve sonradan ortaya çıkan ve sonradan kullanılmayan(gereksiz ) objeleri bulur ve onları kullanılmayan(gereksiz ) objeleri bulur ve onları yok eder.yok eder.

Böylece hafıza yönetiminin (memory Böylece hafıza yönetiminin (memory management) yükü kodu yazan kişiden javaya management) yükü kodu yazan kişiden javaya geçmiş olur. Diğer dillerde , örneğin C++ da  , geçmiş olur. Diğer dillerde , örneğin C++ da  , oluşturulan objelerin  yok edilme sorumluluğu oluşturulan objelerin  yok edilme sorumluluğu kodu yazan kişiye aittir . kodu yazan kişiye aittir .

Page 14: NESNEYE DAYALI PROGRAMLAMA

Çöp toplayıcının ne zaman ortaya çıkıp Çöp toplayıcının ne zaman ortaya çıkıp temizleme yapamayacağı belli olmaz.Eğer temizleme yapamayacağı belli olmaz.Eğer hafızada java için ayrılan kısım dolmaya hafızada java için ayrılan kısım dolmaya başlamış ise çöp toplayıcısı devreye girerek başlamış ise çöp toplayıcısı devreye girerek kullanılmayan objeleri hafızadan siler. kullanılmayan objeleri hafızadan siler.

Eğer hafızada kullanılmayan objeler var ama Eğer hafızada kullanılmayan objeler var ama hafızasa daha çok boş yer varsa çöp hafızasa daha çok boş yer varsa çöp toplayıcısı devreye sokulmaz. Çöp toplayıcısı devreye sokulmaz. Çöp toplayıcısı(garbage collector) JVM in yazılışına toplayıcısı(garbage collector) JVM in yazılışına (implementation) göre değişkenlikler (implementation) göre değişkenlikler gösterebilir.gösterebilir.

Page 15: NESNEYE DAYALI PROGRAMLAMA

Javada yorum satırıJavada yorum satırı

Java kaynak kodunun içersine istediğiniz yorumları Java kaynak kodunun içersine istediğiniz yorumları yazabilmeniz için belli yol izleminiz yazabilmeniz için belli yol izleminiz gerekmektedir.Örneklerimizde yorum satırılarını çokca gerekmektedir.Örneklerimizde yorum satırılarını çokca kulalladığım için bunu en başta açıklama ihtiyacını kulalladığım için bunu en başta açıklama ihtiyacını duydum. duydum. 

Javada yorum satırlarını belirtme iki şekilde mümkün Javada yorum satırlarını belirtme iki şekilde mümkün olur :olur :

/*   yorum  */     ,  slash - yildizdan  ,  diğer yildiz-/*   yorum  */     ,  slash - yildizdan  ,  diğer yildiz-slash arasına kadar istediğiniz yorumu yazabilirsiniz . slash arasına kadar istediğiniz yorumu yazabilirsiniz . Uzun satırlı yorumlarda bu yöntemi kullanabilirsiniz. Uzun satırlı yorumlarda bu yöntemi kullanabilirsiniz.

//   yorum  ,     tek satırlık yorum yapmak için idealdir. //   yorum  ,     tek satırlık yorum yapmak için idealdir. Kısa yorumlarınız için bu yöntemi kullanabilirsiniz Kısa yorumlarınız için bu yöntemi kullanabilirsiniz

Page 16: NESNEYE DAYALI PROGRAMLAMA

Java bir obje dilidirJava bir obje dilidir

Her programlama dilinin kendine has veri Her programlama dilinin kendine has veri yönetim şekli bulunur . Bir programın çalışması yönetim şekli bulunur . Bir programın çalışması süresince objeler oluşturulur . Burada ki soru süresince objeler oluşturulur . Burada ki soru bizim objelere direk olarak mi kullandiğimiz bizim objelere direk olarak mi kullandiğimiz yoksa onlara dolaylı bir şekilde mi bağlantı yoksa onlara dolaylı bir şekilde mi bağlantı sağlayıp kullandığımızdir.  sağlayıp kullandığımızdir. 

Java da herşeye obje olarak davranırız. Java da herşeye obje olarak davranırız. Herseyin obje  olmasına rağmen objeleri Herseyin obje  olmasına rağmen objeleri yönetmek için “ referanslar” kullaniriz .yönetmek için “ referanslar” kullaniriz .

Page 17: NESNEYE DAYALI PROGRAMLAMA

Örnek : Diyelim ki elimizde bir televizyon(obje Örnek : Diyelim ki elimizde bir televizyon(obje olarak düşünün) ,ve bu televizyona ait birde olarak düşünün) ,ve bu televizyona ait birde kumanda(referans) olduğunu düşünelim. Sesi kumanda(referans) olduğunu düşünelim. Sesi alçalmak istediğimizde veya kanalı değiştirmek alçalmak istediğimizde veya kanalı değiştirmek isteğimizde elimizdeki uzaktan kumandayı isteğimizde elimizdeki uzaktan kumandayı televizyonu yönetmek için kullanılız. Bu televizyonu yönetmek için kullanılız. Bu uzaktan kumandayı (referans) alıp odanın uzaktan kumandayı (referans) alıp odanın içinde gezebiliriz , sonuçda uzaktan içinde gezebiliriz , sonuçda uzaktan kumanda(referans) televizyona baglıdır ama kumanda(referans) televizyona baglıdır ama televizyonun yeri sabittir.  televizyonun yeri sabittir. 

Page 18: NESNEYE DAYALI PROGRAMLAMA

Elimizde uzaktan kumanda (referans)olmasi , Elimizde uzaktan kumanda (referans)olmasi , televizyonumuzun (obje) olucağı anlamina televizyonumuzun (obje) olucağı anlamina gelmez . Uzaktan kumandamiz (referans) da gelmez . Uzaktan kumandamiz (referans) da tek başına hayatı sürdürebilir. tek başına hayatı sürdürebilir. 

String kumandaString kumanda; // kumanda referansı şu an için ; // kumanda referansı şu an için StringString bir bir objeye bağlı değil. objeye bağlı değil.

Page 19: NESNEYE DAYALI PROGRAMLAMA

Burada yapılan olay sadece referans oluşturmaktır . Burada yapılan olay sadece referans oluşturmaktır . Eğer bu referansa mesajlar göndermeye kalkışırsak ne Eğer bu referansa mesajlar göndermeye kalkışırsak ne olur  ? tabii ki hata mesajı ile karşılasırız , sebebi ise olur  ? tabii ki hata mesajı ile karşılasırız , sebebi ise bu  referansın herhangi bir objeye bağlı bu  referansın herhangi bir objeye bağlı olmamasıdır. Peki referansımızı bir obje bağlıyalım :olmamasıdır. Peki referansımızı bir obje bağlıyalım :

Page 20: NESNEYE DAYALI PROGRAMLAMA

örnek-1örnek-1 String kumanda= new String("Selamlar") ;String kumanda= new String("Selamlar") ;

örnek-2örnek-2 String kumanda="Selamlar" ;String kumanda="Selamlar" ;

Yukarıda yaptığımızın, referanslara obje bağlama örneklerinin birbirlerinden farkları yoktur. Sonuçta her iki gösterimde referanslara objeleri bağlar.Ama javada String objelerinin özel bir yeri vardır , String objeleri çok kullanılan objeler oldukları için örnek-2 deki gösterimde doğru ve bir nevi kısa yoldur

Page 21: NESNEYE DAYALI PROGRAMLAMA

Sınıf (Class) nedir ? Obje nedir ?Sınıf (Class) nedir ? Obje nedir ?

Sınıf ve Obje i bir benzetme ile açıklayalım.Sınıf ve Obje i bir benzetme ile açıklayalım. Sabun fabrikasında yeni bir sabun dizaynı üzerinde Sabun fabrikasında yeni bir sabun dizaynı üzerinde

çalıştınız ve ortaya bir kalıp çıkartdınız artik üretim çalıştınız ve ortaya bir kalıp çıkartdınız artik üretim aşamasına geçmek istiyorsunuz. aşamasına geçmek istiyorsunuz.

Bu kalıpda sabun un hangi boyutlarda olucağı, hangi Bu kalıpda sabun un hangi boyutlarda olucağı, hangi renkde olucağı , nasil kokucaği vb.. gibi bilgiler hepsi renkde olucağı , nasil kokucaği vb.. gibi bilgiler hepsi sizin tarafınızdan tespit edilmişdir.sizin tarafınızdan tespit edilmişdir.

Üretim aşamasına geçildiğinde hep aynı sabun Üretim aşamasına geçildiğinde hep aynı sabun kalıbını kullanarak yeni sabunlar üretmeniz mümkün kalıbını kullanarak yeni sabunlar üretmeniz mümkün olacaktır , sabun kalıbının tasarımı bir kere yapıldı ama olacaktır , sabun kalıbının tasarımı bir kere yapıldı ama o kalıpdan yola çıkarak n tane sabun objesi üretmeniz o kalıpdan yola çıkarak n tane sabun objesi üretmeniz mümkün olmaktadır. mümkün olmaktadır.

Page 22: NESNEYE DAYALI PROGRAMLAMA

Bu örnekden yola çıkarak , kalıp'ı class Bu örnekden yola çıkarak , kalıp'ı class a , sabunları ise objelere benzetebiliriz.a , sabunları ise objelere benzetebiliriz.

Page 23: NESNEYE DAYALI PROGRAMLAMA

Java da depolanan (Storage)veriler Java da depolanan (Storage)veriler nerede durmakda  nerede durmakda 

Depo, toplam 6 alandan  oluşur  , Bu 6 alanı açıklarsak : Depo, toplam 6 alandan  oluşur  , Bu 6 alanı açıklarsak : RegisterRegister : En hızlı alan burasıdır .Bu alan Cpu nun içinde : En hızlı alan burasıdır .Bu alan Cpu nun içinde

bulunur , ve derleyicinin(compiler) ihtiyaclarına gore pay bulunur , ve derleyicinin(compiler) ihtiyaclarına gore pay edilir . Bu alanda bizim direk bir kontrolumuz yoktur.edilir . Bu alanda bizim direk bir kontrolumuz yoktur.

    StackStack : Bulunduğu nokta RAM (random-access memory) : Bulunduğu nokta RAM (random-access memory) dır . Bu alanda  bulunan “stack pointer” ına direk olarak dır . Bu alanda  bulunan “stack pointer” ına direk olarak Cpu dan destek vardır . Stack pointer aşağıya inince yeni Cpu dan destek vardır . Stack pointer aşağıya inince yeni bir hafiza alanı oluşturur , yukarı kalkınca ise  hafızayı bir hafiza alanı oluşturur , yukarı kalkınca ise  hafızayı alanını bırakır . Java derleyicisi programı oluşturmadan alanını bırakır . Java derleyicisi programı oluşturmadan evvel  , stack üzerinde oluşturulacak olan verilerin evvel  , stack üzerinde oluşturulacak olan verilerin boyutlarını ve ömürlerini (lifetime)  bilmek zorundadır  boyutlarını ve ömürlerini (lifetime)  bilmek zorundadır  çünkü stack pointer i aşağı ve yukarı hareket ettirecek çünkü stack pointer i aşağı ve yukarı hareket ettirecek olan kodu oluşturması gerekmektedir . Stack üzerinde olan kodu oluşturması gerekmektedir . Stack üzerinde referansların kendileri bulunur.referansların kendileri bulunur.

Page 24: NESNEYE DAYALI PROGRAMLAMA

Heap Heap : Burası genel amaçlı  bir hafıza havuzudur . Stack : Burası genel amaçlı  bir hafıza havuzudur . Stack alanının tersine , derleyici  burada ne kadar hafıza pay alanının tersine , derleyici  burada ne kadar hafıza pay edileceğini bilmek zorunda değildir .Bu büyük bir  rahatlık edileceğini bilmek zorunda değildir .Bu büyük bir  rahatlık getirmektedir çünkü ne zaman bir obje yaratmak istersek getirmektedir çünkü ne zaman bir obje yaratmak istersek sadece  sadece  new new  anahtar kelimesini kullanarak  bu alanda bir  anahtar kelimesini kullanarak  bu alanda bir yer kendimize tahsis etmiş oluruz .Bu kadar rahatlığın yer kendimize tahsis etmiş oluruz .Bu kadar rahatlığın karşılığında ise ödenmesi gereken fatura  hızdır . Heap de karşılığında ise ödenmesi gereken fatura  hızdır . Heap de yer ayırmak icin harcanan zaman , stack alanında yer yer ayırmak icin harcanan zaman , stack alanında yer ayırmaktan daha fazladır.Heap de objelerin kendisi durur. ayırmaktan daha fazladır.Heap de objelerin kendisi durur. 

Statik Alan Statik Alan : Bu alanda RAM de bulunur.Statik alanda yer : Bu alanda RAM de bulunur.Statik alanda yer alan veriler , programın çalışması süresince  orada yaşarlar alan veriler , programın çalışması süresince  orada yaşarlar . Tüm objeler  bu statik verileri görebilirler  , ortak bir alan . Tüm objeler  bu statik verileri görebilirler  , ortak bir alan gibi düşünebiliriz  . Veriyi statik yapmak icin gibi düşünebiliriz  . Veriyi statik yapmak icin static static kelimesini değişkenin önüne getirmemiz yeterli olur . kelimesini değişkenin önüne getirmemiz yeterli olur . Objelerin kendileri bu alanda yer almazlar.Objelerin kendileri bu alanda yer almazlar.

Page 25: NESNEYE DAYALI PROGRAMLAMA

Sabit Bellek Sabit Bellek : Programın içindeki sabit değerlerin içinde : Programın içindeki sabit değerlerin içinde bulundukları yerdir . Tercihen ROM(read only memory) bulundukları yerdir . Tercihen ROM(read only memory) da da yer alabilirler .da da yer alabilirler .

Non-RAM BelekNon-RAM Belek : Bazı durumlarda uyguların içersinde : Bazı durumlarda uyguların içersinde oluşturduğumuz objelerin,uygulama sonlandıktan sonra oluşturduğumuz objelerin,uygulama sonlandıktan sonra bile varlıklarını sürdürmelerini isteriz.bile varlıklarını sürdürmelerini isteriz.

1 ) 1 ) Akışkan Objeler (streamed objects) Akışkan Objeler (streamed objects)  : Bu objeler ,  : Bu objeler , genellikle ağ(network) üzerindeki başka bir makinaya genellikle ağ(network) üzerindeki başka bir makinaya gönderilmek üzere byte akıntılarına dönüştürülürler.gönderilmek üzere byte akıntılarına dönüştürülürler.

2 ) 2 ) Kalıcı Objeler ( persistent objects) : Kalıcı Objeler ( persistent objects) :  Bu objeler   Bu objeler  kendi durumlarını(state) saklarlar ve  diskimizde kendi durumlarını(state) saklarlar ve  diskimizde saklanırlar . Kendi durumlarını saklamaktan kasıt ise saklanırlar . Kendi durumlarını saklamaktan kasıt ise özelliklerinin(attribute) değerlerinin korunmasıdır. özelliklerinin(attribute) değerlerinin korunmasıdır.

Page 26: NESNEYE DAYALI PROGRAMLAMA

İlkel Tipler   İlkel Tipler  

Java da bulunan özel bir grup daha vardır . Bu Java da bulunan özel bir grup daha vardır . Bu grup a ilkel (primitive) tipler denir. grup a ilkel (primitive) tipler denir.

Bu tipleri uygulama yazarken çok kez Bu tipleri uygulama yazarken çok kez kullanırız. Bu sebepten bu ilkel tipleri heap kullanırız. Bu sebepten bu ilkel tipleri heap alanındaalanında new  new  anahtar kelimesi ile oluşturmak anahtar kelimesi ile oluşturmak pek de avantajlı olmamaktadır . pek de avantajlı olmamaktadır .

Bunun yerine bu ilkel tiplerin stack alanında Bunun yerine bu ilkel tiplerin stack alanında saklanması çok iyi performans vermektedir.saklanması çok iyi performans vermektedir.

Yanlız buradaki espiri , her ilkel değişken bir Yanlız buradaki espiri , her ilkel değişken bir referans değildir , bu ilkel tipler değerlerini referans değildir , bu ilkel tipler değerlerini kendi üzerlerinde taşırlar. kendi üzerlerinde taşırlar.

Page 27: NESNEYE DAYALI PROGRAMLAMA

Bu ilkel tiplerin birer adet sarmalıyıcı(wrapper) Bu ilkel tiplerin birer adet sarmalıyıcı(wrapper) class ları bulunur . Bunun anlamı eğer heap class ları bulunur . Bunun anlamı eğer heap alanında ilkel olmayan (nonprimitive) bir tip alanında ilkel olmayan (nonprimitive) bir tip oluşturmak istiyorsanız o zaman bu oluşturmak istiyorsanız o zaman bu sarmalıyıcı(wrapper) class kullanabilirsiniz. sarmalıyıcı(wrapper) class kullanabilirsiniz.

char c = 'x' ; // ilkel tipchar c = 'x' ; // ilkel tip

Character C = new Character(c); // sarmalıyıcı class Character C = new Character(c); // sarmalıyıcı class

Page 28: NESNEYE DAYALI PROGRAMLAMA

Geçerlilik Alan(Scope) Geçerlilik Alan(Scope)

Bir çok programlama dilinde Bir çok programlama dilinde değişkenlerin geçerlilik alanı kavramı değişkenlerin geçerlilik alanı kavramı bulunur.Java , C ve C++ dillerindeki bulunur.Java , C ve C++ dillerindeki değişkenlerin geçerlilik alanlarını örnekler değişkenlerin geçerlilik alanlarını örnekler ile göstermeye çalışalım.   ile göstermeye çalışalım.  

Page 29: NESNEYE DAYALI PROGRAMLAMA

Bir değişken sadece kendi geçerlilik alanının sonunda Bir değişken sadece kendi geçerlilik alanının sonunda kadar geçerli olur . kadar geçerli olur .

Aşağıdaki örnek C ve C++ için doğru , Java Aşağıdaki örnek C ve C++ için doğru , Java programlama dili için  programlama dili için  yanlışyanlış bir ifadedir. bir ifadedir.

Örneğimizde görüldüğü üzere dış alan , iç alanı kapsamaktadır. Java dilinde , dış alanda bir değişken belirtilmiş ise bu değişken iç alanda da hayatını sürdürmeye devam eder.

Page 30: NESNEYE DAYALI PROGRAMLAMA

Geçerlilik Alanı (Scope of Objects)Geçerlilik Alanı (Scope of Objects)

Java dilinde objelerinin ömürleri , ilkel tiplere göre daha Java dilinde objelerinin ömürleri , ilkel tiplere göre daha değişiktir .değişiktir .

Yukarıdaki gibi bir örnekde , if koşuluna kesinlikle girilecektir , if koşuluna girdiği anda String objesini heap alanında yaratacaktır , bu yeni yaratılan String objemizi , "s" String tipindeki referansımızla kontrol etmekteyiz.Peki if koşulundan çıkıltığında neler olucaktır ?

Page 31: NESNEYE DAYALI PROGRAMLAMA

Geçerlilik alanını sona erdiğinden Geçerlilik alanını sona erdiğinden "s""s" referansımız artık referansımız artık kullanılamıyacak hale gelecektir ama ya heap deki kullanılamıyacak hale gelecektir ama ya heap deki StringString objesine neler olacaktır ? objesine neler olacaktır ?

Buradaki cevap basittir , Çöp toplayıcı(Garbage Buradaki cevap basittir , Çöp toplayıcı(Garbage Collector) devreye girdiği an heap alanındaki bu Collector) devreye girdiği an heap alanındaki bu erişilemezerişilemez ve ve çöp halineçöp haline gelmiş olan gelmiş olan StringString objesini objesini hafızadan silecektir.hafızadan silecektir.

Yukarıda bahsettiğimiz hikaye C++ dilinde büyük bi r Yukarıda bahsettiğimiz hikaye C++ dilinde büyük bi r sorundur, çünkü C++ dilinde oluşturulan her objeyi yok sorundur, çünkü C++ dilinde oluşturulan her objeyi yok etme sorumluluğu yine kodu yazan kişiye aittir. Eğer etme sorumluluğu yine kodu yazan kişiye aittir. Eğer kodu yazan kişi oluşturmuş olduğu herhangi bir objeyi kodu yazan kişi oluşturmuş olduğu herhangi bir objeyi daha sonradan yok etmeyi unutursa hafıza kaçakları daha sonradan yok etmeyi unutursa hafıza kaçakları oluşmaya başlayacaktır. oluşmaya başlayacaktır.

Page 32: NESNEYE DAYALI PROGRAMLAMA

Yeni sınıf oluşturma Yeni sınıf oluşturma

Java da kendimize özgü nasıl bir sınıf Java da kendimize özgü nasıl bir sınıf oluşturabiliriz sorusuna yanıt olarak oluşturabiliriz sorusuna yanıt olarak aşağıdaki örnek iyi bir cevap aşağıdaki örnek iyi bir cevap olmayacaktırolmayacaktır. Gayet ilkel ve gereksiz bir . Gayet ilkel ve gereksiz bir sınıf (class) oluşturduk ,hiç bir sınıf (class) oluşturduk ,hiç bir fonksiyonelitesi olmayan bir sınıf . Bu fonksiyonelitesi olmayan bir sınıf . Bu sınıfımızı ilerleyen safhalarda sınıfımızı ilerleyen safhalarda geliştireceğiz . geliştireceğiz .

Page 33: NESNEYE DAYALI PROGRAMLAMA

Alanlar ve Metodlar (Fields and Method)Alanlar ve Metodlar (Fields and Method) Bir sınıf(class) tanımladığımız zaman , bu Bir sınıf(class) tanımladığımız zaman , bu

sınıfımızın üzerinde  iki sey yapabiliriz.sınıfımızın üzerinde  iki sey yapabiliriz.

1 ) 1 ) AlanlarAlanları tanımlarız  . Bunlar ilkel tipler ı tanımlarız  . Bunlar ilkel tipler (primitive) olabilirler veya bir obje ile iletişim (primitive) olabilirler veya bir obje ile iletişim kurabilmemiz için o obje tipindeki bir referans  kurabilmemiz için o obje tipindeki bir referans  olabilirler. olabilirler.

Örnek 1:Örnek 1:

Eğer alanlara , onlar ilk oluştuğunda , ilk değerlerini vermek istiyorsak ;Örnek 2:

Page 34: NESNEYE DAYALI PROGRAMLAMA

Bu alanları(field)  kullanmadan evvel onların ilk değerlerini almış Bu alanları(field)  kullanmadan evvel onların ilk değerlerini almış (initialize)olmaları gerekmektedir.Peki (initialize)olmaları gerekmektedir.Peki ör-1ör-1 de biz herhangi bir ilk de biz herhangi bir ilk değer verme işlemi  değer verme işlemi  yapmadıkyapmadık ve java bize bu konuda kızmadı , ve java bize bu konuda kızmadı , neden ?  neden ?  

Bu sorunun cevabı aşağıdaki tabloda yatıyor .Eğer bir Bu sorunun cevabı aşağıdaki tabloda yatıyor .Eğer bir sınıfın(Class) alanlarını oluşturup onlara ilk değerlerini vermez sınıfın(Class) alanlarını oluşturup onlara ilk değerlerini vermez isek -ki isek -ki ör-1ör-1 de yaptığımız tamamen böyle bir harekettir o zaman de yaptığımız tamamen böyle bir harekettir o zaman java bu sınıf alanlarına kendi mevcut-varsayılan (default) ilk java bu sınıf alanlarına kendi mevcut-varsayılan (default) ilk değerlerini verir , bu mevcut değerleri yukarıdaki tablodan değerlerini verir , bu mevcut değerleri yukarıdaki tablodan inceliyebilirsiniz .inceliyebilirsiniz .

Page 35: NESNEYE DAYALI PROGRAMLAMA

2 ) 2 ) MetodlarMetodlar , objelerimizin işe yarar hareketler , objelerimizin işe yarar hareketler yapmasına olanak veren kısımlar diye bir giriş yapsam yapmasına olanak veren kısımlar diye bir giriş yapsam sanırım yanlış olmaz . İşe yarar hareketlerden demek sanırım yanlış olmaz . İşe yarar hareketlerden demek istediğim, objemizin canlı olması , yani ona bir soru istediğim, objemizin canlı olması , yani ona bir soru sorduğumda bana cevap verebilmesi veya belli sorduğumda bana cevap verebilmesi veya belli koşullarda kendisine önceden verilmiş kriterlere göre koşullarda kendisine önceden verilmiş kriterlere göre karar vermesini sağlamak.Metodları bu kadar cok abartı karar vermesini sağlamak.Metodları bu kadar cok abartı anlattıktan sonra biraz daha derinlemesine inceliyelim anlattıktan sonra biraz daha derinlemesine inceliyelim istersen.istersen.

Metod  iskeleti Metod  iskeleti 

Page 36: NESNEYE DAYALI PROGRAMLAMA

Şimdi bir önceki slayttaki metod iskeletinde tanımlanmış olan kısımları Şimdi bir önceki slayttaki metod iskeletinde tanımlanmış olan kısımları teker teker açıklıyalım teker teker açıklıyalım

dönüşTipidönüşTipi = Metodların iki şansı vardır , ya bir değer döndürürler veya = Metodların iki şansı vardır , ya bir değer döndürürler veya hiçbirşey döndürmezler.Değerden kasıt ettiğim metodlar ya bir ilkel tip hiçbirşey döndürmezler.Değerden kasıt ettiğim metodlar ya bir ilkel tip döndürebilirler (int , double,boolean) veya bir obje döndürebilirler (String , döndürebilirler (int , double,boolean) veya bir obje döndürebilirler (String , Double , Integer , YeniBirSinif). Eğer bir metod hiçbirsey döndürmüyorsa Double , Integer , YeniBirSinif). Eğer bir metod hiçbirsey döndürmüyorsa o zaman o zaman voidvoid ekini metodun başına yerleştiririz . ekini metodun başına yerleştiririz .

metodunİsmimetodunİsmi = Javanın kendisine ait olan kelimeler( = Javanın kendisine ait olan kelimeler(if , else , import , if , else , import , class , return.class , return..vb) ve türkçe krakterler hariçinde istediğiniz ismi .vb) ve türkçe krakterler hariçinde istediğiniz ismi kullanabilirsiniz ama metodlar bir eylem içerdikleri için , metod kullanabilirsiniz ama metodlar bir eylem içerdikleri için , metod isimlerininde bir eylemi belirtmesi tercih edilir örneğin : isimlerininde bir eylemi belirtmesi tercih edilir örneğin : sayiSirala() sayiSirala() , , enBuyukSayiBul()enBuyukSayiBul(),,sqlCalistir()sqlCalistir() gibi . Burada dikkat edecek olursanız , gibi . Burada dikkat edecek olursanız , metod isimlerinin ilk harfleri küçük sonra gelen ek kelime ise büyüktür. metod isimlerinin ilk harfleri küçük sonra gelen ek kelime ise büyüktür. 

arguman listesiarguman listesi= Metod içersinde işlemler yapabilmek için gerekli olan = Metod içersinde işlemler yapabilmek için gerekli olan parametreler.Bu parametreler  ilkel tipte veya Obje olabilirler.parametreler.Bu parametreler  ilkel tipte veya Obje olabilirler.

metod gövdesimetod gövdesi =  Bu kısım kodu yazan kişinin yaratıcılığına bağlı olarak =  Bu kısım kodu yazan kişinin yaratıcılığına bağlı olarak değişmektedir.   değişmektedir.  

Page 37: NESNEYE DAYALI PROGRAMLAMA

Bu kadar açıklamadan sonra gerçek bir Bu kadar açıklamadan sonra gerçek bir metod örneği verebiliriz .metod örneği verebiliriz .

boyutDondur() metodunu herhangi String objesini parametre olarak alıyor ve bu String objesinin boyutunu geri döndürüyor. Metodumuzun geri döndürdüğü değer ilkel bir tip olan int . Herhangi bir değer geri döndürebilmek için return anahtar kelimesini kullanmamız gerekli .

Met-Ör1

Met-Ör2

Page 38: NESNEYE DAYALI PROGRAMLAMA

Metod-Ör2 de ise  elmaHesapla() metodu  Metod-Ör2 de ise  elmaHesapla() metodu  intint tipinde parametre alıyor , sonra yeni bir tipinde parametre alıyor , sonra yeni bir StringString objesi oluşturup bunu geri döndürüyor . objesi oluşturup bunu geri döndürüyor .

Buradaki ilginç olabilecek olan husus , int olan bir Buradaki ilginç olabilecek olan husus , int olan bir değişkeni iki ile çarpıp  sonradan + operatörü ile değişkeni iki ile çarpıp  sonradan + operatörü ile String in sonuna eklenmiş olması olabilir .String in sonuna eklenmiş olması olabilir .

Diğer dillerde bu işlem için belli bir çevirici Diğer dillerde bu işlem için belli bir çevirici fonksiyona ihtiyac duyardik , örneğin delphi de fonksiyona ihtiyac duyardik , örneğin delphi de intToStr() fonksiyonunu çok kere kullandığımı intToStr() fonksiyonunu çok kere kullandığımı hatırlarım, ama java da String bir ifadeden sonra hatırlarım, ama java da String bir ifadeden sonra gelen herhangi bir tipdeki değişken otomatik gelen herhangi bir tipdeki değişken otomatik olarak String e çevrilir . olarak String e çevrilir . 

Page 39: NESNEYE DAYALI PROGRAMLAMA

" toplam elma sayisi = "  " toplam elma sayisi = "  ifadesi String bir ifadesi String bir ifadedir ve bu ifadeden sonra gelecek olan her ifadedir ve bu ifadeden sonra gelecek olan her türlü tip (ilkel veya Obje) , otomatik olarak String türlü tip (ilkel veya Obje) , otomatik olarak String dönüştürülürler.dönüştürülürler.

Eğer javanın yardım dokumanlarından Eğer javanın yardım dokumanlarından ObjectObject tipine ait bilgilere bakarsanız , her objenin hali tipine ait bilgilere bakarsanız , her objenin hali hazırda hazırda toString()toString() metodunun var olduğunu metodunun var olduğunu görürsünüz . görürsünüz .

Eğer bir Obje otomatik veya değil  String Eğer bir Obje otomatik veya değil  String objesine dönüştürülmek istenirse bu objenin objesine dönüştürülmek istenirse bu objenin toString() metodu çağrılır .toString() metodu çağrılır .

Page 40: NESNEYE DAYALI PROGRAMLAMA

Metod-Ör3  örneğimizde ,  hesapla() metodu iki adet Metod-Ör3  örneğimizde ,  hesapla() metodu iki adet parametre almaktadır ve geriye hiçbirşey parametre almaktadır ve geriye hiçbirşey döndürmüyeceğini bize açık açık döndürmüyeceğini bize açık açık voidvoid anahtar kelimesi anahtar kelimesi ise söylemektedir. Bu örneğimizde dikkat etmemiz ise söylemektedir. Bu örneğimizde dikkat etmemiz gereken ikinci nokta ise  metodların içersinde gereken ikinci nokta ise  metodların içersinde tanımladığımız değişkenlerin ilk değerlerini kesinlikle tanımladığımız değişkenlerin ilk değerlerini kesinlikle ama kesinlikle  bizim  tarafımızdan belirtilmesi ama kesinlikle  bizim  tarafımızdan belirtilmesi gerekmektedir. gerekmektedir. 

Met-Ör-3

Page 41: NESNEYE DAYALI PROGRAMLAMA

  Sınıf(Class) lara ait global değişkenlere Sınıf(Class) lara ait global değişkenlere (veya alanlarda diyebiliriz hepsi aynı anlamı (veya alanlarda diyebiliriz hepsi aynı anlamı taşımaktadır) ilk değerlerini vermediğimiz taşımaktadır) ilk değerlerini vermediğimiz zaman java bu değişkenlere ilk mevcut - zaman java bu değişkenlere ilk mevcut - varolan değerleri kendi verir ,ama metod varolan değerleri kendi verir ,ama metod içersinde tanımlanan değişkenler için aynı içersinde tanımlanan değişkenler için aynı durum söz konusu değil , bu sebepten durum söz konusu değil , bu sebepten dolayı dolayı toplamboyuttoplamboyut değişkeninin değişkeninin tanımlanma şekli yanlıştır.tanımlanma şekli yanlıştır.

Page 42: NESNEYE DAYALI PROGRAMLAMA

Metod-Ör4 , örneğinin ana fikri Metod-Ör4 , örneğinin ana fikri voidvoid ile ile returnreturn anahtar kelimelerinin aynı metod anahtar kelimelerinin aynı metod içinde kullanımını göstermektir.  içinde kullanımını göstermektir.  if - elseif - else kontrol mekanizmalarını henüz görmedik kontrol mekanizmalarını henüz görmedik ama bu örnek için kullanılmaları gerekliydi.ama bu örnek için kullanılmaları gerekliydi.

Buradaki return parametresi metodun Buradaki return parametresi metodun acilen terk edilmesi gerektigini anlatır .acilen terk edilmesi gerektigini anlatır .

   

Met-Ör-4

Page 43: NESNEYE DAYALI PROGRAMLAMA

İlk java programımızİlk java programımız

İlk örneğimizi adım adım açıklayalım; fakat şunu hemen belirİlk örneğimizi adım adım açıklayalım; fakat şunu hemen belirtmek gerekir kitmek gerekir ki, , java büyük ve küçük harfe java büyük ve küçük harfe karşı duyarlıdır karşı duyarlıdır (case sensitive).(case sensitive).

public yerine PUBLIC yazarsanız hata ile karşılaşırsınız. public yerine PUBLIC yazarsanız hata ile karşılaşırsınız. 

Ör-ilkJava1

Page 44: NESNEYE DAYALI PROGRAMLAMA

public class Selam  : public class Selam  :  Bu kısımda yeni bir sınıf oluşturuyoruzBu kısımda yeni bir sınıf oluşturuyoruz public static void main(String args[]) : public static void main(String args[]) :  Javada bir sınıfın tek başına çalışmasını istiyorsak Javada bir sınıfın tek başına çalışmasını istiyorsak

(standalone)  bu metodu yazmak zorundayız . Bu metodu  (standalone)  bu metodu yazmak zorundayız . Bu metodu  sınıflar için bir başlagıç noktası olarak var sayabiliriz.Burada sınıflar için bir başlagıç noktası olarak var sayabiliriz.Burada iki bilinmedik konuyu ele almak gereklidir, birincisi statik iki bilinmedik konuyu ele almak gereklidir, birincisi statik metodlar , ikincisi ise diziler (array).metodlar , ikincisi ise diziler (array).

    statik metodlar : statik metodlar : statik metodları , objeye bağımlı olmayan statik metodları , objeye bağımlı olmayan

metodlar diye tanımlıyabiliriz. metodlar diye tanımlıyabiliriz. Bu metodların kullanılması için objenin oluşturulmuş olması Bu metodların kullanılması için objenin oluşturulmuş olması

gerekmez . gerekmez .

Page 45: NESNEYE DAYALI PROGRAMLAMA

Ör-Normal1 de uyariYap() metodu statik bir metod değildir . Bu Ör-Normal1 de uyariYap() metodu statik bir metod değildir . Bu yüzden bu metodun çağrıla bilmesi için TestNormal objesinin yüzden bu metodun çağrıla bilmesi için TestNormal objesinin oluşturulması gerekmedir  , bu kısıma dikkat lütfen .oluşturulması gerekmedir  , bu kısıma dikkat lütfen .

Şimdi diğer örneğimize geçelim . Şimdi diğer örneğimize geçelim . 

  

Ör-Normal1

Ör-Statik1

Page 46: NESNEYE DAYALI PROGRAMLAMA

Bu örneğimizde tek değişen sey uyariYap() Bu örneğimizde tek değişen sey uyariYap() metodunun statik olmuş olmasi değildir , metodunun statik olmuş olmasi değildir , bu metodun çağrılma şeklide değişmiştir. bu metodun çağrılma şeklide değişmiştir.

uyariYap() metodu artik TestStatik objesine bağlı uyariYap() metodu artik TestStatik objesine bağlı bir metod değildir , yani uyariYap() metodunu bir metod değildir , yani uyariYap() metodunu çağıra bilmemiz için çağıra bilmemiz için TestStatik TestStatik classını  classını  oluşturmamız oluşturmamız gerekmezgerekmez..

main() metodunda da işler aynıdır , fakat main() main() metodunda da işler aynıdır , fakat main() metodunun  java da çok farklı bir yeri metodunun  java da çok farklı bir yeri vardır.main() metodu java uygulamaları için bir vardır.main() metodu java uygulamaları için bir başlangıç noktasıdır .başlangıç noktasıdır .

Page 47: NESNEYE DAYALI PROGRAMLAMA

Diziler (Arrays) : Diziler (Arrays) : 

main() metodu parametre alarak String obje dizisi  alır , bu String main() metodu parametre alarak String obje dizisi  alır , bu String obje dizinin  içersinde konsoldan java uygulamasına gönderilen obje dizinin  içersinde konsoldan java uygulamasına gönderilen parametreler bulunur .  parametreler bulunur .  

args[0] : konsoldan girilen 1. parametre değerini taşır ..  args[0] : konsoldan girilen 1. parametre değerini taşır ..  args[1] : konsoldan girilen 2. parametre değerini taşır ..  args[1] : konsoldan girilen 2. parametre değerini taşır ..  args[n] : konsoldan girilen n. parametre değerini taşır ..  args[n] : konsoldan girilen n. parametre değerini taşır ..  Javada diziler sıfır dan başlarlar . Javada diziler sıfır dan başlarlar . System.out.println("Selamlar !") : System.out.println("Selamlar !") :  Bu komut satırı , bilgileri konsola(ekrana) basmamızı sağlar . Java Bu komut satırı , bilgileri konsola(ekrana) basmamızı sağlar . Java

nin dokümanlarına bakarsak , nin dokümanlarına bakarsak ,  SystemSystem sınıfınına ait  sınıfınına ait  staticstatic bir metod olan olan bir metod olan olan outout methodunun methodunun

var olduğunu görürüz. Bu yüzden var olduğunu görürüz. Bu yüzden SystemSystem sınıfını oluşturmak  sınıfını oluşturmak  zorunda degiliz (new System() gibi ). zorunda degiliz (new System() gibi ). outout methodu bize methodu bize printStreamprintStream objesi oluşturur ve  objesi oluşturur ve  printStreamprintStream objesinin objesinin println()println() methodu ile bilgileri konsola(ekrana) bastırırız.  methodu ile bilgileri konsola(ekrana) bastırırız.