Javada Veri Tabanı İşlemleri

Benzer belgeler
Bilgisayar Mühendisliği Bölümü,Mehmet Akif Ersoy Üniversitesi,Burdur

Javada Veri Tabanı Kullanımı

Arraylist. Özet. Giriş

YAZILIM İSTERLERİ ÇÖZÜMLENMESİ

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

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Proje 1. Arayüz Tasarımı

Android Ders Notları

Sunum İçeriği. Programlamaya Giriş

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

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 18: Formatlı Grafik Kullanıcı Arayüzü Oluşturma

Görsel Programlama DERS 07. Görsel Programlama - Ders07/ 1

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

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

YZM 2105 Nesneye Yönelik Programlama

MOBİL UYGULAMA GELİŞTİRME

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

MOBİL UYGULAMA GELİŞTİRME

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

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

Yrd. Doç. Dr. Caner ÖZCAN

BTEP243 Ders 3. class Yazım Kuralı:

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

NESNEYE YÖNELİK PROGRAMLAMA

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

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

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

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

HSancak Nesne Tabanlı Programlama I Ders Notları

public static int Toplam int x, int y

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

BMH-303 Nesneye Yönelik Programlama

Java Class Yapısında Finalize Metotunun Kullanımı

MOBİL UYGULAMA GELİŞTİRME

BİL-142 Bilgisayar Programlama II

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ü

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

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

Burak Kıymaz JAVA FX

HESAP MAKİNASI YAPIMI

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

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

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.

Genel Programlama II

Yrd. Doç. Dr. Caner ÖZCAN

BİL-141 Bilgisayar Programlama I (Java)

Java String İşlemleri

Listview Kullanımı. Aşağıdaki örnekte bir ListView'ı birkaç ülke ismiyle dolduracağız.

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

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

MOBİL UYGULAMA GELİŞTİRME

Swing ve JDBC ile Database Erişimi

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

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Nesne Yönelimli Programlama

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

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

1 - Button Kontrolu Nasıl Yapılır?

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

HSancak Nesne Tabanlı Programlama I Ders Notları

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi YAYIN ALICILARI. BLM401 Dr.Refik SAMET

19 Şubat 2016 Cuma

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

Üst Düzey Programlama

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

Bölüm 22. Java GUI Kütüphanesi SWT GUI Kütüphanesi SWING GUI Kütüphanesi İlk Swing Programı

Erişim konusunda iki taraf vardır:

Lambda İfadeleri (Lambda Expressions)

Java Programlama Giriş

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Balon & Banka Teslim tarihi: 17 Kasım 2008

JAVADA DİZİ İŞLEMLERİ

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

JAVA PROGRAMLAMAYA GİRİŞ

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

7. HAFTA. Erişim Belirleyiciler

YZM 2105 Nesneye Yönelik Programlama

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

Java da İstemci Tarafı Uygulamalar

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Öğr. Gör. Serkan AKSU 1

Görsel Programlama DERS 08. Görsel Programlama - Ders08/ 1

YMT219 VERİ YAPILARI ÖDEV-1

Programlama Dillerinde Kullanılan Veri Tipleri

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

Java JDK (Java Development Kit) Kurulumu:

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 3

Java Dersi. Altuğ Bilgin Altıntaş

HSancak Nesne Tabanlı Programlama I Ders Notları

C#(Sharp) Programlama Dili

Pointer Kavramı. Veri Yapıları

Fatura Dinamik Kodlama İyileştirmeleri

Nesneye Dayalı Programlama

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Transkript:

Javada Veri Tabanı İşlemleri Bir önceki yazımızda Javada veri tabanının nasıl kullanılacağını, kurulumunu MySQL üzeriden anlatmıştık. Bu yazımızda da yine MySQL üzerindeki bir veri tabanında Java ile hangi işlemleri yapabiliriz göreceğiz. Ekleme Bir veri tabanına veri eklemek özellikle raporlama, analiz ve gelişim açısından oldukça önemlidir. Kullanıcı geçmişte eklenen verilere göre geleceğe yönelik hamleler yapabilir, geçmişte yaşanan sıkıntıları düzeltebilir. Bu bile veri tabanının ne kadar önemli olduğunun başlı başına göstergesidir. Bunun ilk adımı olan veri tabanına veri ekleme kodlarını aşağıda görebilirsiniz. Biz burada SQL komutlarını kullandık. [crayon-5956bf94ad3b8946528015/] Güncelleme Veri tabanındaki verileri güncellemek daha önce yanlış girilen verileri düzenlemek, eldeki veriyi değiştirmek açısından oldukça önem arz eder. Bu işlemi de yukarda olduğu gibi SQL komutlarıyla yapıyoruz. [crayon-5956bf94ad3ce563163400/] Silme Veri silmek için de aşağıdaki kodları yazmamız yeterli olacaktır. [crayon-5956bf94ad3d8883783931/] Yukardaki işlemde Personel veri tabanındaki ID numarası 4 olan satır silinecektir.

