Java Nedir? 7 Java nın Diğer Programlama Dillerinden Farkı 8

Benzer belgeler
ÖNCE B L NMES GEREKENLER

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

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Java EE 5 Teknolojileri Jboss Seam

1 PROGRAMLAMAYA GİRİŞ

İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19. Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28

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

KiM KORKAR AN. TEMEL JAVA KOLAYLASTIRILMIS KOD TAKİBİYLE 215 ÖRNEK. Alper AKALIN TÜRKİYE'NİN EN ÇOK SATAN JAVA KİTABI. Veritabanlarına Giriş

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

Swing ve JDBC ile Database Erişimi

Üst Düzey Programlama

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

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

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

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Java Programlama Giriş

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

İç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

JBoss Seam Next Generation Integration Framework

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

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

Öğr. Gör. Serkan AKSU 1

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

1 JAVASCRIPT NEDİR? 1

Java Programlamaya Giriş

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

Ç NDEK LER 1 PHP 6 1 PHP Nedir? 1 PHP nin Tarihi 2 PHP nin Avantajlar 4 PHP nin Dezavantajlar 4 PHP nin Çal flma Mant 6 PHP nin Çal flma Aral 8 PHP

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

Android Ders Notları

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim

ÖZGÜR YAZILIMLAR İLE J2EE

1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2

LINQ (Temel Kavramlar)

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

4. Bölüm Programlamaya Giriş

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ü

MOBİL UYGULAMA GELİŞTİRME

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

JBoss Seam. Melih Sakarya

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

Programlama Dillerinde Kullanılan Veri Tipleri

Java Temel Özellikleri

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

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

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

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

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Ç NDEK LER G R fi 1 Bafllamadan Önce 1 Kitab Kimler Okumal? 1 Kitap çerisindeki Örnekler 2 Örneklerin Kullan m 3 Çekinmeden Yaz n 7

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

Client Server Database

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Java da Program Denetimi ve Operatörler

JDBC kütüphanesi, her görev için genellikle veritabanı kullanımı ile ilişkili API leri içerir:

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

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Veri Tabanı Yönetimi Lab#9

Bölüm 10: PHP ile Veritabanı Uygulamaları

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164

SQL e Giriş. Uzm. Murat YAZICI

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

AOSB 2017 EĞİTİM PROGRAMI

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş.

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

İÇ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

JAVASCRIPT JAVASCRIPT DİLİ

Üst Düzey Programlama

Oracle da kullanılan veri tipleri:

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

1 APACHE SERVER KURULUMU 1 Kurulum 1 Apache Ayarları (httpd.conf) 6 PHP Ayarlaları (php.ini) 7 PHP5.4 Yükseltme 8 phpmyadmin Yükseltme 10

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

C# nedir,.net Framework nedir?

MOBİL UYGULAMA GELİŞTİRME

PAKET TRANSFER SİSTEMİ

ÖĞRENME-ÖĞRETME YÖNTEM VE TEKNİKLERİ. gösterip yaptırma, uygulamalı çalışma. Anlatım, soru-cevap, gösterip yaptırma, uygulamalı çalışma.

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Tomcat Uygulama Sunucusunun Kurulumu. İlk olarak adresine gidiyoruz.

HSancak Nesne Tabanlı Programlama I Ders Notları

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

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

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

VERİTABANI Veritabanı Yönetimi

Değerlendirme Soruları 140. Şerit Kullanımı 124 Şerit Sekmeleri 124 Şeridi Gizleme 125 Eklentiler 125

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

PAKET TRANSFER SİSTEMİ

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

BİLİŞİM TEKNOLOJİLERİ NESNEYE DAYALI PROGRAMLAMA - JAVA GELİŞTİRME VE UYUM EĞİTİMİ MODÜLER PROGRAMI (YETERLİĞE DAYALI)

JavaServer Faces (JSF) Sunucu Yazılım Teknolojileri 2008

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Transkript:

