Java Dersleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Java Dersleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

24 Aralık 2013 Salı

Java Inheritance(Kalıtım) Uygulaması (Java extends Örneği)


Daha önce katıldığım java programlama kursunda yaptığımız bir (inheritance)kalıtım uygulaması. Programda tanımlanan tüm classlar personel sınıfından extends komutu ile türetilmiştir.

personel.java

import java.util.Locale;

public class personel {
    protected String ad;
    protected String soyad;
    public String tcKimlik;
    private Double sabitMaas=0.0;
   
    public personel(){
       
    }// defalut constructor
    public personel(String persAd,String persSoyad,double persMaas){
        ad=persAd;
        soyad=persSoyad;
        sabitMaas=persMaas;
        }
    public void setAd(String personelAd)// isim formatı:
    {// ad parametresinin sağındaki ve solundaki boşlukları alıp isim StringBuilder nesnesine ata.
        StringBuilder isim = new StringBuilder(personelAd.trim());
        if(isim.length()==0){// eğer isim nesnesinin uzunluğu 0 ise boş isim girilmiştir.
            System.out.println("Ad kısmı boş. Lütfen bir isim giriniz");
            }else{// isim nesnesinin ilk harfi büyük diğerleri küçük olarak şekillendir.
                for(int i=0;i<isim.length();i++){
                    if(i==0) isim.setCharAt(i, Character.toUpperCase(isim.charAt(i)));                   
                    }//for döngüsü sonu
                this.ad=isim.toString();
            }//else sonu
       
    }//setAd metod sonu
    public String getAd(){return this.ad;}
    public void setSoyad(String personelSoyad){
        personelSoyad=personelSoyad.trim();
        if(personelSoyad.length()==0){//soyad kısmının boş olup olmadığı kontrol ediliyor
            System.out.println("Soyad kısmı boş. Lütfen personel soyadını yazınız.");
        }else{// soyisim nesnesinin tümü büyük harf olacak
            this.soyad=personelSoyad.toUpperCase(new Locale("TR"));
        }//else sonu
    }
    public String getSoyad(){
        return soyad;
    }// getSoyad sonu
    final public void setTcKimlik(String tckimlik){
        this.tcKimlik=tckimlik;
    }
    public void setMaas(double maas){
        sabitMaas=maas;
    }
    public double getMaas(){return sabitMaas;}
    public double hakEdis(){
        System.out.print("Personel Hakediş:");
        return sabitMaas;
    }
}// personel classs sonu



SatisPersoneli.java


public class SatisPersoneli extends personel{
    public double satisTutari;
    public double primYuzdesi;
    public SatisPersoneli(){}
    public SatisPersoneli(String ptpAd,String ptpSoyad,double satisTutari,double prim){
        super(ptpAd, ptpSoyad, 500.0);// bu stırda satış personelinin bilgileri personel class'ındaki personel isimli metoda bilgi gönderir.
        this.satisTutari=satisTutari;
        this.primYuzdesi=prim;
    }// SatisPersoneli sonu
    public void setSatistutari(){
        if(satisTutari>=0)
            this.satisTutari=satisTutari;
        else
            System.out.println("tutar pozitif olmalı");
    }// setSatistutari sonu
    @Override
    public double hakEdis(){
        System.out.println("Satıi personeli hakediş:");
        return super.getMaas()+(this.satisTutari*(1+primYuzdesi));
    }

}

PartTimePersonel.java


public class PartTimePersonel extends personel{
    public int mesaiSaat;
    public double saatUcreti;
    public PartTimePersonel(){
        super();
    }
    public PartTimePersonel(String ptpAd,String ptpSoyad, int ptpMesai, double ptpSaatUcret){
        super(ptpAd,ptpSoyad,0.0);
        this.mesaiSaat=ptpMesai;
        this.saatUcreti=ptpSaatUcret;
    }//PartTimePersonel sonu
   
    public void setMesaiSaat(int saat){
        if(saat>=0)
            mesaiSaat=saat;
        else
            System.out.println("Mesai saati pozitif olmalı");
    }
    @Override
    public double hakEdis(){
        System.out.println("Pat Time Personel hakediş :");
        return saatUcreti*mesaiSaat;
    }

}

Stajyer.java


public class Stajyer extends personel{

}

PersonelTakip.java


public class PersonelTakip {
    public static void main(String[] args){
        personel isci,partIsci,stajyerIsci;
        isci = new personel("Kamil","turhan",1000.0);
        partIsci = new PartTimePersonel("Yusuf","eren",45,20.0);
        stajyerIsci = new Stajyer();
        personel satisIsci = new SatisPersoneli("haken","kart",40000.0,0.2);
       
        System.out.println(isci.hakEdis());
        System.out.println(partIsci.hakEdis());
        System.out.println(satisIsci.hakEdis());
    }

}

