Java ile Nesneye Yönelik Programlama. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 1

Benzer belgeler
Java. ile Nesneye Yönelik Programlama

Java diğer programlama dilleri gibi başlı başına bir ürün değildir.

Altuğ B. Altıntaş

Java ve Yazılım Tasarımı ; Bölüm- 1 JAVA NEDİR?

JAVA NEDİR?

Java 2 Micro Edition (J2ME)

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Java Programlama Giriş

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

ÖZGÜR YAZILIMLAR İLE J2EE

Java Dersi. Altuğ Bilgin Altıntaş

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

Programlama Dillerinde Kullanılan Veri Tipleri

BÖLÜM 1 JAVA NEDİR? . Platform bağımsız olması: Bir kere yaz her yerde çalıştır!

// hataları işaret eden referans

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Yrd. Doç. Dr. Caner ÖZCAN

Başlangıç Durumuna Getirme ve Temizlik. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 1

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 1

Java Temel Özellikleri

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Erişim konusunda iki taraf vardır:

Öğr. Gör. Serkan AKSU 1

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

İçerik. Temel Kavramlar. Yazılım Geliştirme Aşamaları. Problemi Anlama ve Çözümleme. Biçimsel Gösterim - 1. Nesneye Yönelik Programlama

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

Temel Kavramlar. BS-515 Nesneye Yönelik Programlama. Ders #1 (26 Ekim 2009)

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

Yrd. Doç. Dr. Caner ÖZCAN

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

EMT2226 Nesne Yönelimli Programlamaya Giriş

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1

Programlama Dilleri III 1

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

İÇERİK 2 Java Kodlaması için Gerekli Programlar JRE, JDK kurulması ve Başlangıç Ayarları Java Kodlamayı Kolaylaştıran IDE ler Java Kod Yapısı İlk Java

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

Nesneye yönelik: Javada herşey bir nesnedir. Java nesne yönelimli olduğu için kolayca geliştirilebilir.

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı Đlkbahar Dönemi 13 Nisan Ad, Soyad Öğrenci No.

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

JAVA API v2.0 Belge sürümü: 2.0.2

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

Sunum İçeriği. Programlamaya Giriş

JAVA DA GİRİŞ/ÇIKIŞ İŞLEMLERİ. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 9 1

Üst Düzey Programlama

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Başlangıç Durumuna Getirme ve Temizlik

Java Programlamaya Giriş

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

Karşılaştırma İşlemleri ve Koşullu İfadeler

Java da İşleçler, Ders #3 (4 Kasım 2009)

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

İÇİNDEKİLER VII İÇİNDEKİLER

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

Java da Program Denetimi ve Operatörler

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

Nesne Yönelimli Programlama

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 3

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1

HSancak Nesne Tabanlı Programlama I Ders Notları

NESNEYE YÖNELİK PROGRAMLAMA

Java String İşlemleri

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Java. Hakkımızda. Java Eğitimi

Nesne Yönelimli Programlama

Lecture 11: Generics

Java Programlama. Java ya Genel Bakış

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

Lambda İfadeleri (Lambda Expressions)

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Klavyeden Basit Giriş/Çıkış İşlemleri

JAVADA DİZİ İŞLEMLERİ

Transkript:

Java ile Nesneye Yönelik Programlama Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 1

Bu Dönem Hakkında Servlet Corba RMI Temel Kısım EJB JSP XML JDBC Y Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 2

Java Nedir? Java platformu, ağ(network) ın önemi hesaba katılarak ve aynı yazılımın birçokdeğ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 diğer programlama dilleri gibi başlı başına bir ürün değildir. Java ve Java ya bağlı alt teknolojiler, Sun Microsystems tarafından verilmiş belirtimlerden (specifications) oluşmaktadır.eğer bu belirtimlere sadık kalınmaz ise hukuki olarak suç işlenmiş olur. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 3

Java İle Neler Yapılabilir? Java Programlama dili ile projelerimizi diğer programlama dillerine göre daha kolay ve sağlıklı bir şekilde yapmamı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 kartlar için uygulamalar. Ve daha niceleri için uygulamalar yazmamız mümkündür. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 4