VII İÇİNDEKİLER 1 GİRİŞ 1 Bu Kitaba Neden İhtiyaç Duyuldu? 1 Kitap Nasıl Takip Edilmeli? 2 Programlama Dili Nedir? 2 Programlama Dillerinin Tarihçesi 2 Programlama Dillerinin Türleri 4 Makina Dili 4 Assembly Dili 4 Script Dilleri 5 Yüksek Seviye Programlama Dilleri 5 Çok Kullanılan Programlama Dilleri Hakkında Özet Bilgiler 5 Fortran 5 Cobol 6 Pascal 6 Basic 6 Visual Basic 6 Delphi 6 C 7 C++ 7 C# 7 Java Nedir? 7 Java nın Diğer Programlama Dillerinden Farkı 8 2 BAŞLAMADAN ÖNCE BİLİNMESİ GEREKENLER 9 JDK, JRE ve JVM Kavramları 10 JDK (Java Development Kit-Java Geliştirme Kiti) 10 JRE (Java Runtime Environment-Java Çalışma Ortamı) 11 JVM (Java Virtual Machine-Java Sanal Makinesi) 11 JVM ile JRE Arasındaki Fark 11 JDK ve JRE Kurulumu 11 Windows İşletim Sistemi Üzerinde JDK Kurulumu 11 Kurulan JDK nın İşletim Sisteminin PATH Değişkenine Eklenmesi 15 Kurulan JDK için İşletim Sisteminde JAVA_HOME Değişkeni Oluşturulması 18 Linux İşletim Sistemi Üzerinde JDK Kurulumu 19 JRE Kurulumu 21 Java Programlarının Yapısı 24 Java Programlarının Komut Satırından Derlenmesi ve Çalıştırılması 25 3 JAVA PROGRAMLAMA DİLİ TEMELLERİ 27 Giriş 27 Java Programlarının Çalışma Şekli 28 Örnek Java Programı 28 Temel (Primitif) Veri Tipleri 30 Tamsayılar 30 Ondalıklı (Kayar Noktalı) Sayılar 31 Primitif Veri Tiplerinin Varsayılan Değerleri 32 Literaller (Değerler) 32 Tamsayı (int) Literaller 32 Kayar Noktalı Sayı Tipindeki (şoat) Literaller 33 Karakter Literaller 33 Karakter Katarları (String ve StringBuffer Sınıfı) 33

VIII JAVA VE JAVA TEKNOLOJİLERİ String Sınıfı 33 StringBuffer Sınıfı 34 Değişkenler ve Değişken Tanımlama 34 Tip Dönüşümleri (Type-Casting) 36 Primitif Sayı Tipleri ve Karakter Katarlarının Birbirlerine Dönüştürülmesi 37 Bir int i string e Dönüştürmek 37 Bir string i int e Dönüştürmek 37 Bir double veya şoat ı string e Dönüştürmek 38 Bir string i double/şoat a Dönüştürmek 38 Değişkenlerin Kullanımını Gösteren Örnek Bir Program 38 Operatörler 40 Atama Operatörü (=) 40 Aritmetik Operatörler (+, -, *, /, %) 40 Aritmetik Artırma ve Eksiltme Operatörleri (++, ) 43 Aritmetik Atama Operatörleri 44 İlişkisel Operatörler (<,>,<=,>=,==,!=) 47 Mantıksal Operatörler 48 Bitwise (Bit-Tabanlı) Operatörler 49?: Operatörü: 50 Operatör Önceliği 51 Program Kontrol İfadeleri 52 Kod Blokları 52 If Cümleciği ve Yapısı 53 If Cümleciğinin İncelendiği Bir Program: HesapIslemleri.java 56 If-Else Yapısı 57 If-Else Yapısının İncelenmesi: HesapIslemleriV2.java 58 If Cümleciği İçerisinde Karmaşık Mantıksal İfadeler Kullanmak 59 İç İçe If-Else Yapıları 60 Else If Deyimi 61 switch-case Deyimi 63 Diziler 67 Tek Boyutlu Diziler 67 Çok Boyutlu Diziler 71 Döngüler 74 while Döngüsü 74 do while Döngüsü 76 For Döngüsü 78 Özelleşmiş for Döngüsü 80 İç içe Döngüler 83 break ve continue Deyimleri 86 Yorumlar 87 Tek Satırdan Oluşlan Yorumlar 87 Blok Yorumlar 88 4 JAVA İLE NESNE TABANLI PROGRAMLAMAYA GİRİŞ 89 Giriş 89 Sınıflar 90 Nesneler 92 public, private ve protected Anahtar Kelimeleriyle Üye Değişkenler ve Metotlar için Erişim Seviyeleri Tanımlamak 93 new Operatörü 95