29 Ağustos 2013 Perşembe

Java'da if Yapısı

Java if kullanımı

Aşağıdaki basit java programı klavyeden girilen değerleri parseDouble metodunu kullanarak double türüne parse edip çevirdikten sonra if komutu ile değerlendirip sonucu görüntüler. Klavyeden JOptionPane ile girilen değerler String türünde saklanır. Bu yüzden eğer bu değerlerle matematiksel işlem yapılacaksa integer, double ya da float türlerine çevrilmesi gerekir. String değerlerin sayısal değerlere çevrilmesi işlemine Java'da parse yapma işlemi denir.


import javax.swing.JOptionPane;

public class ifuygulama {
    public static void main(String args[]){
       
        double ogrenciNot;
       
        not=Double.parseDouble(JOptionPane.showInputDialog("0-100 arası not giriniz:"));
    if(ogrenciNot>=90)
    {JOptionPane.showMessageDialog(null,"A","Öğrenci notu",JOptionPane.PLAIN_MESSAGE);}
    else if(ogrenciNot>=75)
    {JOptionPane.showMessageDialog(null,"B","Öğrenci notu",JOptionPane.PLAIN_MESSAGE);}
    else if(ogrenciNot>=60)
    {JOptionPane.showMessageDialog(null,"C","Öğrenci notu",JOptionPane.PLAIN_MESSAGE);}
    else if(ogrenciNot>=50)
    {JOptionPane.showMessageDialog(null,"D","Öğrenci notu",JOptionPane.PLAIN_MESSAGE);}
    else if(ogrenciNot>=40)
    {JOptionPane.showMessageDialog(null,"E","Öğrenci notu",JOptionPane.PLAIN_MESSAGE);}
    else
    {JOptionPane.showMessageDialog(null,"F","Öğrenci notu",JOptionPane.PLAIN_MESSAGE);}
   
    }

}

28 Nisan 2013 Pazar

Java Notları-4- Wrapper Nedir?

İlkel(primitive) veri tipleri olan int, float, short, long ve double, Java programlarının daha performanslı çalışabilmeleri için nesne olarak tanımlanmamışlardır. Buna karşın primitive tiplerin herbiri için oluşturulmuş birer Java sınıfı da mevcuttur. Java'da bu sınıflara Wrapper Class denir. Wrapper sınıflarına bir örnek:


public class ornek {
    public static void main(String[] args){
        String yazi="125";
        int sayi;
        Integer i = new Integer(5); /*wrapper class tanımı, i değişkeni Integer tipinde tanımlanıyor ve 5 değeri atanıyor*/
        sayi=Integer.parseInt(yazi); // String tipindeki bir değişkenin Integer tipine parse edilmesi
       
        System.out.println(sayi);
        System.out.println(yazi);
        System.out.println(i);
    }

}

Programın çıktısı ise şu şekildedir:

Java Wrapper Class

27 Nisan 2013 Cumartesi

Java Notları-3-Ondalıklı Sayı Değişkenleri

double ve float tipinde tanımlanmış değişkenler diğer programlama dillerinde olduğu gibi Java dilinde de ondalıklı sayıları bellekte tutmak için kullanılır.

float değişken tipi virgülden sonra 7 haneye kadar duyarlıdır. 32 bitlik veri tutar.

double değişken tipi virgülden sonra 17 haneye kadar duyarlıdır. 64 bitlik veri tutar.

25 Nisan 2013 Perşembe

Java Notları-2-Tam Sayı Değişkenleri

Java'da tam sayı değişkenleri int, byte, long ve short tiplerinde tanımlanabilirler. Bu değişkenlerin özellikleri aşağıdaki tabloda verilmiştir.

Değişken TürüTürkçesiBellekte Kapladığı AlanSınır Değerleri
intTam Sayı Değişkeni32bit-2157483648 ile 2147483647 arası
byteTam Sayı Değişkeni8bit-128 ile 127 arası
shortTam Sayı Değişkeni16bit-32768 ile 32767 arası
longTam Sayı Değişkeni64bit-9223372036854775808 ile
9223372036854775808 arası

Java Notları-1-Merhaba Dünya Programı

Konsol ekranına Merhaba Dünya yazdıran Java programı

selam.java kodları:

public class selam {
    public static void main(String[] args){
        System.out.println("Merhaba Dünya");
       
    }

}