Yazımızda basit manada ekleme, silme, güncelleme komutlarının nasıl olacağı anlatılmıştır. Bu işlemler SQL komutlarıyla yapılabileceği gibi ResultSet üzerinden de Java kodlarıyla yapılabilirdi. Javada Veri Tabanı Kullanımı Veri tabanı, bir programın işlemesinde, depolanmasında, analiz ve kontrol edilmesinde çok önemli bir yer tutar. Veri tabanı ve veri tabanındaki tablolar herhangi bir veriye kolayca erişebilmemizi, güncelleyip silebilmemizi, veri eklemememizi ve programdaki verilerin düzenli bir tabloda tutulması sebebiyle de programın hızlı çalışmasını sağlar. Bu yazımızda sizler için Javada veri tabanının kullanımı hakkında bilgi vereceğiz. Biz yazımızda MySql veri tabanını örnekleyeceğiz. Javada MySql veri tabanını kullanabilmek için öncelikle bilgisayarımızda MySqlin çalışıyor olması lazım. AppServ veya XAMMP Server gibi uygulamaları MySqli çalıştırmak için kullanabilirsiniz. MySqli çalıştırdıktan sonra bilgisayarınızda hizmetler kısmından MySqlin başlatılıp başlatılmadığını kontrol edebilirsiniz. Hizmet Kontrolü MySQL

Artık Java için kullanacağımız IDEmize geçebiliriz. Biz bu yazımız için NetBeans i kullanacağız. Programımızda MySql veri tabanı kullanmak için öncelikle bağlantısını kurmamız gerekiyor. Bunun için de projemizin kütüphanesine MySQL JDBC Sürücüsünü eklememiz gerekiyor. Artık Bağlantı yapabiliriz. MySQL JDBC Sürücüsü JAVA-MySQL bağlantısı için classınızın içine şu kodları yazmanız gerekiyor. [crayon-5956bf94ae584010850941/] Burada username kısmına MySQLi kurarken belirlediğiniz kullanıcı adı ve password yerine de şifrenizi, dbname kısmına da MySQL de oluşturduğunuz veri tabanının adını girmeniz gerekiyor. Daha sonra main metodunuzun içine de aşağıdaki kodları yazdığınızda MySQL ile bağlantı kurma işlemi tamamlanmış olacak. [crayon-5956bf94ae591744001687/] JAVAda MYSQL kullanımını anlatmış olduk. Bundan sonra veritabanı üzerinde işlem yapabilirsiniz.

Java JTextField JTextField KORAY ÇAMDALI Bilgisayar Mühendisliği Bölümü,Mehmet Akif Ersoy Üniversitesi,Burdur koraycamdali@gmail.com ÖZET:Bu makalede JTextField in Java üzerindeki ne işe yaradığını ve özelliklerini ele alacağız.aynı zamanda java da farklı text özellikleri olmasına rağmen TextField farklı opsiyonlar ile her işe yarıyor.bu durumları ele alıp aynı zamanda şekil ve kod örnekleri olarak bu konuları ele alacağız. Anahtar Kelimeler: Java, Event, Main, JTextField, Code. J ile başlayan bileşenlerin Swing isimlendirme kurallarına uyduğu Frame nesnesine JFrame denir.(jbutton, JLabel) JFrame Yüksek-Seviye taşıyıcı olarak adlandırılır, yani JFrame görüntülenmek için kendini başka bir nesneye ekleme gereksinimi duymaz.içerik bölme; bütün text, buton ve grafiklerin konulduğu yerdir. bu öğreticilerde İçerik bölmesiyle çalışacağız.bu örnekte gördüğünüz üzere jframe birkaç bileşenden oluşur. görüntü bileşenlerini eklemek için, içerik bölmesinde koyacağımız yerleri belirlemeliyiz.içerik bölmesi; kapsama hiyerarşisinde en üst sıradadır. kapsama hiyerarşisi kök dizin olarak üst sıra taşıyıcısını(bu durumda jframe) alan bileşenlerin oluşturduğu bir ağaç gibidir. aşağı doğru indikçe, bileşenleri tutmak için jpanel gibi diğer taşıyıcıları kullanırız. [1] invokelater() metodu uygulamayı swing olay sırası(swing event queue) na sokar.gui nin belirli durumlarda takılmasını

engellemek için kullanılır.bu konu daha sonraki konulardan biridir ve şimdi bunu düşünmemeliyiz. [2] Bu bölümde, Swing kullanarak ilk programımızı oluşturacağız.örnekler çok basit olacak. Örnek fonksyonellikleri inceleyeceğiz. İlk örnekte basit bir pencere yaratacağız. Alternative 1: JFrame in Genişletilmesi Alternative 2: JFrame Sınıfının Kullanılması Bu konuları ele aldıktan sonra Java da nasıl oluşturduklarını gördük ve aynı zamanda burdan sonra birkaç JTextField örneği ile makaleyi tamamlayacağız. Dikkat ettiğimizde Netbeans özellikle kalıp buton özellikleri ile dikkat çekiyor.son olarak da aynı örneği eclipse de inceleyelim. //Kodlar //MainFrame import java.awt.flowlayout; import java.awt.event.mouseadapter; import java.awt.event.mouseevent; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.joptionpane; import javax.swing.jtextfield; import javax.swing.windowconstants; public class MainFrame { public static void main(string[] args) { //Jframe herşeyi kaplar ve //Swing kütüphanesi J ile başlar.