Bir Kere Yaz Her Yerde Çalıştır Java uygulamaları JVM (Java Virtual Machine) tarafından yorumlanır( interpreted ). JVM, işletim sisteminin en tepesinde bulunur Java uygulamaları değişik işletim sistemlerinde, herhangi bir değişiklik yapmadan çalışabilir, Java nın felsefesiolan bir kere yaz heryerde çalıştır sözü gerçekleştirilmiştir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 5

Çalışma Evreleri Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 6

Çalışma Evreleri Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 7

Kategoriler Java platformunun ana grupları. Standart Java Enterprise Java Gömülü cihazlar için Java (embedded devices) XML Teknolojileri Diğer Teknolojiler Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 8

Standart Java Java 2 SDK (J2SE) Java 2 Runtime Environment Java Plug-in Java Web Start Java HotSpot Server Virtual Machine Collections Framework Java Foundation Classes (JFC) Swing Components Pluggable Look & Feel Accessibility Drag and Drop Security Java IDL JDBC JavaBeans Remote Method Invocation (RMI) Java 2D Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 9

Enterprise Java J2EE (Java 2 Enterprise Edition) CORBA Teknolojisi ECperf Teknolojisi Enterprise JavaBeans Teknolojisi Kontaynerler için Java Yetkilendirme Kontratı (Java Authorization Contract for Containers) (Java ACC) Java IDL JavaMail API Java Mesajlaşma Servisi (Message Service) (JMS) API JavaServer Faces JavaServer Pages Java Servlets JDBC Teknolojisi J2EE Bağlayıcı Mimarisi (Connector Architecture) Hareketler (Transactions) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 10

Gömülü Cihazlar İçin Java (Embedded Devices) Java 2 Platform, Micro Edition (J2ME technology) Java 2 Platform, Micro Edition (J2ME Teknolojisi) Bağlı Aygıt Konfigurasyonu (Connected Device Configuration) (CDC) Sınırlı Bağlanmış Aygıt Konfigurasyonu (Connected Limited Device Configuration) (CLDC) C Sanal Makinası (Virtual Machine) (CVM) K Sanal Makinası (Virtual Machine) (KVM) PersonalJava Java Card JavaPhone API Java TV API Jini Network Technology Mobil Bilgi Aygıt Profili (Mobile Information Device Profile) (MIDP) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 11

XML Teknolojileri XML İlişkilendirilmesi için Java Mimarisi (Java Architecture for XML Binding) (JAXB) XML-Tabanlı RPC için JAVA API'si (Java API for XML- Based RPC) (JAX-RPC) XML Mesajlaşması için JAVA API'si (Java API for XML Messaging) (JAXM) XML İşlemleri için JAVA API'si (Java API for XML Processing) (JAXP) XML Kayıtları için JAVA API'si (Java API for XML Registries) (JAXR) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 12

Diğer Teknolojiler Araç Ürünler o o MIF Doclet Sun ONE Stüdyo (Studio) Ağ (NetWork) Ürünleri o o o o o o o o o o o Sertifikalı JAIN API Ürünleri (JAIN API Certified Products) Java Dynamic Management Kit Java Yönetim Uzantısı (Java Management Extensions) (JMX) Java MetaData Arabirimi (Java Metadata Interface) (JMI) Java Paylaşılan Veri Araç Takımı Java Shared Data Toolkit Java Spaces Teknolojisi Servis Sağlıyıcılar için Java Teknolojisi (Java Technology for Service Providers) Jini Ağ Teknolojisi (Network Technology) JXTA Projesi J2ME Platformu için JXTA Projesi (Project JXTA for J2ME Platform) Sun Chili!Soft ASP Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 13

Java nın Gelişim Evreleri 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, Girdi/Çıktı (Input/Output), GUI (Graphical User Interface- Grafik Kullanıcı Arabirimi) 1997 JDK 1.1 çıkartıldı. Bu sürümde Java GUI, veritabanı erişimi için JDBC, dağınık nesneleriçin RMI ve daha birçok yeni gelişmeler eklendi. 1998 JDK 1.2 çıkartıldı. JFC/Swing yayınlandı- aynı sene içersinde http://java.sun.com internet adresinden 500,000+ adet indirme(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ı. 2002 2003 JDK v1.4 versiyonu çıkarıldı (Merlin projesi). Java API for XML binding yayınlandı. 2003 yılının sonuna doğru JDK v1.5 versiyonun çıkarılması planlanmaktadır (Tiger projesi). Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 14