Programın Eclipse ortamında Console çıktısı aşağıdaki gibidir.

Merhaba Dünya Java Programı

26 Mart 2013 Salı

Java GUI Örnek 1 (Java JFrame)

Java ile görsel programlama örnek 1


Java ile GUI(Graphical User Interface-Grafiksel Kullanıcı Arayüzü) çalışmalarımıza boş bir çerçeve oluşturarak başlıyoruz. Aşağıdaki kısa java programı ekranın sol üst köşesine başlığı "İlk Çerçevem" olan boş bir çerçeve çizdirir.

Bu ilk örek GUI uygulamamızı kısaca incelersek;

import javax.swing.JFrame; //JFrame sınıfı uygulamaya import ediliyor


public class main {

    public static void main(String[] args) {
        JFrame cerceve = new JFrame();// cerceve isimli JFrame nesnesi oluşturuluyor.
        cerceve.setTitle("İlk Çerçevem");// çerçevenin başlığı belirleniyor.
        cerceve.setSize(350, 300);// çerçevenin boyutları belirleniyor.
        cerceve.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// çarpıya basıldığında çerçeve ile birlikte programı da kapatan kod
        cerceve.setVisible(true);//çerçeveyi görünür kılan kod
       

    }

}

Örnek JFrame UygulamasıBu basit GUI örneğinin ekran görüntüsü sağ tarafta görüldüğü gibi boş bir pencere olmalıdır.










-Turgut ARSLAN-

28 Ocak 2013 Pazartesi

Java Docs Türkçe Package java.applet


Package java.applet

Bir applet ve appletin context'ini kullanan classları oluşturmak gerekli class'ları sağlar.

Applet framework'u iki temel unsurdan oluşur: applet ve applet context'i. Applet birkaç tane özel method ile başlatılabilen, çalıştırılabilen ve durdurulabilen bir gömülebilir penceredir.

Applet contexti appletlerin yüklenmesinden çalışmasından sorumlu bir uygulamadır. Mesela applet context'i bir web tarayıcısı ya da bir uygulama geliştirme ortamı olabilir.

Interface AppletContext

public interface AppletContext

Bu ​​Interface(arayüz) applet'in içinde bulunduğu ortama bağlıdır.

Bu arayüz yöntemler ortamı hakkında bilgi elde etmek için bir applet tarafından kullanılabilir.

Interface AppletContext Methodları:


getAudioClip


AudioClip getAudioClip(URL url)

Bir ses klibi oluştutur.

Parameters:
url - ses klibinin konumunu veren mutlak URL.
Returns:
Belirtilen URL adresindeki ses klibini verir.

getImage


Image getImage(URL url)

Ekranda görüntülenebilen bir Image nesnesini getirir. url argümanı kesin bir URL adresi ile belirtilmelidir.

Bu method resim olsa da olmasada daima bir sonuç döndürür.Applet ekrana bir resim çizmeye başladığında veriler yüklenecektir.Grafik parçaları ekrana aşamalı olarak çizilecektir.

Parameters:
url - Resmin kesin adresini veren URL.
Returns:
URL ile belirtilen resim.

getApplet


Applet getApplet(String name)

Belge içinde applet context'inde verilen isimle temsil edilen appleti bulur ve getitrir. İsim HTML tagının içinde name özelliğiyle ayarlanabilir.

Parameters:
name - bir applet ismi.
Returns:
isimle aranan appleti verir. Bulamazsa null değer döndürür.

getApplets


Enumeration<Applet> getApplets()

Bu applet contexti ile temsil edilen tüm appletleri bulur.

Returns:
İlgili applet contextinde belirtilen tüm appletleri numaralandırır.

showDocument


void showDocument(URL url)

url argümanı ile belirtilen tarayıcı ya da aplet viewerin isted ği Web sayfasını gösterir. Web sayfasında hangi frame ya da pencerenin görüntüleneceğini web tarayıcı ya da applet viewer belirler. Bu method applet context tarafından yoksayılailir ancak bu durum tarayıcılar için aynı değildir.

Parameters:
url - Belgenin konumunu veren mutlak URL.


showStatus


void showStatus(String status)

Bir string argumanı ile görüntülenen durum penceresini ister. Çoğu browser ve applet viewer böyle bir pencereyi sağlar, where the application can inform users of its current state.

Parameters:
status - a string to display in the status window.

setStream


void setStream(String key,
InputStream stream)
throws IOException

Aplet context'i içinde yazılan key ile stream'i birleştirir.  Eğer applet context'i önceden bu key için bir eşleşme içeriyorsa bu değer yenisi ile yer değiştirir.