JFrame bizimframe=new JFrame( Bizim Form ); //Formun Büyüklüğünü belirliyoruz. bizimframe.setsize(300, 100); //Bu kodu koymazsak Jframe penceresini kapatsakta //program kapanmaz sadece görünürlüğü false olur. bizimframe.setdefaultcloseoperation(windowconstants.exit_on_cl OSE); //Button oluşturuyoruz. JButton btngoster=new JButton( Göster ); //TextField oluşturuyoruz. //final olmasının sebebi addmouselistener içinde //erişmek için. final JTextField txtisim=new JTextField(15); //Buttonun olaylarını yakalıyoruz. //İç sınıf tanımladık (MouseAdapter) ve metotlarından birini ezdik. btngoster.addmouselistener(new MouseAdapter() { //Mouse tıklandığındaki olayı yakalar. @Override public void mousepressed(mouseevent e) { //txtisim.gettext() txtisimdeki Texti getirir. //txtisim.settext() dediğimizde de text atayabiliriz. JOptionPane.showMessageDialog(null, txtisim.gettext()); ); //Layout oluşturulan form nesnelerinin nasıl frame de //yerleştirileceğini belirler. //FlowLayout sıra ile koyar. bizimframe.getcontentpane().setlayout(new FlowLayout()); //Buttonu ve textfield ekliyoruz. //Eğer kodları koymazsak Frame de gözükmezler. bizimframe.getcontentpane().add(txtisim);

bizimframe.getcontentpane().add(btngoster); //Frame i görünür haline getiriyoruz. bizimframe.setvisible(true); [3] Java da ben eclipse de gördük bunların eventleri aynı zamanda properties lerinde ayrı ayrı özellikler var bunları eğer sürükle bırakla yazmazsak elimizle yazmak zorunda kalırız.jtextfieldı şimdilik bu konularda ele aldık. Referanslar: [1].https://tr.wikipedia.org/wiki/E%C5%9Flik_biti [2]. http://www.yildiz.edu.tr [3].http://bilgisayarkavramlari.sadievrenseker.com This Anahtar Sözcüğü ve Kullanımı Java da kullanılan yaygın anahtar kelimelerden birisi de thisdir. Aslında this anahtar kelimesi üzerinde işlem yapılan nesnenin kendisini dönmektedir. Java, this anahtar sözcüğünü bir metot içinde geçerli nesneye bir referansta bulunmak için kullanır. O metodu çağıran ifadelerin özel olduğunu göstermek için kullanırız. Örnek anahtar gizleme işlemi yapar (instance variable hiding). Aynı ada sahip 2 tane yerel değişken tanımlamak mümkün değildir ancak sınıfın örnek değişkenleriyle aynı ada sahip olan

