Java Programlama ve NESNEYE DAYALI PROGRAMLAMA

Slides:



Advertisements
Benzer bir sunumlar
Java Programlama Giriş/Çıkış
Advertisements

STRİNG FONKSİYONLARI.
JAVA TEMELLERİ GİRİŞ JAVA TEMELLERİ GİRİŞ signalsec.com & mialkan.com.
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Değişken , Veri Türleri ve Operatörler
Değişkenler ve bellek Değişkenler
JavaScript Birinci Hafta.
Java Uygulamaları Konsol Uygulaması.
Göstericiler (Pointers)
Java Uygulamalarına Giriş
Programlama-II (Java ile Bilgisayar Programlama)
Nesneye Dayalı Programlama
Bölüm 2 C Dilinin Temelleri
C Programlama Diline Giriş
Bölüm 2 – Java Uygulamalarına Giriş
Bölüm 4 – Kontrol İfadeleri:1.kısım
OOP4 LAB.
Nesneye Yönelik Programlama
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Nesneye Dayalı Programlama
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
METODLAR.
JAVADA PROGRAM DENET İ M İ VE OPERATÖRLER. int a ; a=4 ; // do ğ ru bir atama 4=a ; // yanlış bir atama!
METODLAR Canan Işıl. 1 İçindekiler Açıklamalar, Örnekler, Sorularınız? Kaynakça, Teşekkürler..
JAVA İ LE PROGRAMLAMAYA G İ R İ Ş Ekim Dr. Galip Aydın.
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
Görsel C# Programlama Güz 2009 (6. Hafta).
C ile Programlamaya Giriş
DEĞİŞKENLER, VERİ TÜRLERİ VE OPERATÖRLER
FONKSİYONLAR.
JAVA İLE PROGRAMLAMAYA GİRİŞ
Önceki Dersi Hatırlama !!
JAVA’DA DÖNGÜLER.
JAVA’DA DİZİLER Dr.Galip AYDIN.
Chapter 1: A First Program Using C#
VERİ TİPLERİ VE DEĞİŞKENLER
Bil 102 Bölüm 6 Diziler.
Bölüm 7 - Diziler İçerik 7.1 Giriş 7.2 Diziler 7.3 Dizileri Tanımlama 7.4 Dizileri Kullanan Örnekler 7.5 Referanslar ve Referans Parametreler.
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
JAVA PROGRAMLAMA ORNEKLER
 2006 Pearson Education, Inc. All rights reserved. Görsel C# ile Windows Programlama Güz 2009 (2. Hafta)
Görsel C# ile Windows Programlama
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
TEMEL php Dersleri - Ders 1 Değişgenler
BTP206– Görsel Programlama II
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
BMS-301 Kabuk Programlama Güz 2015 (5. Sunu) (Yrd. Doç. Dr. Deniz Dal)
Kompozisyon Bir Sınıf diğer sınıf nesne referanslarını içinde barındırabilir. Bu referanslar sınıfın üyeleridir.
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
VERİ ve BELLEK & DEĞİŞKENLERİN SAKLANMASI Asst.Prof.Dr.Misket YEKTAY Gizem AYIK.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
Programlamaya Giriş-I Bölüm-1. Algoritma Algoritma günlük yaşamımızda yaptığımız işler sırasında sıklıkla kullandığımız bir yöntemdir. Algoritma, bir.
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ
C Programlama Dili Bilgisayar Mühendisliği.
ACTIONSCRIPT TEMELLER İ SAVAŞ TUNÇER
NESNEYE DAYALI PROGRAMLAMA
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
Veri Tipleri 12/4/2018.
Bilgisayar Programlama
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Bilimi Problem Çözme Süreci-2.
Java İle Programlamaya GİRİş
Nesneye Dayalı Programlama 1
GARBAGE COLLECTOR (  ÇÖP TOPLAYICI ).
Sunum transkripti:

Java Programlama ve NESNEYE DAYALI PROGRAMLAMA

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. Java teknolojisi kullanılarak aynı uygulamayı değişik ortamlarda çalıştırabiliriz – örneğin Pc lerde , Macintosh bilgisayarlarda , hatta cep telefonlarında . Java Nedir?

Java yı hem programlama dili , hemde bir ortam olarak düşenebiliriz Java yı hem programlama dili , hemde bir ortam olarak düşenebiliriz . Programlama dili olarak , açık , nesneye yönelik (object-oriented) , güvenli , sağlam , internet için elverişli bir teknoloji diyebiliriz . Ortam olarak da işletim sistemi , veri tabanı (database) , ve orta katman (middleware) teknolojileri bulmak mümkündür. Gerek Java , gerekse Java’ya bağlı alt teknolojiler , VB veya Borland Delphi gibi sadece belli bir firma tarafından geliştirilmiş olan başlı başına ürünler değillerdir .

Java ve Java’ya bağlı alt teknolojiler , Sun Microsystems tarafından verilmiş açıklamalardan oluşmaktadır . Bu açıklamalara sadık kalan her yazılım fırması JVM(Java Sanal Makina-Java Virtual Machine = Java) veya Java’ya bağlı alt teknolojiler yazabilir/gerçekleştirebilir.

Eğer bu açıklamalara (specifications) sadık kalmayıp , standart dışı bir JVM veya Java’ya bağlı alt teknoloji yazmaya/gerçekleştirmeye kalkarsanız hukuki bir suç işlemiş olursunuz(Microsoft firmasının yaptığı gibi). Şu anda en yaygın kullanılan JVM ler , IBM’in ve Sun Microsystems ın üretmiş olduklarıdır, ayrıca HP , Apple ve daha bir çok firmanın üretmiş oldukları JVM ler bulunmaktadır

Java ile ne yapılabilir? Java Programlama dili ile projelerimizi diğer programlama dillerine göre daha kolay ve sağlıklı bir şekilde yapmanız mümkündür . Kısaca göz atacak olursak , Java ile ;   ·    GUI (graphical user interface , grafiksel kullanıcı ara yüzü) uygulamaları , appletler. ·    Distributed components   (ör . EJB, RMI, CORBA). ·    Servlet , Jsp (web tabanlı uygulamalar). ·    Veri tabanlarına erişim ile alakalı uygulamalar. ·    Cep telefonları , Smart kart lar için uygulamalar . ·    Ve daha niceleri ….    için uygulamalar yazmamız mümkünkür. Java ile ne yapılabilir?

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

Aşağıdaki şekillerde , javanın kaynak kodundan, çalışmasına kadar olan evreleri gösterilmektedir. Derleme anı (Compile Time) Çalışma anı ( Run-time)  Şekil 2 Byte koduna çevrilen kaynak kod , JVM tarafından yorumlanır ve uygulama çalıştırılmış olur.

Java uygulaması örneği Ufak bir Java uygulaması örneği , bu örneği birazdan detaylı olarak inceliyeceğiz. public class Selam { public static void main(String args[]) { System.out.println("Selamlar !"); } }

Ş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.

1995 Java Teknolojisinin ilk çıkış yılı ; ilk olarak applet teknolojisinin dikkat çektiği seneler. 1996 Java Development Kit (JDK) v1.0 çıkartıldı. Temel seviyeli işlevleri içeren bir versiyon (ör. soket programlama, dosya I/O, GUI) 1997 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 . 1998 JDK 1.2 çıkartıldı . JFC/Swing yayınlandı- aynı sene içersinde 500,000+ download gerçekleştirildi. 1999 Java teknolojisi J2SE, J2EE ve J2ME olarak 3’e bölündü . Java HotSpot (performans arttırıcı) yayınlandı . JavaServer Pages (JSP) teknolojisi yayınlandı. J2EE platform’u yayınlandı . Linux üzerinde J2SE platformu yayınlandı . 2000 JDK v1.3 çıkartıldı . Java APIs for XML teknolojisi yayınlandı . … Gelişim Evreleri