Güvenlik sebebiyle stream'ların ve key'lerin herbirinin eşleşmesi  kod tabanında(codebase) gerçekleşir.Diğer bir deyişle  kod tabanındaki bir applet başka bir kod tabanındaki bir applet tarafından oluşturulan  oluşturulan stream'e erişemez.

Parametreler:
key - belirtilen değerle ilişkili olan anahtar kelimedir..
stream - belirli bir key ile birleştirilen akım(veri akışı). Eğer bu parametre null değerdeyse(boşsa), belirtilen key applet context'inden çıkarılır .

Throws:
IOException - Eğer stream(veri akışı) belirli bir boyut limitini aşarsa. Boyut limiti bu interface ya da implementor tarafından belirlenir.
IOException

Bu metod Java 1.4 ten itaibaren kullanıma sunulmuştur.

getStream


InputStream getStream(String key)


Applet context'inde belirtilen keyle ilişkili stream'i döndürür. Eğer applet context'i bu key için bir stream içermiyorsa metod null değeri döndürür.

Güvenlik sebebiyle stream'ların ve key'lerin herbirinin eşleşmesi  kod tabanında(codebase) gerçekleşir.Diğer bir deyişle  kod tabanındaki bir applet başka bir kod tabanındaki bir applet tarafından oluşturulan  oluşturulan stream'e erişemez.

Parametreler:
key - döndürülecek olan stream ile ilişkilidir.
Döndürdüğü Değer:
Applet context'ineki key ile uyumlu stream

Bu metod Java 1.4 ten itaibaren kullanıma sunulmuştur.

getStreamKeys


Iterator getStreamKeys()

Applet context'indeki streamlere ait tüm keyleri bulur.


Güvenlik sebebiyle stream'ların ve key'lerin herbirinin eşleşmesi  kod tabanında(codebase) gerçekleşir.Diğer bir deyişle  kod tabanındaki bir applet başka bir kod tabanındaki bir applet tarafından oluşturulan  oluşturulan stream'e erişemez.


Döndürdüğü Değer:
Applet context'indeki tüm stream isimleri için bir Iterator(yineleyici) döndürür..

18 Kasım 2012 Pazar

NetBeans İle Görsel Programlama

NetBeans Ortamında Görsel Olarak Hazırladığım Basit Bir Java Programı

Java Örnek Program
Bu program sadece bir sayının başka bir sayı ile bölümünden kalanı buluyor. Yani o sayının modunu alıyor. Biliyorum program çok basit ama burda önemli olan görsel öğelerin tasarlanması ve uygulaması. Normalde Java dilinde kalan hesaplamak için % operatörü(Mod operatörü) kullanılır. Mesela 24'ün mod 5'e göre değeri yani 24'ün 5'e bölümünden kalan 4'tür. Bunun Java dilindeki ifadesi 24%5 şeklindedir. Ancak ben bu programda başka bir yol kullandım. Kalanı hesaplayan algoritmanın denklemi şu şekildedir.




Kalan = Bölünen -(Bölünen/Bölen)*Bölen

Burada Bölünen ve Bölen Integer tipinde olduğundan bilgisayar hesaplamayı yaparken Bölünen/Bölen işlemi sonucunda bulunan ondalıklı sayının sadece tam kısmını alacak, ondalıklı kısmını atacaktır. Sonuç olarak denklem kalanı ya da diğer adıyla o sayının modunu vercektir.

NetBeans görsel tasarım ortamı aşağıdaki gibidir.

NetBeans Görsel Tasarım Ortamı

Program işe şu şekildedir

Programda iki ayrı Java Class'ı var ilki KalanHesaplama.java;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package kalanhesapla;