İÇİNDEKİLER IX Nokta (.) Operatörü 95 Metotlar 96 Metotların Kullanımı 98 Yapılandırıcı Metotlar (Constructors) 99 Metotların Aşırı Yüklenmesi (Method Overloading) 101 Statik Metotlar 102 static Anahtar Kelimesinin Diğer Kullanımları 103 Statik Üye Değişken Tanımlama 103 Değeri Değişmeyen Sabit Değişkenler Tanımlama 105 Recursif Metotlar 105 İstisna Yönetimi (Exception Handling) 108 Try-Catch Bloğu 108 throws Anahtar Kelimesi 109 throw Anahtar Kelimesi 109 finally Anahtar Kelimesi 111 Paketler (Packages) 112 Başka Paketteki Sınıfları Kullanmak 114 Bir Sınıfı import Anahtar Kelimesini Kullanmadan Çağırmak 114 5 JAVA İLE NESNE TABANLI PROGRAMLAMA TEMELLERİ 115 Giriş 115 Kalıtım 115 Üst Sınıf (Super Class) ve Alt Sınıf (Sub Class) Kavramı 121 super() Metodu ile Üst Sınıfın Yapılandırıcısını Çağırmak 121 this Anahtar Kelimesi 121 Kalıtım Örneği 123 Object Sınıfı 127 instanceof Anahtar Kelimesi 127 Çok Biçimlilik (Polymorphism) 128 Soyut Sınıflar (Abstract Classes) 131 Soyut Metotlar (Abstract Methods) 131 Arayüzler (Interfaces) 132 implements Anahtar Kelimesi 132 final Anahtar Kelimesinin Kalıtımda Kullanımı 133 Sınıflar Arasındaki Kalıtımsal İlişkiler 134 Kolleksiyonlar (Collections) 135 ArrayList Yapısı 136 ArrayList Kullanımı için Örnek Bir Program 137 6 JAVA ENTEGRE GELİŞTİRME ORTAMLARI VE NETBEANS KURULUMU 139 Giriş 139 Java Projelerini Elle Build Etmek ve Çalıştırılabilir jar Uzantılı Dosyalar Oluşturmak 140 Java Build Sistemleri 144 Ant 144 Maven 148 Ant ile Maven ın Karşılaştırılması 155 Java Entegre Geliştirme Ortamları (Java IDE leri) 155 Eclipse (MyEclipse) 156 IntelliJ Idea 157 JBuilder 158 JCreator 159 JDeveloper 160 Netbeans 160

X JAVA VE JAVA TEKNOLOJİLERİ Netbeans IDE sinin Özellikleri 161 Netbeans Kurulumu 162 7 TEMEL JAVA UYGULAMA YAPILARI 171 Giriş 171 Java Konsol (Komut Satırı) Uygulamaları 172 Java Masaüstü Uygulamaları 177 Java Masaüstü Uygulama Kütüphaneleri 178 AWT 178 SWT 178 Swing 178 SwingX Kütüphanesi 179 Netbeans ile Masaüstü Uygulaması Örneği 179 Masaüstü Uygulamalarının Temel Özelliklerini Değiştirmek 189 Look and Feel ile Swing Uygulamaları nın Görünümlerini Değiştirmek 192 Java Web Uygulamaları 196 MVC (Model View Controller) Yapısı 196 Java Web Frameworkleri (Uygulama Çatıları) 197 Servlet 197 JSP (Java Server Pages-Java Sunucu Sayfaları) 197 Struts 197 Spring 198 Seam 198 JSF (Java Server Faces-Java Sunucu Yüzleri) 198 Web Uygulamasına Geçmeden Önce Bilinmesi Gereken Kavramlar 198 POJO (Plain Old Java Objects-Eski Düz Java Nesneleri) 198 JavaBean 199 Netbeans ile JSF Web Uygulaması 200 Temel JSF Bileşenleri 210 h:form Bileşeni 210 h:datatable Bileşeni 210 h:column Bileşeni 210 h:inputtext Bileşeni 211 h:outputtext Bileşeni 211 h:commandbutton Bileşeni 211 Expression Language (Deyim Dili) 211 Web Projelerini Çalıştırmak 212 CSS ile Web Sayfalarını Güzelleştirmek 213 Temel Netbans İşlemleri 215 Varolan Projeleri Açmak ve Kapamak 215 Netbeans de Ana Projeyi (Main Project) Belirlemek 216 Editörde Satır Numaralarını Göstermek 217 Projede Hata Ayıklamak 218 Netbeans de Bookmark (Sık Kullanılan) Tanımlamak 221 8 VERİTABANI TEMELLERİ VE BLOG UYGULAMASI İÇİN VERİTABANI TASARIMI 223 Giriş 223 Veritabanı Kavramı 224 İlişkisel Veritabanları 224 Veritabanı Yönetim Sistemleri (DBMS-Database Management Systems) 224 İlişkisel Veritabanı Yönetim Sistemleri (RDBMS-Database Management Systems) 225 Bir İlişkisel Veritabanı Örneği 225 Primary Key (Birincil Anahtar) Kavramı 226

