13 Mayıs 2011 Cuma

JSP Makaleleri 0008 – JSP de Değişkenler-Veri Tipleri-Operatörler ve Karar Kontrol Yapıları Örnekler

Veri Tipleri Örneği
Şimdi örneklerle konumuzu ele alalım. İlk örneğimizde veri tiplerini, değişkenleri ele alalım.
Hemen yeni bir JSP sayfası ekleyelim.
            JSP sayfamızın adını  veritipleri_ve_degiskenler olarak verelim.
          

JSP sayfamızda kullanılacak veri tiplerini görüyoruz.
veritipleri_ve_degiskenler.jsp
<%@pagecontentType="text/html"pageEncoding="UTF-8"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
        <title>JSP'de Veri Tipleri ve Değişkenler</title>
    </head>
    <body>
 <h1>1. Primitive (İlkel) Veri Tipleri</h1>
<%
byte  byte_tipindeki_degiskenimiz = 11;
short short_tipindeki_degiskenimiz = 571;
int int_tipindeki_degiskenimiz = 1453;
long long_tipindeki_degiskenimiz = 12992016;
char char_tipindeki_degiskenimiz = 'a';
float floattipindekidegiskenimiz = 63.2f;
double double_tipindeki_degiskenimiz = 1481.99;
boolean boolean_tipindeki_degiskenimiz = false;
%>
 <h2>Sayısal veri tipleri</h2>
 <h3>Tamsayı veri tipleri: byte,  short, int, long,   char</h3>
byte <% out.println(byte_tipindeki_degiskenimiz);%><br/>
short <% out.println(short_tipindeki_degiskenimiz);%><br/>
int <% out.println(int_tipindeki_degiskenimiz);%><br/>
long <% out.println(long_tipindeki_degiskenimiz);%><br/>
char <% out.println(char_tipindeki_degiskenimiz);%><br/>
 <h3>Kesirli sayı veri tipleri: float, double</h3>
float <% out.println(floattipindekidegiskenimiz);%><br/>
double <% out.println(double_tipindeki_degiskenimiz);%><br/>
 <h3>Mantıksal veri tipi</h3>
boolean <% out.println(boolean_tipindeki_degiskenimiz);%><br/>
 <h1>2.Referans Tipleri : class, interface,  array</h1>
 <h1>3.Null Tip :  null</h1>
    </body>
</html>
float floattipindekidegiskenimiz = 63.2f;
Kod bölünde en ilginç nokta f harfinin kullanılması bu double tipinden ayrım olsun diye kullanılır yoksa kesirli sayımız double tipinde algılanır.
NetBeans IDE kod yazarken bize yardımcı olmaktadır.
            JSP sayfamız çalışır durumda.
Operatörler Örneği
Sıradaki örneğimizde toplama + , çıkarma -, çapma *, bölme / , mod alma  % , eşittir =  gibi operatörleri kullanalım. Bu örneklerde sadece basitçe nasıl kullanıldığını göstermek istiyorum.Hemen yeni bir JSP sayfası ekleyip adına operatorlerin_kullanimi adını verelim.
operatorlerin_kullanimi.jsp
<%@pagecontentType="text/html"pageEncoding="UTF-8"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
        <title>Operatörlerin Kullanımı </title>
    </head>
    <body>
        <h1>Operatörlerin Kullanımı</h1>
<%
  int sayi1=1453,sayi2=1299,sonuc=0;
%>
Toplama + operatörü  : <% out.println(sonuc=sayi1+sayi2); %><br/>
Çıkarma - operatörü  : <% out.println(sonuc=sayi1-sayi2); %><br/>
Çarpma  * operatörü  : <% out.println(sonuc=sayi1*sayi2); %><br/>
Bölme   / operatörü  : <% out.println(sonuc=sayi1/sayi2); %><br/>
Mod     % operatörü  : <% out.println(sonuc=sayi1%sayi2); %>
    </body>