Java nın Başarılı Olmasındaki Sebepler Nitelikli bir programlama dili olması C++ da olduğu gibi bellek problemlerinin olmaması. Nesneye yönelik (Object - Oriented) olması C/C++/VB dillerinin aksine dinamik olması. Güvenli olması. Internet uygulamaları için elverişli (Applet, JSP, Servlet, EJB, Corba, RMI). Platform bağımsız olması : bir kere yaz her yerde çalıştır Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 15

Çöp Toplayıcı (Garbage Collector) Bir programınçalışma durumunda ortaya çıkan ve sonradan kullanılmayan (gereksiz) nesneleri bulur ve onları yok eder (destroy). Bellek yönetiminin (memory management) yükü, kodu yazan kişiden Java ya geçmiş olur Diğer dillerde, örneğin C++ da, oluşturulan nesnelerin yok edilme sorumluluğu kodu yazan kişiye aittir. Çöp toplayıcısı(garbage collector) JVM in yazılışına (implementation) göre değişkenlikler gösterebilir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 16

Java da Yorum Satırı Java kaynak kodunun içerisine istediğiniz yorumları yazabilmeniz için belli yol izleminiz gerekmektedir. Java da yorum satırlarını belirtme iki şekilde mümkün olur 1. /* yorum */,slash -yıldızdan, diğer yıldız-slash arasına kadar istediğiniz yorumu yazabilirsiniz. Uzun satırlı yorumlarda bu yöntemi kullanabilirsiniz. 2. // yorum, tek satırlık yorum yapmak için idealdir. Kısa yorumlarınız için bu yöntemi kullanabilirsiniz. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 17

Herşey Nesne - 1 Java da herşeye nesne olarak davranırız. Herseyin nesne olmasına rağmen nesneleri yönetmek için referanslar kullanılır. Örnek : Diyelim ki elimizde bir maket uçak (nesne olarak düşünün) ve bu maket uçağa ait bir de kumanda (referans) olduğunu düşünelim. Bu maket uçağı havada sağa sola döndürmek için elimizdeki kumanda cihazını kullanmak zorundayızdır; benzer şekilde havalandırmak veya yere indirmek için de kumanda cihazından faydalanırız. Burada dikkat edilmesi gereken unsur kumanda cihazından çıkan emirlerin maket uçağı tarafından yerine getirilmesidir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 18

Herşey Nesne - 2 - Elimizde uzaktan kumandanın (referans) olması, maket uçağımızın (nesne) olduğu anlamına gelmez. - Uzaktan kumandamız (referans) da tek başına hayatı sürdürebilir. String kumanda ; // kumanda referansı şu an için //String bir nesneye bağlı değil. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 19

Herşey Nesne - 3 Bir referansa mesaj göndemek istiyorsak onu bir nesneye bağlamamız gerekir. String kumanda= new String("Selamlar") ; String kumanda="selamlar" ; Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 20

Sınıf Nedir? Nesne Nedir? Sabun s = new Sabun(); Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 21

Java da Depolanan Veriler Nerede Durur - 1 Stack : Bulunduğu nokta RAM dır... Stack üzerinde referansların kendileri bulunur. Heap : Burası genel amaçlı bir havuzdur. Nesnelerin kendisi bu alanda durur. Statik Alan : Bu alan RAM de bulunur. Statik alanda yer alan veriler, programınçalışması süresince orada yaşarlar. Nesnelerin kendileri bu alanda yer almazlar. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 22

Java da Depolanan Veriler Nerede Durur - 2 Non-RAM Bellek : Bazı durumlarda uygulamaların içerisinde oluşturduğumuz nesnelerin,uygulama sonlandıktan sonra bile varlıklarını sürdürmelerini isteriz. 1. Akışkan Nesneler (streamed objects) : Bu nesneler, genellikle ağ(network) üzerindeki başka bir makineye gönderilmek üzere bayt ırmaklarına dönüştürülürler. 2. Kalıcı Nesneler (persistent objects) : Bu nesneler kendi durumlarını(state) saklarlar ve diskimizde saklanırlar. Kendi durumlarını saklamaktan kasıtise özelliklerinin (attribute) değerlerinin korunmasıdır. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 23