İÇİNDEKİLER XI SQL Dili 226 Create Komutu 227 Insert Komutu 227 Select Komutu 228 Where Anahtar Kelimesi 229 LIKE Operatörü 230 Where İfadesi İçerisinde Birden Fazla Koşul Kullanmak 231 Update Komutu 231 Delete Komutu 232 Drop Komutu 232 İlişkisel Veritabanı Tasarımı 232 Blog Veritabanı Tasarımı 233 Foreign Key (Yabancı Anahtar) Kavramı 234 MySQL Kurulumu 235 MYSQL in Yapılandırılması 239 MySQL Servisinin Otomatik Olarak Başlatılması 245 MySQL Komut Satırı İstemcisi (MySQL Command Line Client) 247 Navicat Uygulaması ile MySQL İşlemlerini Hızlandırmak 250 Navicat Uygulamasının Kurulumu 251 Navicat ile MySQL Üzerinde Blog Veritabanının Oluşturulması 256 Netbeans ile Veritabanlarına Erişim 264 9 JDBC İLE VERİTABANI PROGRAMLAMA TEMELLERİ 269 Giriş 269 JDBC (Java Database Connectivity) 269 Veritabanı Sürücüsü (Database Driver) Kavramı 270 MYSQL Veritabanı Sürücüsü nün Netbeans Uygulamalarında Kullanılması 270 VeritabaniIslemleri.java Sınıfı 273 Blog Veritabanındaki Kayıtların Tutulacağı Sınıfların Modellenmesi 274 Kullanici.java Sınıfı 274 Blog.java Sınıfı 276 Girdi.java Sınıfı 277 Yorum.java Sınıfı 279 Araclar.java Sınıfı 280 JDBC İşlemlerini Gerçekleştirebilmek için Gerekli Olan Bileşenler 281 Connection (java.sql.connection) 282 Statement 282 PreparedStatement 282 CallableStatement 283 ResultSet 283 JDBC ile Select İşlemi 284 JDBC ile Insert İşlemi 286 JDBC ile Update İşlemi 287 JDBC ile Delete İşlemi 288 JDBC ile Tablo Kolon Bilgilerinin (Metadata) Elde Edilmesi 288 JDBC ile Transaction Yönetimi 289 VeritabaniIslemleri.java Sınıfının Tam Kodu 290 BlogOlustur Uygulaması 300 10 SWING İLE MASAÜSTÜ UYGULAMA TEMELLERİ 303 Giriş 303 Matisse Görsel Arayüz Yöneticisi (Matisse GUI Builder) 303 Design (Tasarım) Modu 304