</html>
Kontrol İfadeleriÖrneği
Yeni bir JSP sayfası ekleyip adına kontrol_ifadelerinin_kullanimi adını verelim. 
kontrol_ifadelerinin_kullanimi.jsp
<%@pagecontentType="text/html"pageEncoding="UTF-8"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
        <title>Kontrol İfadelerinin Kullanımı </title>
    </head>
    <body>
         <%
            int sayi=1453;
            String mesaj="";
         %>
          <h3>if</h3>
          <%
          if(sayi==1453)
          out.print("İSTANBUL'UN FETİH TARİHİ " +sayi + " TÜR.");
          %>
          <h3>if - else</h3>
          <%
              if(sayi!=1299)
             out.print("İSTANBUL'UN FETİH TARİHİ " +sayi + " TÜR.");
             else
              { out.print("İSTANBUL'UN FETİH TARİHİ " +sayi + " DEĞİLDİR.<br />"
                        +sayi+" OSMANLI İMPARATORLUĞUNUN KURULUŞ TARİHİDİR");
              }
          %>      
         
          <h3>if - else if - else</h3>
          <%
              if(sayi==2120)
                 out.print("BU TARİHTE DE SAKLI GÜZELLİKLER VARDIR ELBET.");
              elseif(sayi==1299)
                 out.print(sayi+" OSMANLI İMPARATORLUĞUNUN KURULUŞ TARİHİDİR");
              else
                 out.print(sayi+" FATİH SULTAN MEHMET HANIN İSTANBULU FETİH TARİHİDİR.");
          %>
          <h3>switch</h3>
          <%
                switch(sayi){
                    case 1299: mesaj= "OSMANLI KURULUŞ YILI 1299";
                    break;
                    case 1453: mesaj= "İSTANBULUN FETİH YILI 1453";
                    break;
                    default:   mesaj="VARSAYILAN SEÇENEK ÇALIŞTIRILDI.";
                 }
                out.println(mesaj);
          %>
          <h3>while döngüsü</h3>
          <%
            int i = 3 ;
            while ( i >0 ) {
            out.println ( " _FSM_ " );
              i--;
            }
          %>
          <h3>do- while döngüsü</h3>
          <%
          int a = -5 ;
          do {
            out.println ( "ŞART SAĞLANMASA BİLE do- while döngüsü<br />"
                        + "EN AZ 1 KERE ÇALIŞTIRILIR. " );
              a--;
            }  while ( a >0 );
          %>        
          <h3>for döngüsü</h3>
         <%
          for ( int j = 1 ; j <= 3 ; j++  )  {
           out.print ( j + " _FSM_ " );
            }
          %>      
          <h3>for-each</h3>
         <%
          int [ ] tamsayilarDizisininDegiskeni = { 1299 , 1453 , 1481 , 1495 , 1531 };
          for( int tamsayiDegiskenimiz : tamsayilarDizisininDegiskeni ){
           out.println (tamsayiDegiskenimiz);
         }
         %>
    </body>
</html>
Kodumuzun önemli kısımlarını açıklayalım.
         <%
            int sayi=1453;
            String mesaj="";
         %>
            Değişkenlerimizi tanımladık.
          <h3>if</h3>
          <%
          if(sayi==1453)
          out.print("İSTANBUL'UN FETİH TARİHİ " +sayi + " TÜR.");
          %>
            Değişkenimiz sayi eşittir 1453 ise bir alt satırdaki mesajı yazacaktır. Burada artı operatörünün kullanımına dikkat edelim. Cümleleri, kelimeleri birleştirmek içinde artı operatöründen yararlanılır.
<h3>if - else</h3>
          <%
              if(sayi!=1299)
             out.print("İSTANBUL'UN FETİH TARİHİ " +sayi + " TÜR.");
             else
              { out.print("İSTANBUL'UN FETİH TARİHİ " +sayi + " DEĞİLDİR.<br />"
                        +sayi+" OSMANLI İMPARATORLUĞUNUN KURULUŞ TARİHİDİR");
              }
          %>      