Javanın başarılı olmasındaki sebebler 1. Çok güzel bir programlama dili olması a. C/C++ da olduğu gibi hafıza problemlerinin olmaması . b. Nesneye yönelik (Object - Oriented) olması . c. C/C++/VB dillerinin aksine dinamik olması . d. Güvenli . e. Internet uygulamarı için elverişli . 2. Platform bağımsız olması : bir kere yaz her yerde çalıştır Javanın başarılı olmasındaki sebebler 

Çöp toplayıcı (Garbage Collector ) Çöp toplayıcı devamlı olarak takip  halindedir.Bir  programın çalışma durumunda , ortaya çıkan ve sonradan kullanılmayan(gereksiz ) objeleri bulur ve onları yok eder. Böylece hafıza yönetiminin (memory management) yükü kodu yazan kişiden javaya geçmiş olur. Diğer dillerde , örneğin C++ da  , oluşturulan objelerin  yok edilme sorumluluğu kodu yazan kişiye aittir . Çöp toplayıcı (Garbage Collector )

Çöp toplayıcının ne zaman ortaya çıkıp temizleme yapamayacağı belli olmaz.Eğer hafızada java için ayrılan kısım dolmaya başlamış ise çöp toplayıcısı devreye girerek kullanılmayan objeleri hafızadan siler. Eğer hafızada kullanılmayan objeler var ama hafızada daha çok boş yer varsa çöp toplayıcısı devreye sokulmaz. Çöp toplayıcısı(garbage collector) JVM in yazılışına (implementation) göre değişkenlikler gösterebilir.

Her programlama dilinin kendine has veri yönetim şekli bulunur Her programlama dilinin kendine has veri yönetim şekli bulunur . Bir programın çalışması süresince objeler oluşturulur . Burada ki soru bizim objelere direk olarak mi kullandiğimiz yoksa onlara dolaylı bir şekilde mi bağlantı sağlayıp kullandığımızdir.  Java da herşeye obje olarak davranırız. Herseyin obje  olmasına rağmen objeleri yönetmek için “ referanslar” kullaniriz . Java bir obje dilidir

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

Elimizde uzaktan kumanda (referans)olmasi , televizyonumuzun (obje) olucağı anlamina gelmez . Uzaktan kumandamiz (referans) da tek başına hayatı sürdürebilir.  String kumanda; // kumanda referansı şu an için String bir objeye bağlı değil.

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 olur  ? tabii ki hata mesajı ile karşılasırız , sebebi ise bu  referansın herhangi bir objeye bağlı olmamasıdır. Peki referansımızı bir obje bağlıyalım :

örnek-1 String kumanda= new String("Selamlar") ; örnek-2 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

Sınıf (Class) nedir ? Obje nedir ? Sınıf ve Obje i bir benzetme ile açıklayalım. Sabun fabrikasında yeni bir sabun dizaynı üzerinde çalıştınız ve ortaya bir kalıp çıkartdınız artik üretim aşamasına geçmek istiyorsunuz. Bu kalıpda sabun un hangi boyutlarda olucağı, hangi renkde olucağı , nasil kokucaği vb.. gibi bilgiler hepsi sizin tarafınızdan tespit edilmişdir. Üretim aşamasına geçildiğinde hep aynı sabun kalıbını kullanarak yeni sabunlar üretmeniz mümkün olacaktır , sabun kalıbının tasarımı bir kere yapıldı ama o kalıpdan yola çıkarak n tane sabun objesi üretmeniz mümkün olmaktadır. Sınıf (Class) nedir ? Obje nedir ?

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