(metodun parametreleri dâhil) yerel değişkenlere sahip olabilirsiniz. Yerel değişken örnek değişkenle aynı ada sahip ise örnek değişken gizlenir. This kelimesi isim çakışmaları olduğu durumlarda bir yerel değişkenin değil de, nesne değişkeninin kullanılacağını belirtmek için kullanılabilir. Örnek 1 : public class Ogrenci { private int no; private String isim; public Ogrenci(int no, String isim) { this.no = no; this.isim = isim; this Yukarıdaki kodda Ogrenci sınıfının yapıcı metodu içerisinde no ve isim parametre değişkenleri bulunmaktadır. Ancak aynı zamanda nesneye ait aynı isimli no ve isim değişkenleri de bulunmaktadır. Bu durumda yapıcı metod içerisinde no veya isim değişkenine erişilmek istendiğinde nesne değişkenlerine değil, parametre değişkenlerine erişilecektir. Yapıcı metod içerisinden yukarıda tanımlanan nesne değişkenlerine erişilmek istenirse this anahtar kelimesi kullanılır. This kelimesi o anda üzerinde işlem yapılan nesnenin referansını döndürür ve böylece nesne değişkenlerine erişmiş oluruz. This anahtar kelimesini kullanarak aynı sınıf içerisindeki diğer yapıcı metotları da çağırabiliriz. Örnek 2:

public class Ogrenci { private int no; private String isim; public Ogrenci(int no) { this(no, "Seçkin Tozlu"); public Ogrenci(int no, String isim) { this.no = no; this.isim = isim; this_2 Bu sınıfta iki tane yapıcı metod bulunmaktadır. İki parametreli olanı zaten yukarıda incelemiştik. Tek parametreli olan yukarıdaki yapıcı metot içerisinde this anahtar kelimesi kullanılarak ikinci yapıcı metot çağırılmıştır. This ile nesne değişkenlerine erişirken normal referanslarda kullandığımız gibi nokta ile devam ediyoruz ancak başka bir yapıcı metot çağırıyorsak, normal metot çağırır gibi parantez kullanıyoruz. This o anda işlem görmekte olan nesnenin referansını döndürdüğü için tek başına kullanıp parametre geçilebilir veya bir metottan değer olarak geri döndürülebiliyordu. Daha iyi anlamak için örnekte görelim: Örnek 3: import java.util.arraylist; import java.util.list; public class Client { public static void main(string[] args) { List<Ogrenci> ogrencilistesi = new ArrayList<Ogrenci>();

Ogrenci ogrenci1 = new Ogrenci(1, "Ali Bal"); Ogrenci ogrenci2 = new Ogrenci(2, "Ayşe Yaman"); ogrenci1.ekle(ogrencilistesi); ogrenci2.ekle(ogrencilistesi); this_3 Yukarıda önce bir Ogrenci listesi oluşturulmuş ve ardından iki tane öğrenci nesnesi yaratılmıştır. Daha sonra ogrenci1 ve ogrenci2 nesneleri üzerinden daha önce yazdığımız ekle metodu çağırılmıştır. Burada önemli olan nokta şudur: ogrenci1.ekle(ogrencilistesi); satırı çalışırken, ogrenci1 nesnesi üzerinden ekle metodu çağırıldığı için ekle metodu içerisindeki this anahtar kelimesi ogrenci1 nesnesini referans edecektir. Yani ekle metodu içerisinde ogrenci1 nesnesi listeye eklenecektir. Aynı şekilde ogrenci2.ekle(ogrencilistesi); satırı çalışırken de this kelimesi ogrenci2 nesnesini referans edecek ve dolayısıyla ogrenci2 nesnesi listeye eklenecektir. This kelimesini static bir metot içerisinde kullanamayız. Static metotlar bir nesneye değil sınıfın kendisine ait olduğu için this anahtar kelimesi burada anlamsız kalır, çünkü referans edebileceği bir nesne yoktur. Referanslar: 1. 2. 3. 4. http://yazilimdersi.info/makaleler/detay/85/javada-this- anahtar-kelimesinin-kullanimi http://www.seckintozlu.com/674-javada-this-anahtar-kelim esi-ve-kullanimi.html http://okanuzun.com/tag/java-this-kullanimi/ http://umiitkose.com/2016/08/javada-this-anahtar-kelimes i-nedir-ne-ise-yarar-kullanimi/

Java JButton JBUTTON KORAY ÇAMDALI Bilgisayar Mühendisliği Bölümü,Mehmet Akif Ersoy Üniversitesi,Burdur koraycamdali@gmail.com ÖZET:Bu makalede Event ini ve aynı zamanda blok özelliklerini de inceleyeceğiz.aynı zamanda Java da sürükle bırakla bu buton kodlarının nasıl rahat ve aynı zamanda nasıl işlevsel olduğuna yönelik konuları da ele alacağız.java Neatbeans ve Eclipse de nasıl olduğunu irdeleyeceğiz.jbutton özetle birkaç durumla ele alınacak. Anahtar Kelimeler: Java, Event, Main, Button, Code. Java programlama dili için bir başka GUI kütüphanesi daha vardır ve SWT(The Standard widget toolkit) olarak adlandırılır. SWT kütüphanesi ilk olarak IBM tarafından geliştirilmeye başlanmıştır. Şimdilerde IBM in desteklediği açık kaynak kodlu bir projedir. SWT ağırsiklet araçların bir örneğidir. Altta çalışan işletim sisteminin GUI yaratmasına izin verir. SWT; çalışmak için yerel java arayüzünü kullanır. SWT nin ana avantajları sürat, alışılmış görünüm ve hissiyattır. Swing kadar güçlü değildir ve işletim sisteminin kütüphanesi bağımlıdır. [1] Swing kütüphanesi Sun Microsystems tarafından piyasaya sürülen resmi Java GUI aracıdır. Swing; %100 java ile yazılmıştır ve Java Foundation Classes(JFC) nin bir parçasıdır. Tam donanımlı masaüstü uygulamaları geliştirmek

için kullanılan paketler bütünüdür. JFC; AWT,Swing,Ulaşılabilirlik,Java 2D ve Sürükle Bıraktan oluşur. 1997 yılında JDK 1.2 ile birlikte piyasaya sürülmüştür. [3] Bu konuları ele aldıktan sonra Java da nasıl oluşturduklarını gördük ve aynı zamanda burdan sonra birkaç button örneği ile makaleyi tamamlayacağız.dikkat ettiğimizde Netbeans özellikle kalıp buton özellikleri ile dikkat çekiyor.son olarak da aynı örneği eclipse de inceleyelim. package com; import com.arif.r; import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; import android.widget.button; public class activityekleactivity extends Activity {

public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); Button gitbuton=(button)findviewbyid(r.id.git); gitbuton.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { // TODO Auto-generated method stub startactivity(new Intent( android.intent.action.ac2 )); //yönlendirmeyi yapan kod. intent ile activityler arası yönlendirme, internet sitesini açma vs. Yapılabiliyor.

); [3] Şimdi bunun da görsel halini görerek bitirelim.java da ben eclipse de gördük bunların eventleri aynı zamanda properties lerinde ayrı ayrı özellikler var bunları eğer sürükle bırakla yazmazsak elimizle yazmak zorunda kalırız. Referanslar: [1].https://tr.wikipedia.org/wiki/E%C5%9Flik_biti [2]. http://www.yildiz.edu.tr [3].http://bilgisayarkavramlari.sadievrenseker.com

Garbage Collector Özet Bilgisayar Biliminde garbage collection kaynak yönetiminin özel bir adımıdır. Bilgisayar hafızasının yönetilmesi işleminde kullanılmaktadır. Bilgisayar programları çalışma zamanı sırasında bellek ihtiyacı duyarlar ve ihtiyaç duyulmayan hafıza alanları programlar tarafından işletim sistemine iade edilir. Bu işlem C dilinde malloc() ve free() fonksiyonları ile yapılmaktadır. Belirli durumlarda programların akışında bu iki fonksiyonun izini sürmek zorlaşır. İşletim sistemine iade edilmiş bir alanın program tarafından tekrar kullanılması güvenlik açıklarını beraberinde getirmektedir. Giriş Bilgisayar Biliminde garbage collection kaynak yönetiminin özel bir adımıdır. Bilgisayar hafızasının yönetilmesi işleminde kullanılmaktadır.bilgisayar programları çalışma zamanı sırasında bellek ihtiyacı duyarlar ve ihtiyaç duyulmayan hafıza alanları programlar tarafından işletim sistemine iade edilir. Bu işlem C dilinde malloc() ve free() fonksiyonları ile yapılmaktadır. Belirli durumlarda programların akışında bu iki fonksiyonun izini sürmek zorlaşır. İşletim sistemine iade edilmiş bir alanın program tarafından tekrar kullanılması güvenlik açıklarını beraberinde getirmektedir.programlama yaparken hafıza yönetimini otomatiğe bağlamak geliştiricilerin işini kolaylaştırmıştır. Böylelikle bir programcı program yazarken hafıza alanını garbage collector sisteminden talep edip, iade işlemine karışılmamaktadır. Kalan tüm işlemler garbage collection

mekanizması tarafından yapılmaktadır.garbage collection kullanılan hafıza alanlarının izini sürerek ihtiyaç duyulmayan alanları işletim sistemine iade etmektedir. Yeni bir talep geldiği zamanda yer bulup programa göndermektedir.garbage collection çalışma zamanında hafıza alanlarını yönetmektedir. Bu da bu sistemin işlemci kullanmasına sebep olmaktadır. İşlemci kullanımı ile alakalı iki farklı yönetim yaklaşımı bulunmaktadır. Birincisi stop-the-world yaklaşımıdır. Herhangi bir t zamanında garbage collector devreye girdiği zaman ilgili programdaki tüm işlemler durdurulur, hafıza yönetimi yapılır, daha sonra işlemler başlatılır. Bu çalışma zamanı kritik uygulamalar için bir dezavantaj oluşturmaktadır. Bu nedenle daha sonra concurrent algoritmalar geliştirilmiştir. Concurrent yaklaşımda garbage collection ile ilgili uygulama eşzamanlı olarak çalışmaktadır. Çöp toplayıcısı (garbage collector) heap te herhangi bir nesne varsa halen bir uygulama tarafından kullanılıp kullanılmadığımı kontrol eder. Heap te nesne varsa ve bu nesneler memory kullanıyorlarsa, kullandıkları bu memory yi garbage collector tekrar kullanmak için geri isteyebilir (mecburi kaldığı durumlarda, memory taşması gibi). Eğer heap için kullanılabilecek daha fazla memory alanı yoksa (yani bir önceki adım da garbage collector yeterli memory alanı sağlayamadıysa) new operatörü OutOfMemoryException istisnası fırlatacaktır. Garbage collector çalışmaya başladığında tüm objelerin heap içersinde birer çöp olduğunu farz eder. Bir başka değişle uygulama (application) root larının heap içersinde ki hiç bir nesneyi referas etmediklerini farzeder. Daha sonra çöp toplayıcı root üzerinde çalışmaya başlar ve root üzerinden erişilebilen tüm objelerin bir grafiğini çıkartır. Garbage Collector(GC) ın yaptığı iş temel olarak; kullanımı son bulmuş, hiçbir nesne örneği tarafından referans gösterilmeyen, bellek bölgelerini tesipit edip o bölgelerdeki bellek alanını boşaltmaktır. GC sizin yerinize yazılımınızı takip eder ve kullanılmaya bellek bölgelerini sisteme iade eder. Bu Java da asla bellek sızıntısı olmadığı anlamına

gelmez tabi ki ama daha öncelerine göre çok da az oranlara indirgenmiş ve bellek sızıntısı hatalarının tedavisi daha kolay hale gelmiştir. Az önce de söylediğim gibi Java pointer kavramını kabul etmez ve herşeye nesne gözü ile bakar. GC ise bu nesnelerin aktif kullanımın bellek üzerindeki etkisi ile ilgilenir. Program çalıştığı sürece otomatik olarak bu işlemler gerçekleştirilebileceği gibi aşağıdaki biçimde manuel olarak da tetiklenebilmektedir.gc nin çalışma mantığı, program içindeki değişkenlerin veya nesnelerin durumlarını takip edip ona göre davranış sergilemekten ibarettir. Günümüzde birkaç GC algoritması kullanılıyor. Bu algoritmalarda önemli olan değişkenlerin veya nesnelerin ne zaman silinmeye hazır olduklarının bilinmesidir. Değer türleri, yani yığın tabanlı değişkenler geçerli oldukları alandan (scope) çıktıkları zaman silinmeye hazır birer parça haline gelmiş olur. Nesneler ise kendilerine başvuru olmadığı zaman silinmeye hazır değişkenler haline gelir. Son paragraflarda anlattıklarımızı şekil üzerinde anlatmamız, çalışma ortamında neden bellek yönetiminin gerekli olduğunu daha açık gösterecektir. Yazdığımız programda Main() yordamı içerisinden aşağıdaki fonksiyonu çağırdığımızı varsayalım; Program yüklenmeye başladığında Main() yordamı içerisindeki tüm değişken ve yordamlar sırayla yığın üzerine taşınır. Bu aşamada KareAl() yordamı ve yordamın yerel parametresi olan Sayi değişkeni ardışıl şekilde yığın birimi üzerine taşınır. Program içerisinde, bir yordamdan başka bir yordamı geçildiği zaman ikinci metodun çalışması bittikten sonra programın kaldığı yerden devam edebilmesi için yığın üzerinde bir geri dönüş işaretçisi oluşturulur. Bu geri dönüş işaretçisi, fonksiyon çağrıları yapılırken geri dönüş adresini saklamak için kullanılır

Heap üzerindeki bu bellek alanına programcı tarafından da ulaşılamayacaktır. Bu durumda, GC nin devreye girmesi beklenir. GC, çalıştığı zaman heap üzerinde yığın ile bağlantısı kesilmiş nesneleri belirleyip onları bellekten kaldırır. Sonuç : Sonuçta olarak Garbage collection çalışma zamanında hafıza alanlarını yönetmektedir. Bu da bu sistemin işlemci kullanmasına sebep olmaktadır. İşlemci kullanımı ile alakalı iki farklı yönetim yaklaşımı bulunmaktadır. Birincisi stopthe-world yaklaşımıdır. Herhangi bir t zamanında garbage collector devreye girdiği zaman ilgili programdaki tüm işlemler durdurulur, hafıza yönetimi yapılır, daha sonra işlemler başlatılır. Bu çalışma zamanı kritik uygulamalar için bir dezavantaj oluşturmaktadır. Bu nedenle daha sonra concurrent algoritmalar geliştirilmiştir. Concurrent yaklaşımda garbage collection ile ilgili uygulama eşzamanlı olarak çalışmaktadır. Referanslar http://www.buraksenyurt.com/ http://www.csharpnedir.com/ https://tr.wikipedia.org http://erensarigul.blogspot.com.tr/ http://www.solvusoft.com/

Java da Dizi İşlemleri Dizi Elemanlarına Erişme Dizilerdeki her elemanın bir indisi vardır ve bu elemanlara indis numaraları ile erişilir. Dizilerin indisi 0 dan başlar. Örnek: Dizinin 6.Elemanına ulaşacağız. [crayon-5956bf94aebd2725748315/] Dizi Elemanlarını Listeleme Dizideki elemanları listelemek için basit bir for döngüsü kullanabiliriz. [crayon-5956bf94aebde749313401/] Dizinin Boyutunu Bulma Bir dizinin boyutu o dizideki eleman sayısıdır. Dizinin boyutunu bulmak için lenght özelliği kullanılır. [crayon-5956bf94aebe7650632810/] Dizimiz 5 elemanlı olduğu için programın çıktısı 5 olacaktır. Dizileri Sıralama Dizileri sıralamak için birden fazla yöntem vardır. Ama en basit olan Array.sort() metodudur. Bu metod diziki elemanları büyükten küçüğe doğru sıralar. [crayon-5956bf94aebf0377078516/] Dizilerde Arama Java da dizi içerisinde arama yapmak için binarysearch metodu kullanılır. Bu metod ile aranan elemanın dizideki indis numarası bulunur.

[crayon-5956bf94aebf8417137529/] Dizilerde Karşılaştırma Java da karşılaştırma için kullanacağımız equals() metodudur. Yalnız karşılaştırılacak diziler aynı tipte olması gerekir. (int,char,byte,long,float ) Bu metodu kullanmamız için java.util.arrays paketini import etmemiz gerekir. [crayon-5956bf94aec00342222438/] Diziyi Kopyalama Java da dizileri kopyalamak için iki yöntem var. İlk olarak for döngüsü kullanabiliriz. [crayon-5956bf94aec08592520224/] Diziyi kopyalamak için diğer yöntem olarak System.arraycopy() metodu kullanılır. [crayon-5956bf94aec10295614793/] Yazar: Necmi ALTUK GUI Programlama (JRadioButton Kontrolü) Bu kontrol JCheckBox kontrolüne alternatif kullanılabilir. Ancak işlevi farklıdır. JCheckBox kontrolünü bir tık ile seçili hale getirebilir, ikinci tık ile onayı kaldırabilirsiniz. Ancak bu kontrolde böyle bir durum söz konusu değildir. Onay kutucuğu işaretlendikten sonra, ancak başka bir JRadioButon kontrolü işaretlenerek bir diğerinin onayı kaldırılabilir. Özellikle cinsiyet seçeneği ve/veya lisans kabul seçeneklerinde kullanılan bir kontroldür.

Yapılandırıcılara ve metodlara gelince; bu kontrolün yapılandırıcıları ve metodları JCheckBox kontrolü yapılandırıcı ve metodları ile tamamen aynıdır. Ancak gelişmiş metodlarda farklılık gösterebilir. Örnek Kod: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Radiobutton extends JFrame implements ActionListener { JLabel jlab; public Radiobutton() { this.settitle("radiobutton Örneği");//Formun title'ını ayarlıyoruz this.setsize(300,150);//formun boyutunu ayarlıyoruz this.setdefaultcloseoperation(jframe.exit_on_close); this.setlayout(new FlowLayout()); JPanel jp_main = new JPanel(); jp_main.setpreferredsize(new Dimension(290, 140)); JPanel jpn1 = new JPanel(); JPanel jpn2 = new JPanel(); jpn1.setpreferredsize(new Dimension(280, 60)); jpn2.setpreferredsize(new Dimension(280, 65)); jp_main.add(jpn1); jp_main.add(jpn2); jpn1.setlayout(new GridLayout(1,3)); jpn2.setlayout(new FlowLayout()); jlab= new JLabel("Seçim Yapınız!");//oluşturulan jlabel nesnesinin yazısını değiştiriyoruz JRadioButton jrb1= new JRadioButton("Seçim-1",true);//Radiobuttonların nesneleri

olusturuluyor JRadioButton jrb2= new JRadioButton("Seçim-2"); JRadioButton jrb3= new JRadioButton("Seçim-3"); jrb1.addactionlistener(this); jrb2.addactionlistener(this); jrb3.addactionlistener(this); ButtonGroup bg = new ButtonGroup();//Radiobuttonları birbirine bağımlı yapmak için Grup oluşturuyoruz bg.add(jrb1);//oluşturulan ButtonGroup un içine radiobuttonları ekliyoruz bg.add(jrb2); bg.add(jrb3); jpn1.add(jrb1); jpn1.add(jrb2); jpn1.add(jrb3); jpn2.add(jlab); this.add(jp_main); this.setvisible(true);//görünür hale getiriyoruz //actionperformed ile buttonlara tıklandıkça jlab Labelının yazısını değiştiriyoruz @Override public void actionperformed(actionevent arg0) { JRadioButton jrb = (JRadioButton) arg0.getsource(); jlab.settext(jrb.gettext()); //jrb.settext("deneme"); //jrb.setvisible(false); //this.settitle(jrb.gettext()); public static void main(string[] args) { new Radiobutton();//Nesne üretmeden constructoru çağırıyoruz JRadioButton

Ekran Çıktıları: Referanslar: 1. 2. 3. 4. http://www.yazilimmutfagi.com/10251/windows/java/radiobu tton-kullanimi-ve-itemlistener-sinifi.aspx http://www.ethemsulan.com/2009/12/java-radiobutton-kulla nm.html https://oflazoglu.org/tag/jradiobutton/ A.Kerim Fırat, JAVA 8 SE, KODLAB, İSTANBUL, 2014 Java Yapılandırıcıları (Constructors) Bir sınıf tanımlandığında, bellekte henüz onu temsil edecek öğeler yoktur (static sınıflar hariç). Her sınıf için bu işi yapan özel bir metot vardır. Bu metoda yapıcı (constructor) diyoruz. Constructor bir sınıfın değişkenlerini somutlaştırarak kullanılan metoddur. Yapıcının görevi türe ait öğeler yaratmaktır. Java dilinde bu öğelere nesne (object, instance of the class) denir. Yapıcı (constructor), yaratılan sınıfın doğal bir parçasıdır ve aksi istenmedikçe ön-tanımlı (default) olarak derleyici tarafından oluşturulur ve kendi işlevini yapar. Constructor, javadaki öteki metodardan tamamen farklıdır. Bu metodun bir değer-bölgesi yoktur; yani hiçbir değer almaz. Bir tek işlevi vardır: sınıftan nesneler yaratmak.

Nesneye yönelik programlama yaklaşımında bir nesnenin oluşturulması sırasında ilk çalışan metodun ismidir. Buna göre bir nesnenin oluşturulması demek, nesneyi tarif eden sınıftan bir türün hafızada(ram) bir kopyası için yer açılması ve bu nesnenin bütün değişken ve metodlarının tanımlanan kısıtlamalarla erişilebilir olması demektir. Constructor Class ismi ile aynı olmalıdır. new anahtar kelimesi ve Sınıf isminden sonra parantezler eklenmesi ile oluşturulur. Constructorlar değer döndürmezler ancak kendi içinde işlem yapabilirler. Birden çok constructor tanımlanabilir. Sınıfa ait varsayılan işlemleri yapılandırırlar. Nesne yaratılırken, derleyici tarafından otomatik olarak oluşturulan constructor a ön-tanımlı (default) constructor demiştik. Ön-tanımlı constructor hiçbir parametresi olmayan ve sınıf ile aynı adı taşıyan bir metottur. Ancak, constructor bir metot olduğundan, istenirse aşkın yükleme (overload) yapılabilir, yani farklı parametrelerle farklı işlevlere sahip kılınabilir. Böyle bir constructor tanımlanınca, ön-tanımlı olan contructor kendiliğinden yok olur, onun işlevini tanımlanan constructor üstlenir. Derleyicinin yaratacağı öntanımlı constructor yerine, bir çok uygulamada aşkın constructor kurulması daha uygundur. Örnek 1: public class kalem { private String renk; private String tipi; // Boş Constructor // Tanımlanmadığı halde java bunu otomatik oluşturur. public kalem() { System.out.println( Boş Constructor ); // Parametreler farklı olduğunda 2 tane veya daha fazla constructor tanımlanabilir // Bunlara erişirken aldıkları parametrelere göre ayrıt edilir.

// Constructor public kalem(string renk, String tipi) { System.out.println( Dolu Constructor ); this.renk = renk; this.tipi = tipi; public void kaleminiz() { System.out.println( Kaleminizin rengi + renk + tipi + tipi); public class MainClass { public static void main(string []args){ // boş constructor çalışıcak kalem bk=new kalem(); // boş oldugu için kalem rengi ve tipini boş döndürecek. bk.kaleminiz(); System.out.println(); // parametre alan constructor kalem k=new kalem( Kırmızı, 2b ); k.kaleminiz(); Constructor Ekran Çıktısı : Boş Constructor Kaleminizin rengi null tipi null Dolu Constructor Kaleminizin rengi Kırmızı tipi 2b Örnek 2: public class dikdörtgen { int en, boy;

public dikdörtgen() { en = 0,boy=0; public dikdörtgen(int en, int boy) { this.en = en; this.boy = boy; Constructor_2 yukarıdaki örnek kodda dikdörtgen sınıfının oluşturucusu (constructor) iki kere yazılmıştır. Buna göre bir dikdörtgen oluşturulurken, bu sınıfı kullanacak olan sınıf aşağıdaki iki şekilde de oluşturabilir: dikdörtgen d = new dikdörtgen(); dikdörtgen d = new dikdörtgen(10,15); Constructor_2 Yukarıdaki iki satırda bir dikdörtgen tanımlayarak bu sınıftan bir nesne oluşturmaya yaramaktadır. Sonuçta ilk satırdan sonra eni ve boyu 0 olan, ikinci satırda ise eni 10 boyu 15 olan bir dikdörtgen tanıtılmıştır. Bu iki alternatif satır, aslında aynı objeyi iki farklı şekilde olarak oluşturma imkanı sunmuştur. Referanslar: 1. 2. 3. http://www.dijitalders.com/icerik/44/1997/java_class_yap isinda_constructor_ve_overloading.html#.wnv2fg_yjiu https://yazilimokulu.wordpress.com/tag/java-da-construct or-ne-ise-yarar/ http://bilgisayarkavramlari.sadievrenseker.com/2008/11/2 4/yapici-constructor

GUI Programlama (JCheckBox Kontrolü) Onay kutucuğu olarak isimlendirilir. Kullanıcıya seçenek sunmak için kullanılabilen bir kontroldür. Kontrolün varsayılan durumu onay (check) sız halidir. Ancak varsayılan olarak onaylı yapılması istenirse, kontrole ait Properties penceresindeki selected sekmesinden ayarlanabilir. Veya manuel olarak oluşturulmuş ise, yapılandırıcı vasıtasıyla onaylı hale getirilebilir. Javada swing bileşenine aittir. Kullanim şekilleri: JCheckBox box1 = new JCheckBox( ); //Yazı ve seçim yoktur JCheckBox box2 = new JCheckBox( Deneme ); //Sadece yazı var

seçili değil JCheckBox box3 = new JCheckBox( Deneme,false); //Yazı var seçili değil JCheckBox box4 = new JCheckBox( Deneme, true); //Yazı ve seçili JCheckBox Yapılandırıcılar JCheckBox(): Varsayılan yapılandırıcıdır. Aksi belirtmedikçe bu yapılandırıcı ile kullanılır. JCheckBox(Action a): Birden fazla JCheckBox kontrolünün olay (event)larını tek bir yere bağlamak için kullanılır. JCheckBox(Icon icon): Kontrole bir ikon vermek için kullanılır. Kontrole ait Properties penceresinde bunu yapmak mümkündür. Ancak manuel olarak oluşturulduğunda Properties ayarlarını manuel yapmanız gerekir. Çünkü kontrole ait bir Properties penceresi olmayacaktır. Bu durum tüm kontroller için geçerlidir. JCheckBox(Icon icon, boolean selected): Birinci parametreyle bir ikon, ikinci parametre ile true değeri verilerek kontrolü seçili (check) hale getirebilirsiniz. JCheckBox(String text): Kontrol üzerine veri yazdırmak için kullanılır. JCheckBox(String text, boolean selected): Birinci parametre ile kontrol üzerine veri yazdırmak, ikinci parametre ile kontrolü seçili (check) hale getirebilirsiniz. JCheckBox(String text, Icon icon): Birinci parametre ile kontrol üzerine veri yazdırabilir, ikinci parametre ile kontrole bir ikon belirleyebilirsiniz. JCheckBox(String text, Icon icon, boolean selected): Birinci

parametre ile kontrol üzerine veri yazdırabilir, ikinci parametre ile kontrole bir ikon belirleyebilir ve son parametre ile kontrolü seçili (check) hale getirebilirsiniz. Metodları: box1.settext("deneme123");// box1 JCheckBox'ının yazısını değiştirir. box1.gettext(); //box1 JCheckBox'ındaki yazıyı almamızı sağlar. box1.setselected(true); //Kontrolün onay kutucuğunu işaretli (check) hale getirir. box1.setselected(false); //Kontrolün onay kutucuğunu işaretsiz hale getirir. boolean isselected(); //Kontrolün onay durumuyla ilgili bilgi döndürür. Kutucuk işaretliyse true, aksi taktirde false döndürür. Metodlar Örnek Kod: package jcheckboxkontrolu; import java.awt.flowlayout; import java.awt.font; import javax.swing.jcheckbox; import javax.swing.jframe; import javax.swing.jlabel; /** * * @author IOzturkler */ public class JCheckboxKontrolu extends JFrame { JLabel yazi=new JLabel("JCheckBox Örneği:"); JCheckBox box1=new JCheckBox("Onay Kutucuğu",false); public JCheckboxKontrolu(){ setlayout(new FlowLayout());

setsize(275,150); setvisible(true); Font font=new Font("Times New Romans",Font.BOLD,12); box1.setfont(font);//box1 JCheckBox'ının Fontunu ayarlıyoruz. box1.setselected(true); add(yazi); add(box1); public static void main(string[] args) { JCheckboxKontrolu nesne=new JCheckboxKontrolu(); Ornek Kod Ekran Çıktısı Referanslar: 1. http://www.oguvenir.com/2013/04/java-gui-4-jcheckbox.htm l 2. https://docs.oracle.com/javase/8/docs/api/javax/swing/jc heckbox.html 3. http://www.yazilimmutfagi.com/10245/windows/java/checkbo x-kullanimi-ve-itemlistener-sinifi.aspx 4. A.Kerim Fırat, JAVA 8 SE, KODLAB, İSTANBUL, 2014