ebook img

Java Programlama PDF

581 Pages·2014·11.62 MB·Turkish
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Java Programlama

JAVA BİLGİSAYAR DİLİYLE PROGRAMLAMA Java 8 M. Turhan ÇOBAN EGE Universitesi, Mühendislik Fakultesi, Makine Mühendisliği bölümü [email protected] JAVA BİLGİSAYAR DİLİYLE PROGRAMLAMA İÇİNDEKİLER 1.0 PROGRAMLAMA DİLİNE GİRİŞ 1.1 NİÇİN JAVA PROGRAMLAMA DİLİ 1.2 BİLGİSAYARDA JAVA PROGRAMLARINI KURMA 1.3 JAVA PROGRAMINI YAZMA VE ÇALIŞTIRMA 1.4 TAMSAYI VE GERÇEK SAYI DEĞİŞKENLER VE MATEMATİK İŞLEMLER 1.5 STRING, CHAR VE BOOLEAN TİPİ DEĞİŞKENLER VE İŞLEMLERİ 1.6 JAVA NESNESİ OLARAK TANIMLANMIŞ TEMEL DEĞİŞKENLER 1.7 FİNAL TERİMİ VE SABİTLER 1.8 JAVA DİLİNDE BİT KOMUTLARI VE İŞLEMLERİ 1.9 JAVA DİLİNİN TEMEL KOMUTLARI : IF KOMUT YAPISI 1.10 JAVA DİLİNİN TEMEL KOMUTLARI : WHILE, DO-WHILE, FOR,SWITCH-CASE TEKRARLAMA KOMUT YAPILARI 1.11 ARİTMETİK İŞLEMLERDE DEĞİŞKEN TÜRÜ DEĞİŞTİRME (CASTİNG) OPERASYONU 1.12 SAYI DEĞİL VE SONSUZ SONUÇLARI 1.13 EKSERSİZLER 1.14 PROBLEMLER 2.0 SINIF KAVRAMINA GİRİŞ VE METODLAR 2.1 JAVA API KÜTÜPHANESİ 2.2 METODLAR (FONKSİYONLAR-SUBROUTİNLER) 2.3 NESNE (OBJECT) TANIMI VE METOTLARDA KULLANIMI 2.4 METOTLARIN KENDİ KENDİNİ ÇAĞIRMASI (RECURSION) 2.5 AYNI ADLI METOTLARIN BİR ARADA KULLANILMASI (OVERLOADİNG) 2.6 METOT (METHOD) VE SINIF(CLASS) DEĞİŞKENLERİ 2.7 ALISTIRMALAR 2.8 PROBLEMLER 3.0 SINIF (CLASS) YAPILARINA GİRİŞ 3.0 STANDART KAVRAMLARIN TÜRKÇE KARŞILIKLARI 3.1 SINIF YAPISININ GENEL TANIMI 3.2 KURUCU ( CONSTRUCTOR ) METOT 3.3 DİĞER METOTLAR 3.4 THIS DEYİMİNİN KULLANIMI 3.5 SINIF DEĞİŞKENLERİNİN DIŞ DÜNYADAN GİZLENMESİ 3.6 ALIŞTIRMALAR 3.7 PROBLEMLER 3.8 HAFTA 6 ÖDEVLERİ 4.0 SINIFLARI BİR ARADA KULLANMA, SINIF NESNELERİNİN DİĞER SINIFLARDA SINIF DEĞİŞKENİ OLARAK KULLANILMASI (COMPOSITION), KALITIM(INHERITANCE) 4.1 SINIF NESNELERİNİN DİĞER BİR SINIFTA KULLANILMASI (COMPOSITION) 4.2 SINIF NESNELERİNİN BİRBİRİNDEN KALITIM YOLUYLA TÜRETİLMESİ (INHERITANCE) 4.3 ALIŞTIRMALAR 4.4 PROBLEMLER 5.0 BOYUTLU DEĞİŞKENLER 5.0 BOYUTLU DEĞİŞKENLERİN GENEL TANIMI 5.1 BİR BOYUTLU DEĞİŞKENLER VE NESNELER 5.2 GELİŞTİRİLMİŞ FOR DÖNGÜ YAPISI 5.3 NESNELERİN BOYUTLU YAPILARI 5.4 NESNE VE DEĞİŞKENLERİN ÇOK BOYUTLU KULLANIMI 5.5 BOYUTLU DEĞİŞKENLERDE BOYUT DEĞİŞTİRME 5.6 ALIŞTIRMALAR 5.7 PROBLEMLER 6.0 ABSTRACT SINIFLAR, INTERFACE, İNDİREK REFERANS KULLANIMI, İÇ SINIFLAR VE LAMDA DEYİMİ 6.1 ABSTRACT SINIFLAR 6.2 INTERFACE 6.3 İÇ SINIF TANIMI VE LAMBDA DEYİMLERİ 6.4 ALIŞTIRMALAR 6.5 PROBLEMLER 7.0 GRAFİK ÇİZİMİ 7.1 JAVA SWING GRAFİK ORTAMI JFRAME VE JAPPLET SINIFLARI 7.2 JAPPLET KULLANARAK GRAFİK PENCERESİ OLUŞTURMA VE KULLANMA 7.3 ALIŞTIRMALAR 7.4 PROBLEMLER 8.0 GRAFİK KONTROL VE PROGRAMLAMA-GRAFİK KULLANICI ARAYÜZÜ (GRAPHIC USER INTERPHASE-GUI) 8.1 JBUTTON 8.2 JLABEL, JTEXTFIELD VE JTEXTAREA GRAFİK KONTROL SINIFLARI 8.3 MOUSE KONTROLU 8.4 KONTROL KUTUSU (JCHECKBOX) 8.5 RADIO KONTROL DÜĞMESİ 8.6 LIST KONTROLU JSCROLLPANE FORMAT DEYİMİ 8.7 MENU KONTROLU 8.8 JSLIDER GRAPHIC KONTROLU 8.9 JTABLE TABLO OLUŞTURMA 8.10 GRAFİK SAYFASINI FORMATLAMA 8.11 ALIŞTIRMALAR 8.12 PROBLEMLER 9.0 HATA KONTROLU 9.1 GENEL TANIMLAR 9.2 ALIŞTIRMALAR 9.3 PROBLEMLER 10.0 İLERİ VERİ YAPILARI 10.1 GENERIC(GENEL OLARAK TANIMLANMIŞ) METHODLAR 10.2 GENERIC(GENEL OLARAK TANIMLANMIŞ) SINIFLAR 10.3 LAMDA DEYİMLERİNİ GENEL SINIF TANIMLARIYLA KULLANMA 10.4 STRINGTOKENIZER SINIFI 10.5 STRINGBUFFER SINIFI 10.6 DİNAMİK BOYUTLU DEĞİŞKEN KULLANIMI : LIST, ARRAYLIST, VECTOR, LINKEDLIST,QUE SINIFLARI 10.7 DİNAMİK HAFIZAYLA TANIMLANAN BOYUTLU SINIFLAR : TREE (AĞAÇ YAPILARI) 10.8 DİNAMİK HAFIZAYLA TANIMLANAN BOYUTLU SINIFLAR :: HASHTABLE YAPISI 10.9 DİNAMİK HAFIZAYLA TANIMLANAN BOYUTLU SINIFLAR: NAVIGABLE SET 10.10 DİNAMİK HAFIZAYLA TANIMLANAN BOYUTLU SINIFLAR: VERİ DEPOLAMA İÇİN ARRAYLIST YAPISINI KULLANAN BİR PROGRAM 10.11 ALIŞTIRMALAR 10.12 PROBLEMLER 11.0 DOSYALAR, DOSYALARDAN VERİ OKUMA VE YAZMA 11.1 FILE SINIFI 11.2 READING SEQUENTIAL FILES THROUGH CHANNELS 11.2.1 BUFFERED READER SINIFI 11.2.2 SCANNER SINIFI 11.3 WRITING INTO SEQUENTIAL FILES THROUGH CHANNELS 11.4 ZIP,UNZIP SINIFLARI 11.5 ALIŞTIRMALAR 11.6 PROBLEMLER 12.0 VERİTABANI PROGRAMLAMA 12.1 SQLITE VERİTABANI 12.2 SQLITE VERİTABANI İLE SQL KOMUTLARININ KULLANIMI 12.3 SQL VE SQLITE VERİ TABANININ JAVA ORTAMINDA KULLANILMASI 12.4 HAFTA 16 EKSERSİZLERİ 12.5 HAFTA 16 ÖDEVLERİ 13. 0 HESAP ÇİZELGESİ PROGRAMLARINDAN VERİ OKUMA VE YAZMA 17.1 GENEL TANIM 17.2 HESAP ÇİZELGESİ PROGRAMLARINDAN VERİ OKUMA 17.3 HESAP ÇİZELGESİ PROGRAMLARINI FORMATLAMA 17.4 HESAP ÇİZELGESİ PROGRAMLARINA VERİ YAZMA 17.4 ALIŞTIRMALAR 17.5 PROBLEMLER 14.0 GERÇEK ZAMAN PROGRAMLAMA 18.1 PROGRAMLAMADA THREAD KULLANIMI 18.2 SİNKRONİZASYON 18.4 ALIŞTIRMALAR 18.5PROBLEMLER 15.0 JAVA PROGRAMLARININ İÇİNDE BAŞKA JAVA PROGRAMLARINI YAZDIRMA, DERLEME VE ÇALIŞTIRMA (GERÇEK ZAMAN PROGRAMLAMA) 19.1 JAVA PROGRAMLARINI GERÇEK ZAMANDA DERLEME 19.2 PROGRAM İÇİNDE PROGRAM YAZMA VE DERLEME 19.3 ALIŞTIRMALAR 19.4 PROBLEMLER 16.0 NETWORK PROGRAMLAMAYA GİRİŞ 16.1 UNIFORM RESOURCE LOCATERS (URL) YAPISI 16.2 SOCKET PROGRAMLAMA (TCP/IP) 16.3 DATAGRAM 16.4 ALIŞTIRMALAR 16.5 PROBLEMLER 17.0 JAVA ANADİL PROGRAMLAMASINA GİRİŞ 17.1 TEMEL KAVRAMLAR, C VE C++ PROGRAMLAMA DİLİ 17.2 DEĞİŞKENLERİN VE JAVA NESNELERİNİN AKTARILMASI 17.3 ALIŞTIRMALAR 17.4 PROBLEMLER 19. REFERANS LİSTESİ 20.0 EKLER Java deyimleri özeti Konsol (dos) girdi Kullanıcı arayüzü(GUI) grafik girdi Scanner input = new Scanner(System.in); String string = JOptionPane.showInputDialog( int intValue = input.nextInt(); "Enter input"); long longValue = input.nextLong(); int intValue = Integer.parseInt(string); double doubleValue = input.nextDouble(); double doubleValue = float floatValue = input.nextFloat(); Double.parseDouble(string); String string = input.next(); Kullanıcı arayüzü(GUI) grafik çıktı Konsol (dos) çıktı JOptionPane.showMessageDialog(null, System.out.println(herhangibirdeğer); "girdiyi yaz"); Temel veri türleri Aritmetik işlemler işlemler byte 8 bits (-128 den 127 e) + toplama = eşitleme, atama short 16 bits ( -32768 den 32767 e) - çıkarma += toplama * çarpma int 32 bits ( -2157483648 den 2147483647 e) -= çıkarma / bölme long 64 bits (-9223372036854775808 den 9223372036854775808 e) *=çarpma % kalan float 32 bits (-3.40292347e+38 den 3.40292347e+38 e) ++var bir artma (önceden) /= bölme double 64 bits (1.7976931348623157e+308 den --var bir azalma(önceden) %= kalan işlemleri 1.7976931348623157e+308 e) var++ bir artma(sonradan) char 16 bits (Unicode) var—bir azalma(sonradan) boolean 1 bit (true/false) Karşılaştırma işlevcileri Mantık işlevcileri if (Eğer) deyimi < küçüktür && VE <= küçüktür veya eşittir || VEYA if (şart1-boolean) {deyimler;} > büyüktür ! DEĞİL else if (şart2-boolean) {deyimler;} >= büyüktür veya eşittir ^ exclusive VEYA else if (şart3-boolean) {deyimler;} == eşittir ……… != eşit değildir else {deyimler;} switch deyimi While ve do-while döngü deyimleri For döngü deyimi switch (integer seçici) { case değer1: while (şart-boolean) { for (başlangıç değerleri, deyimleri; şart- deyimler; deyimler; boolean;arttırma deyimi) break; } { ... deyimler; case değern: } deyimler; do { break; deyimler; default: } while (şart-boolean); deyimler; } Sıkça kullanılan statik metodlar ve sabitler Statik tek boyutlu değişkenler Math.PI int[] list = new int[10]; Math.exp() list.length; Math.random() int[] list = {1, 2, 3, 4}; Math.pow(a, b) System.currentTimeMillis() statik çok boyutlu değişkenler System.out.println(anyValue) int[][] list = new int[10][10]; JOptionPane.showMessageDialog(null, list.length; message) list[0].length; JOptionPane.showInputDialog( int[][] list = {{1, 2}, {3, 4}}; prompt-message) Integer.parseInt(string) Double.parseDouble(string) Arrays.sort(type[] list) Arrays.binarySearch(type[] list, type key) 1.0 PROGRAMLAMA DİLİNE GİRİŞ 1.1 NİÇİN JAVA PROGRAMLAMA DİLİ Java Programlama dili şu anda dünyadaki en popüler programlama dillerinden biri haline gelmiştir. Java SUN bilgisayar şirketince orijinal olarak elektrikli ev araçlarının (mikrodalga fırınları, buzdolapları , televizyonlar, uzaktan kumanda cihazları vs.) birbiriyle haberleşmesini sağlamayı amaçlayan bir proje içerisinde 1991 yılında geliştirilmeye başlandı. Orijinal adı bu dilin yaratıcıları James Gosling, Patrick Naughton, Chis Wartdh, Ed Frank ve Mike Sheridan tarafından Oak olarak konulan programlama dili daha sonra bu isimde başka bir programlama dili olduğu keşfedilince o anda bir kahvehanede kahve içen programlama gurubu tarafından kahve markasından esinlenerek Java olarak değiştirildi. Akıllı elektronik ev araçları pazarı SUN gurubunun tahminlerinden çok daha yavaş bir gelişme gösteriyordu. Bu yüzden Java dili projesi ticari bir geliştirme projesi olarak büyük olasılıkla iptal edilecekti. 1993 Yılında "World Wide Web" büyük bir atılım göstererek bütün dünyaya yayılmaya başladı. Javanın Dinamik Web sayfaları hazırlamadaki büyük potansiyelini gören SUN şirketi projeyi bu tarafa yönlendirdi ve bu javaya yeni bir canlılık ve yaşama umudu sağladı. Mayıs 1995 de SUN javayı büyük bir konferansta tanıttı. Program iş dünyası tarafından derhal büyük bir ilgiyle karşılandı. Java Modern bilgisayar dünyasının ses, grafik işlem, haberleşme gibi ihtiyaçlarına cevap verebilen ve Ticari gayeler için hazırlanan bir Program dili olarak daha önceki bilgisayar dillerinin hiç birinin kapsayamadığı özellikleri içermekteydi. Bunun yanı sıra dil komut yapısı olarak C++ diline çok yakın olması da öğrenilmesini kolaylaştırıyordu. SUN Javayı "World Wide Web" de kullanmak isteyen herkese ücretsiz olarak sundu. Java internette yayınlanmasının ardından çok büyük bir patlama yaşadı. 1997 ye gelindiğinde dünyadaki bütün bilgisayar okullarında temel bilgisayar dili olarak gösterilmeye başlandı. Dünyada şu anda hala en çok kullanılan bilgisayar dili olan C++ dilinin yapılan hataları tam olarak denetlememesi programın çalışma hızını arttırma yönünden iyi bir özellik olsa da profesyonel programcılar dışında kullanılmasını sınırlandırıcı bir etki yapıyordu. Java ise bütün hataları bildiren yapısı ve modern bilgisayarın bütün fonksiyonlarına ulaşabilen kütüphaneleriyle programcıların çok daha kolaylıkla öğrenebileceği bir dildir. Burada hemen şunu da belirtelim. C dili hızlı çalışma amacı birinci planda tutularak yaratılmış bir dildir. Javada ise emniyet ilk planda yer almıştır. Hız açısından düşünüldüğünde java C (ve C++) diliyle rekabet edemez. zaten program derleyicisi de C++ dilinde yazılmıştır. Javanın diğer önemli bir temel özelliği Nesne kökenli (object oriented) bir dil olmasıdır. Nesne kökenli diller, nesneleri gerçek dünyadakine daha benzer bir yapıda tanımlayarak anlaşılmalarını kolaylaştırırlar. Nesneleri gerçek dünyadaki gibi masa, sandalye, bilgisayar, gerçek gaz, ısı eşanjörü gibi tanımlayarak programlamak insan beyninin anlaması açısından çok daha kolaydır. Bundan önceki tam nesnel kökenli programlama dillerinden hiçbiri çok yaygınlık kazanmamıştı. Bu tür dillere Smalltalk,u Örnek verebiliriz. C++ nesnel kökenli programlama yapabilen bir dildir. Fakat yapısal (structural) birprogramlama dili olan C dilinin bir uzantısı olarak geliştirildiğinden tam anlamıyla nesnel kökenli bir dil olduğu söylenemez. Java dilini geleceğin dili yapan diğer bir özelliği de çok kullanımlı (multi-tasking) ve paralel kullanımlı(multi- treading) bir dil olmasıdır. Çok kullanımlılık birden fazla işlemin aynı anda yapılabilmesinin tanımıdır. Paralel kullanımlılık ise birden fazla programın aynı anda hafızayı beraber kullanarak kullanılabilmesidir. Örnek olarak World ve Excel programlarının Windows NT ortamında aynı anda kullanılmasıdır. ADA gibi bazı eski Program dillerinde çok kullanımlılık programlanabiliyordu. Paralel kullanım olanaklarını sunan ilk bilgisayar dili ise javadır. Paralel kullanım paralel programlama kavramından ayrıdır ve karıştırılmamalıdır. Paralel programlanmada birden fazla Bilgi işlem Ünitesine (CPU ) ayrı programlar veya bir programın ayrı parçaları gönderilir. Paralel kullanımda ise bir CPU nun kullanım zamanı küçük parçalara ayrılarak değişik Program veya Program parçacıkları bu zaman paketçiklerini paylaşarak kullanırlar. Javayı önemli bir Program dili haline getiren en önemli özelliği ise kullanılan bilgisayardan bağımsız olmasıdır. Javada yazılan bir Program Unix, Machintosh, Windows 95 veya Windows NT veya herhangi bir 32 bit makinada hiç değiştirilmeden kullanılabilir. Java programlarının grafikleri "Wold Wide Web" sayfalarının programlama dili olan html (hypertext markup language) ile aktarılır. Bu yüzden html ve java programlarını birlikte kullanmak ve java programlarını gerçek zamanda www sayfalarında göstermek mümkündür. Kendi web sayfanızı veya webde yazılmış kitabınızı bütün dünyaya aktarırken yaptığınız analizleri de bu kitabın dinamik bir parçası olarak sunabilirsiniz. Bu Türkiye gibi ülkelerin dünyaya kapılarını daha kolay açmaları açısından oldukça önemli bir özelliktir. Javanın HTML diliyle kullanılabilmesi, bazı kişilerde htmlin bir parçası olduğu gibi bir kavram gelişmesine yol açmiştir. Programlamaya yeni başlayanlar sık sık html ile javayı birbirine karıştırırlar. veya javanın HTML'nin bir uzantısı olduğunu düşünürler. Bu temelde oldukça yanlış bir varsayımdır. HTML internet belgelerini birbirine bağlamak amacıyla geliştirilmiş bir belge işlem sistemidir ve bir programlama dili değildir. HTML ile javanın tek gerçek ilgisi HTML deki applet komutudur. bu komut yardımıyla java dilinde yazılmış programların sonuçları HTML ortamına dinamik olarak aktarılabilir. Android giderek yayılan bir işletim sistemi olarak önce telefon gibi sistemlerin temel işletim sistemi olarak ortaya çıktı ve giderek bilgisayar alanlarında yayılmakta.Linux tabanlı bu işletim sisteminde java programlama dili önemli bir yer tutmaktadır. Android uygulamaları java programlama dili kullandığından bu dilin gelişmesinde önemli bir rol oynamaya aday görünmektedir. 1.2 BİLGİSAYARDA JAVA PROGRAMLARINI KURMA Java programlama diliyle bilgisayar programı yazmaya başlayabilmek için elinizde Java kurma seti (Java Development Kit- JDK ) bulunmalıdır. Bu paket Orackle bilgisayar sitesinin adresinden ücretsiz olarak indirilebilmektedir. http://www.oracle.com/technetwork/java/index.html Siteye girdiğinizde önce JAVA SE program paketini seçiniz. Bundan sonra JDJ7.4 sürümünü veya bulunan en yeni sürümü seçebilirsiniz. “Download”(yükle) düğmesine basarak programı yüklemeye başlıyabilirsiniz Licence Aggrement (Licans kabulü) kutusunu işatretleyiniz ve kullandığınız işletim sistemine göre yükleyeceğiniz program versiyonunu seçiniz. 64 bit bilgisayar sistemi kullanıyorsanız 64 bit versiyonunu seçebilirsiniz. Benim kişisel olarak gerçek zaman prohramlamalarında dış algılayıcılardan veri okurken problemlerim olduğundan 32 bir versiyonunu tercih ediyorum. Programı internetten yükledikten sonra çalıştırarak bilgisayarımıza yükleyebiliriz. Yükleme esnasında program size yüklenecek dosya sistemini soracaktır. c:\java veya d:\java gibi basit bir dosya sistemi kullanırsanız, daha sonra erişim gerektiğinde erişim daha kolay olabilir.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.