XII JAVA VE JAVA TEKNOLOJİLERİ Source (Kaynak Kod) Modu 305 Palette (Palet) Penceresi 306 Properties (Özellikler) Penceresi 306 Inspector Penceresi 307 Navigator Penceresi 307 Swing Temelleri 308 JFrame Bileşeni 308 JTextField Bileşeni 309 JTextArea Bileşeni 309 JButton Bileşeni 309 JComboBox Bileşeni 312 JTable Bileşeni 313 JDialog Bileşeni 315 JPanel Bileşeni 315 BlogYöneticisi Uygulaması 316 BlogYoneticisiView Penceresi 317 jdialogyeniblogolustur Penceresi 318 jdialogkullanicibilgisidetay Penceresi 319 jdialogkullanicibilgilerinidüzenle Penceresi 319 BlogYöneticisi Uygulamasında Kullanılan Paketler 320 blogyoneticisi Paketi Altında Bulunan Sınıflar 320 blogyoneticisi.resources Paketi Altında Bulunan Dosyalar 321 blogyoneticisi.siniflar.genel Paketi Altında Bulunan Sınıflar 321 blogyoneticisi.siniflar.model Paketi Altında Bulunan Sınıflar 324 blogyoneticisi.siniflar.veritabani Paketi Altında Bulunan Sınıflar 326 BlogYoneticisiView Sınıfında Kullanılan Önemli Üye Değişkenler 328 Ana Form (BlogYoneticisiView) Üzerinde Bulunan Bileşenler İçin Tanımlanmış Olaylar 328 BlogYoneticisiView İçinde Kullanılan Yardımcı Metotlar 333 jdialogyeniblogolustur Penceresi İçindeki Bileşenler için Tanımlanmış Olan Olaylar 335 jdialogkullanicibilgisidetay Penceresindeki Bileşenler için Tanımlanmış Olan Olaylar 336 jdialogkullanicibilgilerinidüzenle Penceresi İçindeki Bileşenler için Tanımlanmış Olan Olaylar 336 Uygulamanın Çalıştırılması 338 Uygulamaya Eklenebilecek Özellikler 339 11 JSF 2.0 İLE WEB BLOG UYGULAMASI 341 Giriş 341 JSF (Java Server Faces-Java Sunucu Yüzleri) 342 Bir JSF Projesinin Temel Bileşenleri 342 Java Sınıfları 342 Web Sayfaları 343 XML Uzantılı Ayar Dosyaları 344 Projede Kullanılan.jar Uzantılı Yardımcı Kütüphane Dosyaları 344 BlogWeb Uygulamasının Oluşturulması 344 BlogWeb Uygulamasının Çalıştırılması 345 Projenin Genel Yapısı 345 Projedeki Web Sayfaları ve Stil Dosyaları 345 Projede Bulunan Paket ve Sınıflar 345 Projede Bulunan Kütüphaneler 346 Projede Bulunan Yapılandırma Dosyaları 347 BlogWeb Uygulamasında Gerçekleştirilen Temel JSF İşlemleri 347 PrimeFaces için Yapılandırma Ayarlarının Eklenmesi 348 Sayfa Tasarımlarında Taglib Etiket Kütüphanelerinin Tanımlanması 348

İÇİNDEKİLER XIII Sayfa Tasarımlarında CSS Dosyalarının Kullanımı 349 Butonlar ve CommandLink ler Aracılğıyla ManagedBean İçindeki Metotların Çağrılması 349 Managed Bean İçindeki Metotlara Parametre Gönderme 351 Kullanıcının Girdiği Verilerin İstenilen Biçimde Olup Olmadığının İncelenmesi (Form Validation İşlemi) 351 Managed Bean ler İçinde Tanımlanmış Metotlardan Veritabanına Erişim 353 Sayfada Tekrar Eden İşlemler için <uı:repeat> Etiketinin Kullanılması 354 Yetkisiz Kullanıcıların İşlem Yapmasını Önleyebilmek için Aktif Bileşenlerin rendered Özelliğinin Kullanılması 355 Kullanıcıya Yaptığı İşlem İçin Onaylama (confirm) Diyaloğu Gösterilmesi 356 Sayfa Yönlendirme İşlemi 357 Giriş-Çıkış İşlemi 357 Yetkisiz Kullanıcı Girişinin Önlenmesi 359 PrimeFaces Bileşeni Olan <p:editor> Bileşeninin Kullanılması 362 BlogWeb Uygulamasındaki Sayfalar ve Görünümleri 364 index.xhtml Sayfası 364 kullanici.xhtml Sayfası 366 tumgirdiler.xhtml Sayfası 368 blog.xhtml Sayfası 371 blogduzenle.xhtml Sayfası 376 girdiduzenle.xhtml Sayfası 378 yorumduzenle.xhtml Sayfası 380 BlogWeb Uygulamasındaki Kullanılan Sınıflar 382 KullaniciBean.java 382 GirdiDetay.java 397 VeritabaniIslemleri.java Sınıfına Eklenen Metotlar 398 BlogWeb Uygulamasındaki Kullanılan CSS Dosyaları 406 csslayout.css 406 default.css 409 12 JAX-WS KÜTÜPHANESİ VE NETBEANS İLE XML TABANLI WEB SERVİSLERİ OLUŞTURMAK 411 Giriş 411 Web Servisi Kavramı 411 Web Servisi Teknolojisinin Temel Bileşenleri 412 UDDI (Universal Description, Discovery and Integration) 412 WSDL (Web Servis Description Language) 412 SOAP (Simple Object Access Protocol) 412 SOA (Service Oriented Architecture) 413 Bir Web Servis Uygulama Senaryosu 413 Web Servislerinin Çalışma Yapısı 413 Netbeans ile Web Servisi Uygulaması 414 Netbeans ile Web Servisini Oluşturma 414 Netbeans ile Web Servis İstemcisi Oluşturma 424 13 DİĞER UYGULAMA ÖRNEKLERİ 431 Java ile Temel Dosya İşlemleri 431 Dosya Seçme İşlemi (Dosya Seç Butonu) 432 Dizin Seçme İşlemi (Dizin Seç Butonu) 433 Dosya Oluşturma İşlemi (Dosya Oluştur Butonu) 434 Dizin Oluşturma İşlemi (Dizin Oluştur Butonu) 435 Dosya Kopyalama İşlemi (Seçili Yolu Kopyala Butonu) 435 Dosya Taşıma İşlemi (Seçili Yolu Taşı Butonu) 437 Dosya Silme İşlemi (Seçili Yolu Sil Butonu) 438