/**
*
* @author turgut
*/
public class KalanHesaplama extends javax.swing.JFrame {

/**
* Creates new form KalanHesaplama
*/
public KalanHesaplama() {
initComponents();
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
//
private void initComponents() {

jDesktopPane1 = new javax.swing.JDesktopPane();
hakkinda = new javax.swing.JInternalFrame();
jLabel1 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
kalanhesapla = new javax.swing.JInternalFrame();
bolunenyaz = new javax.swing.JTextField();
bolenyaz = new javax.swing.JTextField();
bolumyaz = new javax.swing.JTextField();
kalanyaz = new javax.swing.JTextField();
hesaplat = new javax.swing.JButton();
sil = new javax.swing.JButton();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
Baslat = new javax.swing.JMenuItem();
cikis = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
hakkindamenu = new javax.swing.JMenuItem();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Kalan Heaplayıcı");

hakkinda.setClosable(true);
hakkinda.setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
hakkinda.setTitle("Hakkında");
hakkinda.setVisible(false);

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel1.setText("Kalan Hesapla");

jLabel4.setText("Kişisel Java tabanlıeEğitim yazılımları çalışmalarım");

jTextArea1.setBackground(new java.awt.Color(227, 235, 247));
jTextArea1.setColumns(20);
jTextArea1.setEditable(false);
jTextArea1.setFont(new java.awt.Font("Verdana", 1, 10)); // NOI18N
jTextArea1.setForeground(new java.awt.Color(102, 102, 102));
jTextArea1.setRows(5);
jTextArea1.setTabSize(6);
jTextArea1.setText("Java eğitim yazılımı çalışmaları\n\nİletişim :\naarslan_tturgut@hotmail.com");
jTextArea1.setAutoscrolls(false);
jScrollPane1.setViewportView(jTextArea1);

javax.swing.GroupLayout hakkindaLayout = new javax.swing.GroupLayout(hakkinda.getContentPane());
hakkinda.getContentPane().setLayout(hakkindaLayout);
hakkindaLayout.setHorizontalGroup(
hakkindaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(hakkindaLayout.createSequentialGroup()
.addContainerGap()
.addGroup(hakkindaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(hakkindaLayout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 262, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(100, 100, 100)
.addComponent(jLabel4))
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
hakkindaLayout.setVerticalGroup(
hakkindaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(hakkindaLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(hakkindaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 14, Short.MAX_VALUE))
);

hakkinda.setBounds(10, 20, 300, 150);
jDesktopPane1.add(hakkinda, javax.swing.JLayeredPane.DEFAULT_LAYER);

kalanhesapla.setClosable(true);
kalanhesapla.setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
kalanhesapla.setTitle("Kalan Hesapla");
kalanhesapla.setVisible(false);

bolunenyaz.setText("Bölünen");
bolunenyaz.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bolunenyazActionPerformed(evt);
}
});

bolenyaz.setText("Bölen");
bolenyaz.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bolenyazActionPerformed(evt);
}
});

bolumyaz.setEditable(false);
bolumyaz.setText("Bölüm");

kalanyaz.setEditable(false);
kalanyaz.setText("Kalan");
kalanyaz.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
kalanyazActionPerformed(evt);
}
});

hesaplat.setText("Hesapla");
hesaplat.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
hesaplatActionPerformed(evt);
}
});

sil.setText("Sil");
sil.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
silActionPerformed(evt);
}
});

javax.swing.GroupLayout kalanhesaplaLayout = new javax.swing.GroupLayout(kalanhesapla.getContentPane());
kalanhesapla.getContentPane().setLayout(kalanhesaplaLayout);
kalanhesaplaLayout.setHorizontalGroup(
kalanhesaplaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(kalanhesaplaLayout.createSequentialGroup()
.addGap(22, 22, 22)
.addGroup(kalanhesaplaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(bolunenyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bolenyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bolumyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(kalanyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(kalanhesaplaLayout.createSequentialGroup()
.addComponent(hesaplat)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(sil)))
.addContainerGap(32, Short.MAX_VALUE))
);
kalanhesaplaLayout.setVerticalGroup(
kalanhesaplaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(kalanhesaplaLayout.createSequentialGroup()
.addContainerGap()
.addComponent(bolunenyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bolenyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bolumyaz, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(kalanyaz, javax.swing.GroupLayout.DEFAULT_SIZE, 33, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(kalanhesaplaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(hesaplat)
.addComponent(sil))
.addContainerGap())
);

kalanhesapla.setBounds(70, 20, 190, 240);
jDesktopPane1.add(kalanhesapla, javax.swing.JLayeredPane.DEFAULT_LAYER);

jMenu1.setText("File");

Baslat.setText("Başla");
Baslat.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
BaslatActionPerformed(evt);
}
});
jMenu1.add(Baslat);

cikis.setText("Çıkış");
cikis.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cikisActionPerformed(evt);
}
});
jMenu1.add(cikis);

jMenuBar1.add(jMenu1);

jMenu2.setText("Yardım");

hakkindamenu.setText("Hakkında");
hakkindamenu.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
hakkindamenuActionPerformed(evt);
}
});
jMenu2.add(hakkindamenu);

jMenuBar1.add(jMenu2);

setJMenuBar(jMenuBar1);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jDesktopPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jDesktopPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
);

pack();
}//


private void hakkindamenuActionPerformed(java.awt.event.ActionEvent evt) {
hakkinda.show();
}