Java da depolanan (Storage)veriler nerede durmakda Depo, toplam 6 alandan  oluşur  , Bu 6 alanı açıklarsak : Register : En hızlı alan burasıdır .Bu alan Cpu nun içinde bulunur , ve derleyicinin(compiler) ihtiyaclarına gore pay edilir . Bu alanda bizim direk bir kontrolumuz yoktur.   Stack : Bulunduğu nokta RAM (random-access memory) dır . Bu alanda  bulunan “stack pointer” ına direk olarak Cpu dan destek vardır . Stack pointer aşağıya inince yeni bir hafiza alanı oluşturur , yukarı kalkınca ise  hafıza alanını bırakır . Java derleyicisi programı oluşturmadan evvel  , stack üzerinde oluşturulacak olan verilerin boyutlarını ve ömürlerini (lifetime)  bilmek zorundadır  çünkü stack pointer i aşağı ve yukarı hareket ettirecek olan kodu oluşturması gerekmektedir . Stack üzerinde referansların kendileri bulunur. Java da depolanan (Storage)veriler nerede durmakda 

Heap : Burası genel amaçlı bir hafıza havuzudur Heap : Burası genel amaçlı  bir hafıza havuzudur . Stack alanının tersine , derleyici  burada ne kadar hafıza pay edileceğini bilmek zorunda değildir .Bu büyük bir  rahatlık getirmektedir çünkü ne zaman bir obje yaratmak istersek sadece  new  anahtar kelimesini kullanarak  bu alanda bir yer kendimize tahsis etmiş oluruz .Bu kadar rahatlığın karşılığında ise ödenmesi gereken fatura  hızdır . Heap de yer ayırmak icin harcanan zaman , stack alanında yer ayırmaktan daha fazladır.Heap de objelerin kendisi durur.  Statik Alan : Bu alanda RAM de bulunur.Statik alanda yer alan veriler , programın çalışması süresince  orada yaşarlar . Tüm objeler  bu statik verileri görebilirler  , ortak bir alan gibi düşünebiliriz  . Veriyi statik yapmak icin static kelimesini değişkenin önüne getirmemiz yeterli olur . Objelerin kendileri bu alanda yer almazlar.

Sabit Bellek : Programın içindeki sabit değerlerin içinde bulundukları yerdir . Tercihen ROM(read only memory) da da yer alabilirler . Non-RAM Belek : Bazı durumlarda uygulamaların içersinde oluşturduğumuz objelerin,uygulama sonlandıktan sonra bile varlıklarını sürdürmelerini isteriz. 1 ) Akışkan Objeler (streamed objects)  : Bu objeler , genellikle ağ(network) üzerindeki başka bir makinaya gönderilmek üzere byte akıntılarına dönüştürülürler. 2 ) Kalıcı Objeler ( persistent objects) :  Bu objeler  kendi durumlarını(state) saklarlar ve  diskimizde saklanırlar . Kendi durumlarını saklamaktan kasıt ise özelliklerinin(attribute) değerlerinin korunmasıdır.

Java Programları Uygulama Programları Applet bilgisayarda çalıştırmak üzere hazırlanır Applet internet üzerinden diğer bilgisayarlara gönderilip onların üzerinde çalıştırılır

Java da bulunan özel bir grup daha vardır Java da bulunan özel bir grup daha vardır . Bu grup a ilkel (primitive) tipler denir. Bu tipleri uygulama yazarken çok kez kullanırız. Bu sebepten bu ilkel tipleri heap alanında new  anahtar kelimesi ile oluşturmak pek de avantajlı olmamaktadır . Bunun yerine bu ilkel tiplerin stack alanında saklanması çok iyi performans vermektedir. Yanlız buradaki espiri , her ilkel değişken bir referans değildir , bu ilkel tipler değerlerini kendi üzerlerinde taşırlar. İlkel Tipler  

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

Örnek Uygulama Programı public class BirinciOrnek { public static void main (String [] args) System.out.println (“BLGM Java Programlama!”); System.out.println (); System.out.println (“BLGM “); System.out.println (“Java Programlama”); } BirinciOrnek.java (derle) BirinciOrnek.class

Örnek Uygulama Programı Program içinde nesneler ve metotlar “.” notasyonunu kullanarak yazılırlar. System.out.println() sınıf nesne metot println’dan sonra gelen parantez bir metot çağırılması ve parantezin içindekiler metoda gönderilen parametrelerdir.