Temel (Primitive) Tipler Temel tipler stack alanında saklanırlar. Temel tip Boyut Minimum Maximum Sarmalıyıcı Sınıf Tipi boolean Boolean char 16- bit Unicode 0 Unicode 2 16-1 Character byte 8- bit -128 +127 Byte short 16- bit -2 15 +2 15 1 Short int 32- bit -2 31 +2 31 1 Integer long 64- bit -2 63 +2 63 1 Long float 32- bit IEEE754 IEEE754 Float double 64- bit IEEE754 IEEE754 Double void Void Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 24

Sarmalayıcı (Wrapper) Sınıflar Temel tiplerin birer adet sarmalıyıcı (wrapper) sınıfları bulunur. char c = 'x' ; // temel tip Character C = new Character(c); // sarmalayıcı sınıf Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 25

Geçerlilik Alanı (Scope) -1 { int a = 177; /* sadece a mevcut*/ { int b = 196; } /* a ve b mevcut */ /* sadece a mevcut */ /* b geçerlilik alanının dışına çıktı */ } Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 26

Geçerlilik Alanı (Scope) -2 C ve C++ doğru ama Java da yanlış olan bir ifade { // dış alan int a = 12; { // iç alan int a = 96; /* java da yanlış ama C ve C++ doğru */ } // iç alanın sonu } //dış alanın sonu Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 27

Nesneler İçin Geçerlilik Alanı (Scope of Objects) if (true){ String s = new String("Selamlar"); } /* geçerlilik alanınınsonu*/ Geçerlilik alanının sonunda String nesnesi Çöp Toplayıcısı (Garbage Collector) tarafından bellekten silinececektir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 28

Yeni Sınıf Oluşturma public class YeniBirSinif {... } Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 29

Alanlar - 1 Alanlar, temel bir tip veya sınıf tipinde olabilir. public class YeniBirSinif { public int i; public double d; public boolean b; } Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 30

Alanlar - 2 Temel (primitive)tip boolean char byte short Mevcut değer (Default value) false \u0000 (null) (byte)0 (short)0 int 0 long 0L float 0.0f double 0.0d Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 31

Alanlar - 3 public class YeniBirSinif { public int i = 5 ; public double d = 3.23; public boolean b = true ; } Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 32

Alanlar - 4 Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 33

Alanlara Ulaşım Nesnenin alanlarına ulaşmak için. (nokta) kullanılır. Bu alanların erişim belirleyicileri public private protected friendly olabilir. YeniBirSinif ybs.i ; ybs.d ; ybs.b ; ybs = new YeniBirSinif(); Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 34

Alanlara Değer Atama YeniBirSinif ybs = new YeniBirSinif(); ybs.i = 5; ybs.d = 5.3; ybs.b = false; Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 35

Sınıf Tipindeki Alanlar - 1 public class YeniBirSinif { } public int i; public double d; public boolean b; public String aciklama = new String("aciklama"); Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 36

Sınıf Tipindeki Alanlar - 2 Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 37

Yordamlar (Methods) -1 dönüştipi YordamIsmi( /* parametre listesi */ ) { /* Yordamın gövdesi */ } Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 38

Yordamlar (Methods) -2 dönüştipi= Yordamlarınikişansı vardır: Değer döndürürler Temel (primitive) bir tipde değer (int, double, short vb..) Sınıf tipinde bir değer (String, Double, Short vb...) Değer döndürmezler = void Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 39

Yordamlar (Methods) -3 yordamismi = Java nın kendisine ait olan sözcükler (if, else, import, class, return..vb) ve Türkçe karakterler haricinde istenilen isim kullanılabilir. Ancak, yordamlar bir eylem içerdikleri için, yordam isimlerinin de bir eylemi belirtmesi tercih edilir. Örneğin: sayisirala() enbuyuksayibul() sqlcalistir() Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 40

Yordamlar (Methods) -4 parametre listesi= Yordam içerisinde işlemler yapabilmek için gerekli olan parametreler. Bu parametreler temel tipte veya sınıf tipinde olabilirler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 41

Yordamlar (Methods) -5 Yordam gövdesi = Bu kısım kodu yazan kişinin yaratıcılığına bağlı olarak değişir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 42

Yordam (Method) Örneği - 1 int boyutdondur(string kelime) { return kelime.length() ; } // yordamın sonu Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 43

Yordam (Method) Örneği - 2 String elmahesapla(int elmasayisi) { return new String("elma sayisi = " + elmasayisi*2); } // yordamın sonu Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 44

Yordam İçindeki Yerel Değişkenlerin İlk Değerlerini Alması void hesapla(string kelime, int kdv ) { int sondeger = 0; int kelimeboyut = 0 ; int toplamboyut ; // Hatalı!! toplamboyut++ ; // Hatalı!! kelimeboyut = kelime.length(); sondeger = kelimeboyut + kdv ; } Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 45

İlk Java Programı -1 public class Selam { public static void main(string args[]) { System.out.println("Selamlar!"); } } Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 46

İlk Java Programı -2 public class Selam : Bu kısımdayenibirsınıf oluşturuyor... Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 47

İlk Java Programı -3 public static void main(string args[]) Java da bir sınıfıntekbaşına çalışması isteniyorsa (standalone) bu yordam yazılmak zorundadır. Bu yordam sınıflar için bir başlagıç noktasıdır. static yordamlar nesneye bağımlı olmayan yordamlardır. Bu yordamı kullanmak için, ilgili sınıfa ait bir nesne oluşturma zorunluluğu yoktur. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 48

Diziler (Arrays) main() yordamı parametre olarak String sınıfı tipinde dizi alır, bu String sınıfı tipindeki dizinin içerisinde, konsoldan Java uygulamasına gönderilen parametreler bulunur. args[0] : konsoldan girilen 1. parametre değerini taşır args[1] : konsoldan girilen 2. parametre değerini taşır args[n-1] : konsoldan girilen n. parametre değerini taşır Java da diziler sıfır dan başlarlar. Diziler ilerleyen bölümlerde yoğun bir şekilde incelenecektir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 49

İlk Java Programı -4 System.out.println("Selamlar!") Bu komut satırı, bilgileri konsola (ekrana) basmamızı sağlar. Java nın dokümanlarına bakarsak; System sınıfı altında static bir alan olan out alanının mevcut olduğunu görüyoruz. Bu yüzden System sınıfını oluşturmak zorunda değiliz (new System() ). out alanı bize PrintStream nesnesi oluşturur ve PrintStream nesnesinin println() methodu ile bilgileri konsola(ekrana) bastırırız. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 50

Kurulum Kurulumlar dökümanlardan incelenebilir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 51

Dizin Yapısı Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 52

Nedir bu args[]? Ne İşe Yarar? public class ParametreUygulamasi { public static void main(string[] args) { System.out.println("Girilen Parametre = "+args[0]); } } bash# javac ParametreUygulamasi.java bash# java ParametreUygulamasi test Girilen Parametre = test Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 53

Hata Durumu public class ParametreUygulamasi { public static void main(string[] args) { System.out.println("Girilen Parametre = "+args[0]); } } bash# javac ParametreUygulamasi.java bash# java ParametreUygulamasi Exception in thread "main" java.lang.arrayindexoutofboundsexception at ParametreUygulamasi2.main(ParametreUygulamasi.java:3) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 54

Javadoc Yorum İle Dökümantasyon Oluşturmak Dökümantasyon oluşturma yükünü ortadan kaldırır. Oluşturulan dökümanlar HTML formatında olur. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 55

/** Ilk Java Kodumuzun Dokumantasyonu Ekrana Selamlar diyen bir uygulama * @author Altug B. Altintas (altuga@kodcu.com) * @version 1.0 * @since 09.01.2002 */ public class SelamDoc { } /**sayiyi artirmak icin, *degiskenler icin bir ornek */ public int sayac = 0 ; /** siniflarda & uygulumalarda giris * noktasi olan yordam * @param args disaradan girilen * parameterler dizisi * @return donen deger yok * @exception Hic istisna firlatilmiyor */ public static void main(string[] args) { System.out.println("Selamlar!"); } Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 56

Sorular... Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 57