private void BaslatActionPerformed(java.awt.event.ActionEvent evt) {
kalanhesapla.show();
}

private void cikisActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}

private void bolenyazActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void bolunenyazActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void kalanyazActionPerformed(java.awt.event.ActionEvent evt) {

}

private void silActionPerformed(java.awt.event.ActionEvent evt) {
kalanyaz.setText("Kalan");
bolunenyaz.setText("Bölünen");
bolumyaz.setText("Bölüm");
bolenyaz.setText("Bölen");

}

private void hesaplatActionPerformed(java.awt.event.ActionEvent evt) {
islem calis=new islem();
String sonucu=calis.sonuc(bolunenyaz.getText(), bolenyaz.getText());
kalanyaz.setText("Kalan : "+sonucu);
bolumyaz.setText("Bölüm : "+Integer.toString(calis.bolum));

}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/*
* Set the Nimbus look and feel
*/
//
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the
* default look and feel. For details see
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(KalanHesaplama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(KalanHesaplama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(KalanHesaplama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(KalanHesaplama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//


/*
* Create and display the form
*/
java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
new KalanHesaplama().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JMenuItem Baslat;
private javax.swing.JTextField bolenyaz;
private javax.swing.JTextField bolumyaz;
private javax.swing.JTextField bolunenyaz;
private javax.swing.JMenuItem cikis;
private javax.swing.JInternalFrame hakkinda;
private javax.swing.JMenuItem hakkindamenu;
private javax.swing.JButton hesaplat;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel4;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JInternalFrame kalanhesapla;
private javax.swing.JTextField kalanyaz;
private javax.swing.JButton sil;
// End of variables declaration
}
İkinci Java Class'ı ise islem.java;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package kalanhesapla;

/**
*
* @author turgut
*/
public class islem {

int bolunen;
int bolen;
int bolum;
int kalan;
public String sonuc(String b,String b1){
String kalani="";
bolunen=Integer.parseInt(b);
bolen=Integer.parseInt(b1);
bolum=bolunen/bolen;
kalan=bolunen-(bolunen/bolen)*bolen;
kalani=Integer.toString(kalan);
return kalani;
}
}



Turgut Arslan

12 Ekim 2012 Cuma

Java'da Döngüler: For Döngüsü

Java İç İçe For Döngüsü

Döngüler programcılıkta belirli bir işi istenen sayıda tekrarlamak için kullanılır. C,C++,PHP gibi programlama dillerinde de olduğu gibi Java'da da for döngüsü bulunmaktadır. for döngüsü ana hatlarıyla aşağıdaki gibidir.
for (int sayac = başlangıç değeri; sayaç <= sınır değeri; sayac artım miktarı)  // 1. kısım
{
döngü içinde gerçekleştirilen işlemler...    // 2. kısım
}
for döngüsü iki ana kısımdan oluşur.

1. kısımda döngünün kaç kez döneceği belirlenir.  bu kısımda ilk olarak döngünün kaç kez döndüğünü sayan sayaç değişkeni isimlendirilir ve bu değişkene bir başlangıç değeri atanır. sayaç görevi görecek değişken integer tipinde olmalıdır. Sayaç değişkeni isimlendirilirken Türkçe karakterler ve rakamlar kullanılmaz. Altçizgi tire gibi özel işaretler de kullanmayın. Sonra sayacın sınır değeri belirlenir. En sonunda da sayacın artım miktarı belirlenir.

2. kısımda yani süslü parantezler içinde döngüde yapılması istenen işlemler,kodlar yazılır.

 for döngüsü çalışırken sayaç değişkenine ilk değeri atanır ve hemen 2. kısma geçilerek döngü işlemler sırasıyla satır satır uygulanır. Program  for döngüsünün alt parantezine geldiğinde en başa döner ve ilk önce sayacın sınır değerine ulaşıp ulaşmadığı kontrol edilir. Eğer sayac sınır değere ulaşmışsa döngü durur. Ulaşmamışsa sayaç değeri önceden belirlenen artım miktarı kadar arttırılır ve yeniden döngüye girilir.

Java'da for döngüsü tek başına kullanılabildiği gibi ihtiyaca göre içi içe de kullanılabilir. Aşağıda  Java'da iç içe yazılmış bir for döngüsü örneği bulunmaktadır.

public class fordonguyildiz {
    public static void main(String[ ] args){
        for(int satir = 0; satir < 4; satir++){ // 1.  For Döngüsü (Dış Döngü)
            System.out.print("*");
            for(int sayac = 0; sayac < satir; sayac++){ // 2. For Döngüsü (İç Döngü)
                System.out.print("*");

                } // İç döngü sonu

System.out.print("\n"); // bu kod çıktıda  satır atlatmak için
        } // Dış döngü sonu

    } // main method sonu

} // class fordonguyildiz sonu


Eğer kodlamayı doğru yaparsanız bu Java örnek kodu aşağıdaki gibi bir çıktı verecektir.

*
**
***
****

Bu Java kod örneğini Eclipse ya da NetBeans editörlerinde yazıp çalıştırabilirsiniz. Eğer editör kullanmak istemiyorsanız şunları yapın.
1 - Öncelikle bilgisayarınızda JDK'nın kurulu olduğundan emin olun. Yoksa buradan indirebilirsiniz.
2- Sonra bu kodları notpad'e kopyalayın ve Farklı Kaydet'ten uzantısı .java olacak şekilde  fordonguyildiz adıyla kaydedin.
3- Başlat-Çalıştır' a cmd yazın ve DOS ortamına geçin. ardından java dosyanızın bulunduğu dizine girin.
4 - Burada  javac fordonguyildiz.java  kodunu girdiğinizde JDK dosyanızı derler ve aynı yerde fordonguyildiz.class adlı bir dosya oluşturur.
5- Yine aynı yerde şu kodu yazın ve class dosyanızı çalıştırın.  java fordonguyildiz
Eğer herşeyi doğru yaptıysanız Java örnek programınız başarıyla çalışacaktır.


Turgut Arslan

7 Ekim 2012 Pazar

JDK Nedir? JRE Nedir? JVM Nedir?

Java'nın Temel Terimleri


Java Development Kit(JDK) Nedir?

Java'da yazılan programların derlenip çalıştırılmalarını sağlayan, içinde çok sayıda kütüphanenin bulunduğu program paketidir.JDK'yı buradan indirebilirsiniz.

Java Runtime Enviroment (JRE) Nedir?

JDK'nın kurulumu ile gelen(siz isterseniz ayrıca kurabilirsiniz) Java'da yazılıp derlenen uygulamaların çalıştırılması için kullanılan kütüphaneler topluluğudur. JRE'yi ayrıca buradan indirebilirsiniz.

Java Virtual Machine(JVM) Nedir?

JVM Java Sanal Makinesi anlamına gelir. Java ile geliştirdiğiniz uygulamaların bilgisayar üzerinde çalışmasını sağlar. JVM derlenmiş olan kodları makine diline çevirir. Java'da ürettiğiniz uygulamlar JVM üzerinde çalışır. JVM yazdığınız Java programı ile bilgisayar arasındaki iletişimi sağlar. JVM yorumlama işlemlerini, JRE'nin kütüphanelerini kullanarak yapar. Java'da yazdığınız bir programın, bir bilgisayar üzerinde çalışabilmesi için o bilgisayarda kullanılan işletim sistemine uygun JVM'nin kurulmuş olması yeterlidir. Bu da Java programları için platform bağımsızlığı sağlar. JVM sayesinde Java'da yazılan programlar, MAC OS, Linux veya Windows İşletim sistemlerinde rahatlıkla çalışabilir.

24 Ağustos 2012 Cuma

Java Nedir?

Java Programlamaya Giriş

Sun Microsystems
Java programlama dili Sun Microsystems tarafından ilk olarak 1991 yılında geliştirilmeye başlandı. Java aslında Sun Microsystems'in elektronik ev aletlerinin programlanması amacıyla başlattığı bir projedir. Java dili Patrick Naughton, Chis Wartdh, James Gosling, Ed Frank ve Mike Sheridan'ın oluşturduğu bir yazılım grubu tarafından tasarlanmıştır.
Java
İlk zamanlarda bu dilin adı OAK idi. Ancak bu ada sahip başka bir program olduğu öğrenilince programın ismi Java olarak değiştirildi. Bu ismin bir kahve markasından esinlenerek verildiği söylenir. Aslında Java kahve manasına gelmektedir. Özellikle geceleri uzun çalışma saatlerini bilgisayar başında geçiren programcıların en büyük dostunun kahve olduğunu düşünürsek; programın neden bu ismi aldığı hakkında bir fikir sahibi olabiliriz diye düşünüyorum.

Başta da belirttiğimiz gibi Java elektronik ev aletleri için geliştirilmeye başlanmış bir programlama dilidir. Bu alanda gelişminin çok yavaş olması ve istenen verimin tam olarak alınamaması Java projesini bitme noktasına kadar getirmiştir. Ancak Java dilinin marifetleri sadece elektronik ev aletleri ile sınırlı değildi. Java web uygulamaları geliştirmeye izin veren bir dildir. Özellikle 1993'ten sonra dünyada internet iletişiminde yaşanan patlama Sun Microsystems'in java'nın bu özellikleri üzerne yoğunlaşmasını sağlamış ve adeta bu dilin hayatını kurtarmıştır. İlk kez 1995 yılında dünyaya sunulan Java dili çok ilgi görmüş, özellikle dinamik web sayalafının hazırlanmasında gösterdiği performans ve C++ diline yakın bir kodlama yapısına sahip olması, kolay öğrenilebilir olması gibi nedenler Java dilinin popüler bir yazılım dili olmasını sağlamıştır. Java programlama  dili günümüzde özellikle Google'un Android'i ve Nokia'nın Symbian işletim sistemine temel oluşturması ve bu sistemler için üretilen milyonlarca java uygulaması ile mobil teknolojinin gelişmesini sağlamıştır.

Java hız bakımından C++ ve C dilinin biraz gerisindedir. Aslında bu dilin yazıılma amacı daha doğru ve verimli prgramlar yazmak ve program yazmayı kolaylaştırmaktır. Java Nesne tabanlı ya da Nesne yönelimli(Object Oriented) bir programlama dilidir. Yani bu dilin bileşenlerini aslında nesneler oluşturur. Java'da C ve C++'da olduğu gibi yapısal(Structural)progamlar yazılabilse de java gerçek gücünü Nesnelerle çalışırken gösterir. Şimdi şu nesne konusuna kısa bir açıklama yapalım

Nesneye Yönelik Programlama

Tornavida

İlk olarak kendi kendimize soralım. Nesne nedir? Nesneler, çevremizde bulunan, duyu organları ile algılayabildiğimiz; çeşitli özellikleri(renk, koku, tat,boyut ve ağırlık gibi) ve işlevleri(birşey kesmek, bir yere destek olmak, birşey üretmek, hesaplamak vs) olan varlıklardır. Mesela sol resimdeki tornavidayı düşünün. Bu tornavidanın sarı renkli plastik sapı, parlak metal ucu ve düz ağzı sahip olduğu özellikleridir. Bu tornavida ile düz vidaları sıkıp gevşetebilmesi, tornavida nesnesinin işlevi olarak tanımlaabilir.


Düz tornavida ile yıldız başlı vidaları sıkıp gevşetemezsiniz. Yani düz ağızlı tornavidanın bu noktada işlevsel sınırlılığı var. Bu sınırlılık tornavidanın sahip olduğu özelliklerle ilgilidir ve bu özellikler üretim esnasında belirlenir. Bu tornavidayı tamirat yaparken defalarca kullanabilirsiniz. Tornavida her defasında aynı şekilde çalışır ve aynı hizmeti verir. Ayrıca bu tornavidayı özelliklerini bilen başka biri ya da birileri ile ortaklaşa da kullanabilirsiniz.

Buraya kadar gerçek hayattaki nesnelerden bahsettik. Yazılım dünyasında bahsedilen nesne kavramı da aynı şekilde işlemektedir. Yani Nesneye Yönelik programlama yaparken aynı gerçek hayatta bir tornavidayı imal eder gibi programda kullanacağınız nesneleri inşa edersiniz. Ona çeşitli özellikler verirsiniz, işllevler verirsiniz. Sonra da programda gerektiği yerlerde o nesneyi çalışması için çağırırsınız. Aynen lazım olduğunda tornavidayı alıp kullandığınız gibi üretilen nesneleri çağırıp kullanabilirsiniz. Aynı proje üzerinde birden fazla kişinin çalıştığını düşünün. Tornavidayı nasıl çalışma arkadaşınızla ortaklaşa kullanabiliyorsanız, aynı proje içinde üretilen bir nesne de o şekilde ortaklaşa kullanılabilir.

Nesneye yönelik programlamanın mantığı bu şekildedir diyebiliriz. Java'da ürettiğiniz nesneler, çeşitli değişkenler ve method adı verilen fonksiyonlardan oluşur. Nesne içindeki değişkenlerin erişim türleri(public veya protected gibi) yazılımcı tarafından belirlenebilir. Böylelikle bir nesneye ait değişkenlerin değerlerinin yanlışlıkla değiştirilmesi engellenmiş olur. Buraya kadar saydıklarımız Nesneye Yönelik (Object Oriented) programlamanın avantajlarından sadece birkaçıdır.


Turgut Arslan