Örnek Uygulama Programı BirinciOrnek.java (derle) BirinciOrnek.class BirinciOrnek.class – Bayt kodun yer aldığı sınıf dosyası Derleme için: Menu, Compile javac BirinciOrnek.java Programı çalıştırmak için: Menu, Run java BirinciOrnek

Java kaynak kodunun içersine istediğiniz yorumları yazabilmeniz için belli yol izleminiz gerekmektedir.Örneklerimizde yorum satırılarını çokca kulalladığım için bunu en başta açıklama ihtiyacını duydum.  Javada yorum satırlarını belirtme iki şekilde mümkün olur : /*   yorum  */     ,  slash - yildizdan  ,  diğer yildiz- slash arasına kadar istediğiniz yorumu yazabilirsiniz . Uzun satırlı yorumlarda bu yöntemi kullanabilirsiniz. //   yorum  ,     tek satırlık yorum yapmak için idealdir. Kısa yorumlarınız için bu yöntemi kullanabilirsiniz Javada yorum satırı

Java’da ilk programımız: BirinciOrnek Boş satır Programları daha okunabilir yapar Boş satırlar, space ve tabs tuşu ile oluşturulan alanlar Derleyici tarafından ihmal edilirler Sınıf tanımlaması BirinciOrnek ile başlar Her Java programında kullanıcının tanımladığı bir sınıf (class) vardır Anahtar kelimeler: Java için ayrılmış kelimeler class anahtar kelimesinden sonra sınıf ismi gelir Sınıflara isim verme kuralı: her kelimeye büyük harf ile başlanır BirinciOrnek 4 public class BirinciOrnek

Java belirteci Harf , rakam , alt cizgi ( _ ) , dolar işareti ($ ) inden oluşan karakter serisi Rakamla başlanmaz ve boşluk kullanılmaz Examples: Hosgeldin, $deger, _deger, deger7 7deger geçerli değil Java büyük küçük harf ayrımı yapar a1 ve A1 farklıdır

İyi programlama örneği Java sınıf isimlerini büyük harf ile başlayınız ve içinde gecen başka kelimelerin de ilk harfini büyük yazınız. Java programcıları bu kelimelerin sınıf ismi olduğunu bu notasyondan anlarlar.Böylece programın okunabilirliği artar. Ör: BirinciOrnek