XIV JAVA VE JAVA TEKNOLOJİLERİ Java ile Metin Dosyalarına Erişim 440 Java ile Metin Dosyalarına Yazmak (Text Dosyasına Yaz Butonu) 440 Java ile Metin Dosyalarından Okumak (Text Dosyasından Oku Butonu) 442 Netbeans ile Java Applet Örneği 442 Uygulamalarda JFreeChart ile Çizelge (Grafik) Oluşturmak 454 Netbeans ile Otomatik Olarak JavaDoc Oluşturma 458 Java ile Raporlama 461 JasperReports Kütüphanesi 461 IReport Uygulaması 461 IReport ile Rapor Oluşturma 463 IReport ile Değişik Dosya Biçimlerinde Raporlar Almak 472 14 J2ME İLE CEP TELEFONU VE MOBİL CİHAZLAR İÇİN UYGULAMA GELİŞTİRME 475 Giriş 475 Önemli Kavramlar 475 J2ME 475 MIDP (Mobile Information Device Profile) 476 MIDlet 476 CLDC (Connected Limited Device Configuration) 476 CDC (Connected Device Configuration) 476 Netbeans Mobility Toolkit 477 Netbeans Mobility Toolkit Kullanımı ve Örnek Bir Uygulama 478 Projenin Oluşturulması 479 Mobility Toolkit Araçlarının İncelenmesi 480 Palette Penceresi 483 Sihirbazın Ürettiği Hazır Projenin Simülatör Üzerinde Çalıştırılması 483 Proje İçeriğinin Değiştirilmesi 484 Projenin Çalıştırılması 486 15 JPA VE HIBERNATE İLE VERİTABANLARINA ERİŞİM 489 Giriş 489 ORM (Object Relational Mapping) Kavramı 490 JPA (Java Persistence API) 490 JDBC Sürücüsü (JDBC Driver) veya JDBC Veri Kaynağı (JDBC Datasource) 491 Persistence.xml Dosyası 491 Entity Sınıfları (Entity Classes) 491 Entity Yöneticisi (Entity Manager) 491 Netbeans ile JPA Erişimi 491 JPAHibernateSwing Projesinin Oluşturulması 492 Sihirbaz Tarafından Otomatik Oluşturulan Dosyalar 496 persistence.xml Dosyası 497 JPAQL (JPA Query Language-JPA Sorgu Dili) 511 Normal Sorgu Örnekleri 511 Parametreli Sorgu Örnekleri 511 Annotation (Dipnot) Kavramı ve JPA da Bulunan Önemli Dipnotlar 511 @Entity 512 @Table 512 @NamedQuery 512 @NamedQueries 512 @Column 513 @Id 513 @OneToMany 513