Burada if içindeki şarta dikkat edelim ünlem ve eşittir var.Bunun anlamı sayi değişkeni 1299 za eşit değilsedir.Eğer eşit değilse ilk cümle yazdırılır.Eşitse ikinci kısım yani else kısmındaki mesaj yazdırılır.
<h3>if - else if - else</h3>
          <%
              if(sayi==2120)
                 out.print("BU TARİHTE DE SAKLI GÜZELLİKLER VARDIR ELBET.");
              elseif(sayi==1299)
                 out.print(sayi+" OSMANLI İMPARATORLUĞUNUN KURULUŞ TARİHİDİR");
              else
                 out.print(sayi+" FATİH SULTAN MEHMET HANIN İSTANBULU FETİH TARİHİDİR.");
          %>
            Kademeli olarak şartlar if kontrol yapısının içinde yazılır sağlayan şart varsa onun altındaki satır yazdırılır.Eğer hiçbir şart sağlanmamışsa else kısımındaki kod bölümü işletilir.
          <h3>switch</h3>
          <%
                switch(sayi){
                    case 1299: mesaj= "OSMANLI KURULUŞ YILI 1299";
                    break;
                    case 1453: mesaj= "İSTANBULUN FETİH YILI 1453";
                    break;
                    default:   mesaj="VARSAYILAN SEÇENEK ÇALIŞTIRILDI.";
                 }
                out.println(mesaj);
          %>
            Switch kontrol yapısında bir seçim değerimiz var sağlandığı noktadaki kod bölümü çalıştırılır.Çalıştırılan kod bölümünden sonra çıkış için break(kırmak) sözcüğü ile kapsam dışına çıkılır.Eğer berak sözcüğünü yazmazsanız programınız şart sağlandıktan sonraki kısımıda dikkate alır.Eğer hiçbir şart sağlanmıyorsa varsayılan olarak default kısımındaki kodlar çalıştırılır.
          <h3>while döngüsü</h3>
          <%
            int i = 3 ;
            while ( i >0 ) {
            out.println ( " _FSM_ " );
              i--;
            }
          %>
While(sürerken,-iken) anlamlarına gelir. Bir veya birden çok değişkenin değerine göre while döngüsü şartı sağlıyorken döngü içerisindeki kod bölümü işletilir.Değişken veya değişkenlerin arttırılıp, azaltılmaları döngü içindedir.
          <h3>do- while döngüsü</h3>
          <%
          int a = -5 ;
          do {
            out.println ( "ŞART SAĞLANMASA BİLE do- while döngüsü<br />"
                        + "EN AZ 1 KERE ÇALIŞTIRILIR. " );
              a--;
            }  while ( a >0 );
          %>        
            While(sürerken,-iken) döngüsünden farklı olarak şart sağlansada sağlanmasada en az bir defa döngü çalıştırılır.Sebebi şartın sağlanıp sağlanmadığının kontrolü döngünün sonunda yapılmaktadır.
          <h3>for döngüsü</h3>
         <%
          for ( int j = 1 ; j <= 3 ; j++  )  {
           out.print ( j + " _FSM_ " );
            }
          %>      
            For(için,amacıyla) döngüsü aslında while döngüsünün modern halidir.Başlagıç değişken veya değişkenleride, şart veya şartlarda , değişken veya değişkenlerin artırım veya azatlımda aynı kod bölümünde yapılmaktadır bu kod okunurluğunu arttırır.Tabi ki her kontrol ifadesinin kendisine göre kullanışlığı olduğu zamanlar vardır.
          <h3>for-each</h3>
         <%
          int [ ] tamsayilarDizisininDegiskeni = { 1299 , 1453 , 1481 , 1495 , 1531 };
          for( int tamsayiDegiskenimiz : tamsayilarDizisininDegiskeni ){
           out.println (tamsayiDegiskenimiz);
         }
         %>
            Önce tamsayilarDizisininDegiskeni adında bir dizi oluşturduk. For döngümüzün içindede int tipinde tamsayiDegiskenimiz adında bir tane değişken oluşturduk. Dizideki her elamanı sırasıyla tamsayiDegiskenimiz değişkenine atayarak JSP sayfamıza yazdırdık.



Bilgisayar Mühendisi Mimar ASLAN
Ukrayna-Donetsk

Makaleleri referans göstermek kaydıyla alıp yayınlayabilirisniz.
Mimar ASLAN