Dosyaları saklamak Sol parantez { Dosya ismi sınıf ismine .java eklenerek elde edilmelidir BirinciOrnek.java Sol parantez { Her sınıfın gövdesi bu işaretle başlar Sağ parantez tanımlamayı bitirir }

Her Java uygulamasının bir parçasıdır public static void main( String args[] ) Her Java uygulamasının bir parçasıdır Uygulamalar main kısmından çalışmaya başlar Parantezler main in bir metod olduğunu gösterir Java uygulamaları birden fazla metodlar içerebilir Bunlardan sadece bir tanesinin adı main olmalıdır Metodlar iş yapıp sonuç geri döndürebilir void un anlamı main in bir sonuç geri döndürmeyeceğidir Şimdilik, main‘in içinde olduğu satırı bu şekilde kullanalım Sol parentez metodun gövde kısmını başlatır Sağ parantez tarafından bitirilir } 7 {

Bilgisayara bir işlem yaptırır Bir karakter satırını (string) ekrana yazdırır String – tırnaklar arasındaki karakter dizisi Satır içindeki boşluklar ihmal edilmez System.out Standart çıktı nesnesi Konsola yazdırır Metod System.out.println Bir satırı yazar Bu satır bir işlem yapar Noktalı virgül ile bitirilmeli ; System.out.println( "Java programlamaya hosgeldiniz!" );

Programı çalıştırmak java BirinciOrnek JVM başlatılır JVM .class dosyasını yükler .class uzantısı çalıştırırken yazılır JVM main metodunu çağırır

System. out. print kursorun aynı satırda kalmasını sağlar, System. out System.out.print kursorun aynı satırda kalmasını sağlar, System.out.println kursorun kaldığı satırdan devam eder.

Yeni Satır karakteri (\n) Escape karakterleri Backslash ( \ ) Özel karakterlerin görüntüleneceğini belirtir Yeni Satır karakteri (\n) System.out.print ve System.out.println metodları tarafından özel karakter olarak algılanır İmleçi yeni satırın başına koyar Hosgeldin3.java (Fig. 2.4) Satırlar \n işareti ile bölünür \t boşluk bırakır.\r satır atlatır.\” tırnak yazar

Veri Tipleri tanımı Public class IkinciOrnek { Public static void main (String [] args) int x=12, y=11, z; z = x * y; System.out.println (“x = “ + x + “ y = “ + y + “z = “ + z); char sembol; sembol = ‘!’; boolean sonuc; sonuc = (1 == 1); System.out.println (sembol); System.out.println (sonuc); }

Basamaklar Toplamı public class BasamaklarToplamı { public static void main ( String [] args ) int x=356, toplam, b1, b2, b3; b1 = x/100; x = x – b1*100; b2 = x / 10; b3 = x % 10; toplam = b1 + b2 + b3; System.out.println (“Basamaklar toplamı = “ + toplam ); } Basamaklar toplami = 14

.indexOf(bir_String) String üzerinde bir_string ile tanımlı başka bir String’in ilk görüldüğü noktayı bulur. Eğer bir_string String’in içinde yoksa sonuç olarak -1 değeri verir. String tumce = “TOBB ETU Ankara”; int yerNerede = tumce.indexOf(“Ankara”); System.out.println(yerNerede + “ “+ tumce.substring(yerNerede)); 9 Ankara

.indexOf(bir_dizgi, Baslangic) String üzerinde Baslangic numaralı karakterden sonra bir_dizgi ile tanımlı başka bir String’in ilk görüldüğü noktayı bulur. Eğer bir_dizgi String’in içinde yoksa sonuç olarak -1 değeri verir. .lastIndexOf (bir_dizgi); String üzerinde bir_dizgi ile tanımlı başka bir String’in son görüldüğü noktayı bulur. Eğer bir_dizgi String’in içinde yoksa sonuç olarak -1 değeri verir. .trim (); String’in başı ve sonundaki boşlukların silindiği bir String geri verir. .charAt (Konum); String’in üzerinde yer alan Konum numaralı karakteri geri verir. .compareTo (bir_dizgi); Metodu çağıran nesneyle bir_dizgi nesnesini alfabetik olarak karşılaştırır. Eğer Metodu çağıran nesne daha küçükse metot negatif bir değer geri verir, eğer iki String eşitse metot 0 verir, eğer metodu çağıran nesne metoda giren parametreden daha büyükse pozitif bir sonuç verir.

. equals: İki String’in aynı değere sahip olup olmadığını tespit etmek için kullanılan metod. Aynı ise True, değilse False sonucu verir. . equalsIgnoreCase: Karşılaştırmada büyük harf – küçük harf ayrımı yapılmak istenmiyorsa. public class EqualsDenemesi { public static void main(String[] args) { String birinci ="TOBB"; String ikinci = "ETU"; String ucuncu = "etu"; System.out.println(birinci.equals(birinci)); System.out.println(birinci.equals(ikinci)); System.out.println(ikinci.equalsIgnoreCase(ucuncu)); System.out.println(ikinci.equals(ucuncu.toUpperCase())); } true false

import java.util.*; public class EqualsDenemesi { public static void main(String[] args) { String isim, baslik, altIsim; int nerede; Scanner klavye = new Scanner(System.in); System.out.println("Bir cumle giriniz..."); isim = klavye.nextLine(); System.out.println("Bu cumlede bosluklar dahil "+isim.length()+" karakter var."); System.out.println("Cumlenin buyuk harf yazilmis hali..."); System.out.println(isim.toUpperCase()); baslik = " TOBB ETU "; System.out.println("Baslik:"+baslik); System.out.println("Basligin trimden sonraki hali:"+baslik.trim()); altIsim = isim.substring(3); System.out.println("Alt baslik:"+altIsim); altIsim = isim.substring(1,4); nerede = isim.lastIndexOf("T"); System.out.println("T nin bulundugu son konum:"+nerede); }

Scanner Sınıfı ve Veri Okunması

Örnek:

Örnek: Çemberin çevre uzunluğunu bulunuz: cevre=2 pi r

Atama Uyumu ve Kuralları "int” olarak tanımlanmış bir değişkene 3.5 değeri direk olarak atanamaz. Ancak bazı çevrimlerden sonra bu mümkün olabilir. Boyutu küçük olan bir değişken boyutu büyük olan bir değişkene atanabilir. double doubleDegisken; doubleDegisken = 7; İnt double’a atanabilir byte  short  int  long  float  double

Veri Tipi Zorlaması (type casting) Eğer bir değişken kendisinden daha küçük boyutlu bir veri tipine atanmak isteniyorsa bu ancak harici veri tipi zorlaması (explicit type cast) adı verilen bir yöntemle gerçekleşebilir. double mesafe; mesafe = 9.0; int yol; yol = mesafe;  Yazılamaz yol = (int) mesafe;  Yazılabilir

Veri Tipi Zorlaması double yemekFaturasi; yemekFaturasi = 25.36; int toplamFatura = (int)yemekFaturasi * 5;

Veri Dönüşmesi String -> int String dokuzStr = "9"; char dokuzKar = '9'; int dokuzSayi = 9; String stringeCevrilmisDokuzKarakteri = dokuzKar + ""; String stringeCevrilmisDokuzSayisi = dokuzSayi + ""; double ondalikliDokuz = Double.parseDouble(dokuzStr); System.out.println(ondalikliDokuz); Konsol Çıktısı: 9.0

Dialog Kutusunda Yazıyı Gösterme Birçok Java uygulaması pencereleri yada diyalog kutularını kullanır. Biz komut penceresini kullandık. JOptionPane sınıfı diyalog kutularını kullanmamızı sağlayacak. JOptionPane javax.swing paketinin içinde yer alır. Bu paket Graphical User Interfaces (GUIs) sınıflarının bulunduğu pakettir.

1 // Ornek.java 2 // Printing multiple lines in a dialog box. 3 4 // Java packages 5 import javax.swing.JOptionPane; // program uses JOptionPane 6 7 public class Ornek { 8 9 // main method begins execution of Java application 10 public static void main( String args[] ) 11 { 12 JOptionPane.showMessageDialog( 13 null, "Welcome\nto\nJava\nProgramming!" ); 14 15 System.exit( 0 ); // terminate application with window 16 17 } // end method main 18 19 } // end class Ornek

Declare variables: name and type. 1 // Fig. 2.9: Addition.java 2 // Addition program that displays the sum of two numbers. 3 4 // Java packages 5 import javax.swing.JOptionPane; // program uses JOptionPane 6 7 public class Addition { 8 9 // main method begins execution of Java application 10 public static void main( String args[] ) 11 { 12 String firstNumber; // first string entered by user 13 String secondNumber; // second string entered by user 14 15 int number1; // first number to add 16 int number2; // second number to add 17 int sum; // sum of number1 and number2 18 19 // read in first number from user as a String 20 firstNumber = JOptionPane.showInputDialog( "Enter first integer" ); 21 22 // read in second number from user as a String 23 secondNumber = 24 JOptionPane.showInputDialog( "Enter second integer" ); 25 26 // convert numbers from type String to type int 27 number1 = Integer.parseInt( firstNumber ); 28 number2 = Integer.parseInt( secondNumber ); 29 30 // add numbers 31 sum = number1 + number2; 32 Declare variables: name and type. Input first integer as a String, assign to firstNumber. Convert strings to integers. Add, place result in sum.

33 // display result 34 JOptionPane.showMessageDialog( null, "The sum is " + sum, 35 "Results", JOptionPane.PLAIN_MESSAGE ); 36 37 System.exit( 0 ); // terminate application with window 38 39 } // end method main 40 41 } // end class Addition