İÇİNDEKİLER XV Eager (İstekli) Fetch (Veri Çekme) İşlemi 514 Lazy (Tembel) Fetch (Çekme) İşlemi 514 Lazy ve Eager Fetch İşlemlerinin Performansa Etkisi 515 @ManyToOn 515 @OneToOne 516 @ManyToMany 516 JPA ile Temel Veritabanı İşlemleri 518 Entity Manager in Oluşturulması 518 JPA ile SELECT İşlemi 518 JPA Sorgularında NamedQuery Kullanımı 518 JPA Sorgularında Parametre Kullanımı 519 JPA ile UPDATE İşlemi 519 JPA ile DELETE İşlemi 519 JPAHibernateSwing Uygulamasının İçeriği 520 Programda Kullanılan Temel Değişkenler 522 Programda Kullanılan Yardımcı Metotlar 522 Ana Penceredeki Bileşenler İçin Tanımlanmış Olan Olaylar 525 Blog İşlemleri Penceresinde Tanımlanmış Olan Olaylar 527 Kullanıcı İşlemleri Penceresinde Tanımlanmış Olan Olaylar 528 JFileChooser Kullanımı 530 16 İLERİ KONULAR 533 Geliştirdiğiniz Masaüstü Uygulamaları İçin Kurulum Sihirbazı Oluşturma 533 Inno Setup Yazılımının İndirilmesi ve Kurulumu 534 Yazılım Geliştirme Yaklaşımları 544 Waterfall (elale) Modeli 545 Agile (Çevik) Yazılım Geliştirme Modeli 545 Scrum 545 Faydalı Java Araç ve Kütüphanelerinin Bir Listesi 545 Apache/POI 545 Apache/Commons 546 Substance 546 JFreeChart 546 JESS 547 SAX 547 LUCENE 547 SOLR 547 Zemberek 547 RihFaces 547 ICEFaces 547 PrimeFaces 547 GWT (Google Web Toolkit) 547 JNI (Java Native Interface) 548 JNDI 548 JUnit 548 Quartz 548 17 JAVA 7 İLE GELEN SÖZDİZİMİNE YÖNELİK ÖZELLİKLER 549 Diamond Operatörünün Kullanımının Basitleştirilmesi 550 Switch İfadelerinde String 551 Kullanımına İzin Verilmesi 551 Try Catch İfadelerine Otomatik Kaynak Yönetimi Özelliğinin Getirilmesi 552

XVI JAVA VE JAVA TEKNOLOJİLERİ İstisna Yönetiminde Tek bir Catch 554 Bloğunda Birden Fazla İstisnanın Yakalanabilmesi 554 Sayısal Değerlerin Tanımlanmasında Altçizgi Kullanımı 555 İkili Tamsayı Değerlerin Tanımlanmasına Yönelik İyileştirmeler 555 18 JAVA NIO VE NIO 2 557 Java I/O, NIO ve NIO 2 557 Arasındaki Farklar 557 Standart I/O 557 NIO 558 NIO 2 558 NIO Path Arayüzü 558 Path Arayüzünün Kullanımı 559 Mutlak Dosya/Dizin Yolları ile Çalışmak 560 Göreceli Dosya/Dizin Yolları ile Çalışmak 560 Göreceli Dizin Yolları Üzerinde Normalize Metodunu Kullanmak 561 Files Sınıfının Kullanımı 561 createdirectory() Metodu ile Bir Dizin Oluşturmak 561 exists() Metodu ile Bir Dosya veya Klasörün Sistemde Olup Olmadığını Öğrenmek 562 copy() Metodu ile Bir Dosyayı Kopyalamak 562 move() Metodu ile Bir Dosyayı Taşımak 563 delete() Metodu ile Bir Dosyayı Silmek 564 WalkFileTree() Metodu ile Bir Dizin Altındaki Bütün Dosya veya Dizinleri ÖzYinelemeli (Recursive) Olarak Gezmek 564 JAVA NIO.2 568 AsynchronousFileChannel 568 Veriyi AsynchronousFileChannel dan CompationHandler yerine Future Özelliği ile Okumak 570 19 JAVA 8 ILE BIRLIKTE GELEN YENI ÖZELLIKLER 573 Fonksiyonel Arayüzler ve Lambda İfadeler 573 Lamda İfadeler (Lambda Expressions) 574 Lamda İfade Sözdizimi 578 Herhangi Bir Argüman Almayan Lamda İfadeler 580 Fonksiyonel Arayüzler 581 Lamda İfadelerin Dönüş Tipleri 581 Tek Argüman Alan Lamda İfadeler 582 Lamda İfade Argümanlarının Tipleri 582 Birden Fazla Argüman Alan Lamda İfadeler 583 Fonksiyonel Arayüzler (Functional Interfaces) 584 @FunctionalInterface Annotasyonu 585 Varsayılan Metotlar (Default Methods) 586 Statik Arayüz Metotları 588 Akışlar (Stream API) 588 Paralel Akışlar (Parallel Streams) 589 Optional Tipi 590 ifpresent Metodu 593 ispresent Metodu 593 orelse Metodu 593 orelseget Metodu 594 DateTime API 594 Base64 Desteği 596 Nashorn JavaScript Motoru 597 Bundan Sonrası 598