JSP Makaleleri 0007 – JSP de Değişkenler-Veri Tipleri-Operatörler ve Karar Kontrol Yapıları

            Java dilinde kullanılan veritiplerinin, degişkenlerin ,dizilerin,operatörler ve kontrol ifadelerinin kullanımını bu bölümde JSP ile ele alacağız.Bu saydığımız kavramların hepsinin kullanımı  Java  dilindeki gibidir.Sadece web ortamında bazı JSP temel Tagların kullanımıyla konuyu işleyeceğiz. Javadaki söz dizimlerini bilen kişiler için JSP’deki kullanımın çok yakın olduğunu hemen fark edeceklerdir. Konumuzu dört kısım altında örneklerle inceleyelim.
Kısım 1 – JAVA nın Genel Yapısı.
JAVAyı genel hatlarıyla tanıyalım. OOP kavramını ele alalım.Object Oriented Programming -OOP (Nesne yönelimli programlama - NYP) Javanın temelidir. OOP  bir programlama yaklaşımıdır. Javada her şey bir nesnedir.O yüzden OOP yaklaşımının kavranması çok önemlidir.
Bütün bilgisayar programlamları iki temel üzerinde yaşar.Bu temel şeyle kod ve veridir.Her hangi bir veri ile bir kod parçasına ulaşmak, sonuçlar elde etmek, bunların organizasyonunu, uyumunu düşünündüğünüzde işimiz zorlaşabilir. Birde bunların üstüne proje dev bir proje ise verilerin saklanması kodumuzun saklanması tekrardan kullanıma açılması kod hataları gibi işlerin üstesinden ancak OOP ile gelebiliriz.
 
OOP un temelinde yatan bir kavramda abstraction(özetleme-soyutlama)dır.Mesela kullanıdğınız bilgisayarın binlerce ufak tefek parçası var ve iç kısımdaki dönen olaylar sizi ilgilendirmez.Siz sadece bilgisayarı bütün olarak algılarsınız çalışıyor mu çalışmıyor mu? Bu sizi ilgilendirir.Bilgisayarınızın parçalarını sayın desem.Kasa,ekran,klavye,kamera,printer gibi birimlere ayırırsınız.Bu gruplama nereye müdahale edilecekse o kısımdaki işinizi kolaylaştırır.Karmaşıklığa meyadan vermez.Karmaşık sistemlerin katmanlara bölünmesi ve daha çok yönetilebilir alt dallarda ele alınmasını  abstraction(özetleme-soyutlama) ile yapabiliriz.Dikkat edeceğiniz nokta karmaşıklığı kategorileyip idare etmenizdir.
Object Oriented Programming -OOP (Nesne yönelimli programlama - NYP) nin üç temel altın kuralı vardır.
Altın Kural 1 - Encapsulation (Saramalama)
Kodumuzu bir ambalaj gibi sarar ve dışarıdan gelebilecek kötüye kullanımlara izin vermez. Nesnelerin bazı özelliklerinin saklanarak erişiminin sınırlandırılması OOP içinde vazgeçilmez bir durumdur.
        Çok fazla uzağa gitmenize gerek yok programlama yaparken ilk örnek olarak kendinizi düşünün.Mesela siz bir sınıfsınız.Birçok ayrıntınız var.Aynı zamandada bir nesnesiniz.Demek ki her sınıf  aynı zamanda oda bir nesnedir.Size dışarıdan bakanlar  vucüdunuzun bazı kısımlarını izin verdiğiniz ölçüde görebilir.Saklı kalan kısımlar sarmalama ile kötü niyetli kişilerin erişimler için açılmamıştır.Zamanı gelince erişim hakkı olan izin verdiğiniz ölçüde istediği gizli kısımlarada erişebilir.Yani Encapsulation OOP mantığında kodlama yaparken programcıya nesneleri koruma gücünü vermektedir.
Sizin herkese açık  kısımlarınızın OOP mantığındaki anahtar sözcüğü public (herkese açık) tir.Sadece size özel kısımlarınızın OOP mantığındaki anahtar sözcüğü private (özel) dir.
Altın Kural 2 - Inheritance (Kalıtım-Miras)
Bir nesnenin başka bir nesnenin özelliklerini devralmasıdır.Yani dedenizin malı mülkü babanıza babanızın malı mülkü serveti size miras kalıyor.Artı ek olarak sizin kendi işiniz gücünüz var.Bu tarz bir düşünce OOP içindede var bu kodların tekrardan kullanımını ve hızlıca projeler oluşturmada çok faydalıdır.
Altın Kural 3 - Polymorphism (Çok Biçimlilik)
İnsanların her biri bir nesnedir. İnsan sınıfındaki her insanında yüzü, gözü, huyu suyu farklıdır. OOP tada bu mantık desteklenir. Buna Polymorphism (Çok Biçimlilik ) denir.
Polymorphism (Çok Biçimlilik ) Sarmalama ve Miras ile birlikte çalışır.
Javada yazılan her program Encapsulation (Saramalama), Inheritance (Kalıtım-Miras),
ve Polymorphism (Çok Biçimlilik) ‘e sahiptir.
 
Kısım 2-Veri Tipleri, Değişkenler ve Diziler
Variables ( Değişkenler )programlanın temel taşlarından biridir.   Java’ da bir tanımlanan değişkenlerin veri tipleri belirtilir. Değişkenleri mutfaklarınızdaki tencereye, tavaya benzetebilirsiniz. Ebatları çapları genişlikleri farklıdır ama içlerine bir şeyler koyarsanız taşısınız aktarırsınız. Veri Tipi bu tencere, tava ve kapların türüdür.
 
Diziler nedir derseniz?
Aynı türdeki su bardaklarını bir tepside düşünün su bardaklarının her biri o tepsinin içindeki elemanlardır. Çayları doldurdukça içlerinde bir şeyleri barındırır. İster çay ister çorba koyun bardaklara ama sırasıyla koyarsınız dilediğinizi dilediğiniz kişiye daha sonra ikram edersiniz.
Nesne yönelimli programlama dillerinde, genel olarak, her sınıf bir veri tipidir, her veri tipi bir sınıftır. Java bu genel kurala uyar. Java dilinde veri tiplerini üç ana grupta inceleyebiliriz. Bazıları Null veri tipini unutarak veri tiplerini iki kısımda ele alırlar. J
1-Primitive (İlkel) Veri Tipleri
2-Referans tipleri
3-Null veri tipi
1. Primitive (İlkel) Veri Tipleri
Sayısal veri tipleri
Tamsayı veri tipleri: byte,  short, int, long,   char
Kesirli sayı veri tipleri: float, double
Mantıksal veri tipi: boolean
2.Referans Tipleri : class, interface,  array
3.Null Tip :  null
Java’da değişkenlerin tanımlamasında nelere dikkat etmeliyiz?
 
1.Değişkenin ilk karakteri İngilizce harfler den olmalı daha sonrakiler harf, rakam, $  _ gibi olalabilir.
2.Değişkenin içersinde asla boşluk olamaz.
3.Değişkenlerin içinde başında sonunda  %, ( ,) ,{, [,],),}  +,  -,  *,  “,  @, ), <   gibi özel karakterleri kulanmamalıyız.
4. Java büyük küçük harf duyarlıdır. O yüzden değişkeninizin adını verirken dikkatli olmalısınız.
5. Java diline ait anahtar sözcükler değişken adı olamaz.
 
Basitte olsa bir atama örnek kod bölümü yazar mısınız?
veri_tipimiz   degiskenimizinAdi ;
veri_tipimiz   degiskenimizinAdi = atanan_ilk_deger ;
(Değişken veri tipi )   (Değişken adı)   (Atama operatörü)  (Atanacak Değer) ;
Şimdi kodumuzu yazalım
int  istanbulunFetihTarihi = 1453 ;
2.Referans Tipleri : class, interface,  array
Referans tiplerinin ilkel tiplerden en belirgin farkı yardımcı metodlarının olmasıdır.İlerleyen kısımlarda örnekler üzerinde sıkça referans tiplerini kullanacağız.
3.Null Tip :  null
İlerleyen kısımlarda java sınıflarındaki metodlarda sıkça null değerini göreceksiniz.Kelime anlamı olarak null ( hükümsüz, önemsiz) demektir.Programlamadaki kullanı boş veya sıfır değildir.Null  hükümsüz, önemsiz maksadıyla kullanılır.
Kısım 3-Operatörler
Toplama + , çıkarma -, çapma *, bölme / , mod alma  % , eşittir =  gibi programlanın olmazsa olmazlarıdır. Mutfakta tencerelerde yemek pişirirken işimize yarayan tuz, şeker, biber, kekik, nane gibi yardımcı operatörlere benzetebiliriz.
Operatörler değişkenlerimize değerler atamada ve değişkenlerin değerlerini değiştirmede de işimize yararlar.
Java programlama dilinde kullanılan operatörler:
Temel Atama Operatörü ( = )
Aritmetik Operatörler ( + , – , / , * , % )
Bileşik Atama Operatörleri ( += , -= , *= ,  /= , %= )
Tekli Operatörler ( + , – , ++ , – - , !)
Eşitlik ve İlişkisel Operatörler ( == , != , < , > , <= , >=  )
Mantıksal Operatörler ( && , || , ? : )
Bitsel ve Bit Değiştirme Operatörleri ( ~ , << , >> , >>> , & , ^ , | )
Tür Karşılaştırma Operatörü (instanceof )
Kısa Devre İlişkisel Operatörler
Kısım 4-Kontrol İfadeleri
Yemek yapıyoruz madem bunun bir tarifi olacak elbet, Ne kadar şu konacak. Kaç kaşık tuz atılacak ve ne kadar pişirilecek. Kontrol etmek lazım gelir. Eğer yarım saat pişirilecek şeyi bir saat pişirirseniz hata alırsınız iştahınız kaçar. Geçek hayattaki her şey şartla doludur. Javada bu işi kontrol ifadeleri yardımıyla programlamada kullanıyoruz.
Java programlama dilinde kullanılan kontrol ifadeleri:
İf
if ( koşul veya koşullar ) {
// Koşul veya koşullar sağlanırsa yapılacak işlemlerimiz
}
 
if – else
if ( koşul veya koşullar ) {
// Koşul veya koşullar sağlanırsa yapılacak işlemlerimiz
}
else {
// Koşul veya koşullar sağlanırsa yapılacak işlemlerimiz
}
 
if – else if – else
if ( koşul veya koşullar ) {
// Koşul veya koşullar sağlanırsa yapılacak işlemlerimiz
}
else  if ( koşul veya koşullar ) {
// Koşul veya koşullar sağlanırsa yapılacak işlemlerimiz
}
else {
// Koşul veya koşullar sağlanmazsa yapılacak işlemlerimiz
}
switch
int secim;
switch (secim) {
case secim-1 :  // Koşul sağlanırsa yapılacak işlemlerimiz
break;  // Mola ver ve kapsam dışına çıkış yap
case secim-2 : // Koşul sağlanırsa yapılacak işlemlerimiz
break; // Mola ver ve kapsam dışına çıkış yap
case secim-3 : // Koşul sağlanırsa yapılacak işlemlerimiz
break; // Mola ver ve kapsam dışına çıkış yap
..
.
default ://Varsayılan değer
// Uygun seçim yapılmadığında yapılacak işlemlerimiz
}
while döngüsü
while ( Koşul ) {
// Koşul sağlanırsa yapılacak işlemlerimiz
}
 
do- while döngüsü
do {
// Koşul sağlanırsa yapılacak işlemlerimiz
} while ( Koşul );
 
for döngüsü
for ( Başlangıç Değeri veya Değerleri;  Koşul veya Koşullarımız ;  Arttırımlar veya Azaltımlar ) {
// Koşul veya Koşullar sağlanırsa yapılacak işlemlerimiz
}
 
for-each
for ( DeğişkenAdımız : DiziAdımız)  {
// Koşul veya Koşullar sağlanırsa yapılacak işlemlerimiz
}
 



Bilgisayar Mühendisi Mimar ASLAN
Ukrayna-Donetsk

Makaleleri referans göstermek kaydıyla alıp yayınlayabilirisniz.
Mimar ASLAN