ana sayfa : araştırma : java uygulamaları : java [ 4 / 12 ]

GERİ

4. JAVA

APPLET: HotJava veya Internet Explorer gibi Java’ya uygun web gezginleri tarafından açılabilen, web sayfalarından interaktif olarak çalıştırılabilen programlar, Applet olarak adlandırılır.

JAVA: Sun Microsystem (www.javasoft.com) tarafından geliştirilmiş nesneye yönelik bir programlama dilidir.

Java genelde Hotjava veya İnternet Explorer, Mosaic gibi diğer web gezginleri ile beraber anılır. Appletlerin görünüş açısından imajlardan hiçbir farkı yoktur.

Fakat appletler, imajlardan farklı olarak dinamik ve interaktiftirdirler. Bu nedenle appletler animasyon ve kullanıcıdan gelebilecek isteklere cevap verebilecek alanların veya şekillerin tasarımında kullanılabilirler. Hotjava, Java desteği sağlayan ilk web gezgini olmasına rağmen Java desteği kısa sürede diğer web gezginleri tarafından da sağlanmaya başlandı. Buna en güzel örnek MS İnternet Explorer gösterilebilir.

Applet tasarlamak için önce Java dilinde program yazılır, derlenir ve HTML web sayfasında bu applet gösterilir. Oluşturulan HTML ve Java dosyaları Web sayfasında HTML ve imaj dosyaları ile aynı biçimde görünürler. Herhangi bir kullanıcı Java desteğine sahip bir Web gezgini ile bu sayfayı incelediğinde, sisteme otomatik olarak applette yüklenecek ve çalışacaktır. Kullanıcı istediğinde Web sayfası ile interaktif olarak haberleşecektir. Eğer kullanıcının elindeki web gezgini, Java desteği sağlamıyorsa yazılar ve imajlar statik olarak ekrana gelecektir.

Java’da anlaşılması gereken önemli bir nokta da Java’nın sadece applet yazmak için tasarlanmadığıdır. Java bir programlama dilinin tüm özelliklerine ve yeteneklerine sahiptir. C veya Pascal’da çözülebilen bütün problemler, yaratılan tüm uygulamalar Java ile de yapılabilir. Örnek vermek gerekirse Unix işletim nasıl C dili kullanılarak yazılmışsa, Hotjava web gezgini de Java kullanılarak yazılmıştır.

 

4.1 Java Programlama Ortamı ve Kullanılan Araçlar

Java ortamları;

 

  • Java kaynak kodunu “Byte Kodu”na dönüştüren bir Java derleyicisi,
  • Java programlarını çalıştıran bir Java Yorumlayıcısı,
  • Java appletlerini çalıştıran bir Web tarayıcısından oluşur.

Ayrıca program yazmak için herhangi bir text editörüne ihtiyaç vardır. Bu editör, örneğin DOS’taki Edit, Windows’daki Notepad v.b. editör olabileceği gibi Java için geliştirilmiş özel bir editör (örn. Textpad, Winedi v.b...) de olabilir. Jbuilder, VJ++ gibi Java derleyicilerinin editörleri kullanıcıya kolaylık sağlamaktadır.(Keskinkılıç,1999)

Çeşitli Java derleyicileri mevcuttur. SUN’in JDK (Java Development Kit), Micdrosoft’un  VJ++, Borland’in Jbuilder,.. v.b. Burada  temel olması bakımından jdk 1.1.2. anlatılacaktır.

Tarayıcı olarak Java’nın ilgili sürümünü destekleyen bir WEB tarayıcısı kullanılmalıdır. Örneğin Netscape 4.x, IE 4.x, Sun’ın Hotjava 1.1 gibi.

Kaynak kodları .Java uzantılıdır. Bu kodun derlenmesi sonucunda .Class uzantılı “byte Code” lar elde edilir. Applet uygulamalarında Java’yı destekleyen tarayıcının açacağı .html uzantılı dosyada “applet” etiketinin bulunması gerekir. Burada tarayıcı applet etiketinde belirtilen .class uzantılı “Byte Code” unu çalıştırmaktadır.

Java programları uzun dosya adlarına sahiptirler. Örneğin welcomeapplet.java gibi. Eğer JDK dizini kullanılıyorsa, jdk\bin dizini de CLASSPATH2de tanımlanmış olamlıdır.

Program komut satırından veya editörden çalıştırılmalıdır. Edit veya notebook gibi genel amaçlı bir editörde Merhaba.java programı yazılıdığında programı DOS komut satırında derlemek için

Javac merhaba.java

Girilir, daha sonra çalıştırmak için

Java merhab.class

Girilir.

Javac, Java derleyicisi, .java uzantılı dosyayı derleyip .class uzantılı “byte code” u çalıştırır.

Özel editörlerde , örneğin TextPad’de, program editörün içindeyken derlenir ve çalıştırılır. TextPad editöründe Tools menüsünden Java Compiler seçilirse (veya alt-0’a basılırsa) o andaki Java dosyası derlenir; Run Java seçildiğinde de (alt-1) bu derlenen program çalıştırılır.

Appletviewer, appletleri test etmek için kullanılan bir programdır. Hazırlana applet’in nasıl olduğunu görmek için Dos komut satırında şu iki satırın girilmesi yeterlidir:

Javac Merhaba.java

Appletviewer Merhaba.html

Appletviewer Merhab.html  dosyasında “applet” etiketini arar ve orda belirtilen applet’i çalıştırır.

Java küçük büyük harflere duyarlı bir programlama dilidir; bu nedenle programın adı, derlenirken ve çalıştırırken doğru olarak yazılmalıdır.

Java derleyicisi 16 MB’dan daha az bir bellekte iyi çalışmayabilir, bu durumda bellek yetersiz cevabı verebilir.

4.2 Java’da Programlama

4.2.1 Java’nın sentaksı

/* Basit Bir Java Programı*/

public class Ornek1

{ public static void main(String[] args)

     { System.out.println(“ilk java Programı!”);

 

}

           }

Bu program basit bir şekilde “ ” işaretleri arasındaki yazıyı DOS ekranında gösterir.

Java büyük küçük harfe duyarlıdır, yani örneğin main yerine Main girilirse derleyici hata verir. Bu konuya dikkat edilmelidir.

Örnekteki Public terimi, bu kodu diğer kısımlardaki hangi kodların kullanabileceğini belirleyen bir erişim niteleyicisidir. Public bu sınıf paketi dışındaki tüm programların da bu kodu kullanmalarına izin verir.

Java’da her şey sınıf olarak tanımlandığından class terimi her zaman kullanılacaktır. Bu terimden sonra sınıfın adı gelmektedir. .java uzantılı bu dosyanın adı ile aynı olmalıdır. Bu nedenle örnekteki dosyanın adı örnek1.java, derlenen dosyanın adı da örnek1.class’ dır.

Burada “{“ ve “}” karakterleri C/C++ ‘de olduğu gibi blok baişı ve sonunu göstermektedir.

Java uygulamalarında (application), örnekteki gibi main metodunun mutlaka bulunması gerekir.

Java ve C++ sınıfları benzer olmalarına rağmen bazı önemli farklar mevcuttur. Java’da bütün fonksiyonlar bir sınıfın üyesidir, üye fonksiyonları yerine metod olarak geçerler. Bu nedenle her main fonksiyonu bir sınıfın içinde olmalıdır. C++ 2’deki static üye fonksiyonları nesneler  üzerinde işlem yapmayan fonksiyonlardır, Java’da main her zaman static olarak tanımlanır. C/C++’da olduğu gibi void terimi fonksiyonun geriye değer döndürmediğini ifade eder.(Tanyeri,1997)

Java’da her ifadenin sonunda “;” ve ancak bu işaret ile sonlanır.

Bu örnekte biz System.out nesnesini ve onun println metodunu kullanıyoruz.

Java’da metodların 0.1 veya daha fazla parametresi olabilir. Metodun hiç parametresi olabilir. Metodun hiç parametresi olmasa bile parantez yazılmalıdır.

 

4.2.2 Açıklamalar

C/C++ ile benzer şekilde bir satırlık açıklama için satırın başında // kullanılabileceği gibi, birden fazla satır süren açıklamaların başına /* ve sonuna */ yazılır.

Java’da bunlara ek olarak /** ile başlayan ve */ ile biten bir açıklama türü geliştirilmiştir. Bu iki karakter katarı arasındaki açıklamalar o programın dökümantasyonda otomatik olarak yer alır.

4.2.3 Veri yapıları

Değişkenler, hafıza da değerlerin saklanabileceği yerleri ayarlamak için kullanılır. Değişken kullanılmadan önce bildirilmelidir. Bildirimi yapıldıktan sonra değer ataması yapılabilir.

Java’da üç değişik türde değişken vardır: örnek değişkeni, sınıf değişkeni, lokal değişken. Örnek değişkeni, sıfat tanımlamada veya bir nesneye ait davranışın tanımlanmasında kullanılır. Sınıf değişkenleri de örnek değişkenlerine benzer. Aralarındaki tek fark sınıf değişkenlerinin değerlerinin o sınıf içindeki tüm nesneler için geçerli olmasıdır.

Lokal değişkenler metodların içinde tanımlanır ve orada kullanılırlar. Benzer şekilde blok içinde de tanımlanıp kullanılırlar. Blok sonuna ulaşıldığında lokal değişken artık tanımlı değildir ve yoktur.

Bir çok programlama dilinin aksine Java’da global değişken yoktur. Örnek ve sınıf değişkenleri, nesneler arası iletişim amacıyla kullanılabilirler.

4.2.4 Değişken tipleri

Değişken tanımlanırken, değişken adına ek olarak tipi de belirtilmelidir. Değişkenler aşağıdaki gibi olabilirler:

·         sekiz temel tipten biri

·         Sınıf veya aryüz adı

·         Dizi 

Java’da 8 tip veri vardır. Bunun altı tanesi sayısal veri tipleridir;

            Tipi                 Büyüklüğü

            İnt                    4 byte

            Short                2 byte

            Long                8 byte

            Byte                 1 byte

            Float                4 byte

            Double 8 byte

16 tabanlı tamsayıların başına 0x gelir (örn. 0xCAFE). Long integer olarak tanımlanan sayıların sonuna da L gelir (örn. 4000000L).

Kayan noktalı sayılarda ise sayının sonuna F gelirse float tipinden, gelmezse double tipinden bir veridir. Örneğin 4.201f float, 4.201 ise double’dır.

Bool tipinde ise iki değer sözkonusudur; true ve false. C’nin aksine bool tipi nümerik değildir ve bu şekilde de düşünülemez.

Java’da değişkenler belli sınıflardan örnek alma amacıyla da tanımlanabilirler.

Java’da, C’de olduğu gibi typdef yoktur. Yeni değişken tanımlamak için, yeni sınıf tanımlamak gerekir.

4.2.4.1 Char (karakter tipi)

Karakter tipi verilerin başında ve sonunda “ ‘ “işareti vardır. Karakterler Umicode karakter setinden seçilir. Umicode uluslar arası dillerin tüm karakterlerini içeren ve her karakteri için 2 bayt uzunluğundaki bir kodlama yöntemidir. \u ile bir karakterin “umicode” u yazıldığında o karakter elde edilir. Ascii karakter seti umicode’un ilk 255 karakterine karşılık  düşer.

Bazı tuşlar için tanımlanmış kısa ifadeler mevcuttur, örneğin :

\b                     backspace        \u0008

\t                      tab                   \u0009

\n                     satır sonu          \u000A

\r                     enter                \u000D

\”                     çift tırnak          \u0022

\’                     tek tırnak          \u0027

\\                      backslash         \u005C

 

4.2.4.2 Boolean (mantıksal tip)

Mantıksal veriler False veya True değeri alırlar. C’de olduğu gibi 0 False, 0 harici true gibi bir dönüşüm yoktur.

4.2.4.3 Değişkenler

Java’da değişken isimleri sınırlı değildir. Değişken tanımlanması şu şekilde olur:   

Değişken_tipi değişken_adı

Örneğin:

İnt a, b;

Char ch;

4.2.5 Atamalar ve başlangıç değerlerinin atanması

Değişken tanımlandıktan sonra = operatörü kullanarak değer ataması yapılabilir.

Java’da üç değişik türde yorum bulunur. /* ve */ arasında kalan metin derleyici tarafından görülmez. Çok satırlı yorumlarda bu teknik kullanılır. Bu teknikte iç içe yorum metni mümkün değildir. //arka arkaya iki bölüm işareti ise başladığı yerden satırın sonuna kadar olan kısmın derleyici tarafından görülmemesini sağlar.

/** ile başlayıp */ ile biten yorumlar ise java.doc tarafından kullanılır.

Char ch;

Ch=’a’;

İnt i=10; //  C/C++’dan gelen bir özellik, değişkene başlangıç değerinin atanmasını ifade eder.

 

4.2.6 Sayısal literaller

Değişik tipte tamsayı literalleri vardır.örneğin 4 sayısı onluk tamsayı literaldir. Yeterince küçük olduğu için short veya byte türünde literal olarak da değerlendirilebilir. İnteger aralığından büyük her onlu tamsayı otomatik olarak long kabul edilebilir. Ayrıca onluk sayının sonuna L harfi konursa daha küçük sayılarda long olarak kabul edilirler. Örneğin 4L gibi tam sayılar aynı zamanda 16lık veya 8lik olarak da gösterilebilirler. Sayının başına konan 0 8lik 0x ise 16lık gösterimi ifade eder.

Kayan noktalı sayılarda iki kısım vardır. Tamsayı kısım ve ondalık kısım olarak ifade edilen kayan noktalı sayılar kesinlikten bağımsız olarak çift duyarlılık (double) biçiminde saklanırlar. Ayrıca sayının arkasına F eklenerek sayının kayan noktalı biçimde gösterimi sağlanır. Kayan nokta gösteriminde, tamsayı kısmının arkasına E veya e konularak üstel ifadeleri de göstermek mümkündür.

4.2.7 Sayısal tipler arasında dönüşüm

İkili işlemlerdeki değişkenler için değişkenlerden birinin tipi diğerinin tipini kapsıyorsa kapsayan tip kabul edilir. Örneğin biri double ise diğeri de double kabul edilir, aksi halde biri float ise diğeri de float kabul edilir.(Grup Java,2000)

C’deki tip zorlaması (Type casting) Java’da da vardır. Örneğin :

Double x = 2.333;

İnteger nx=(int) x;

4.2.8 String literaller

Karakterlerin her hangi bir kombinasyonuna string denir. Stringler Java’da string sınıfının birer elemanıdırlar. C’de olduğu gibi stringler dizi olarak kabul edilemezler.

String literalleri çift tırnak içerisinde bulunurlar. Ayrıca basılmasına olanak bulunmayan \n gibi karakterler de stiring literallerinin içinde bulunabilirler.

Java programında string literal kullanıldığında Java otomatik olarak string sınıfında girilen değere sahip bir örnek oluşturur. Bu noktada stringler diğer literallerden ayrılırlar. Normalde yeni nesne oluştururken ilgili sınıfında programcı tarafından oluşturulması gerekir.

4.2.9 Sabitler

Java’da yerel sabit yoktur, global sabitlerde şu şekilde tanımlanabilir:

Public static final double max = 100;

Yalnız bu  satır sınıf içinde olmalı ; fakat hiçbir metodun içinde olmamalıdır. O zaman o sınıf içindeki bütün metodlar bu sabiti kullanabilir.

  4.2.10 İfadeler ve operatörler

İfadeler geriye değer  döndürürler. Operatörler ise bu esnada kullanılan sembollerdir. Örnek olarak aritmetik işlemler amacıyla yapılan karşılaştırmalar gösterilebilir.

Tablo 4.1 java’da kullanılan operatör ve ifadeler.  

+

-

*

/

%

&

I

^

~

&&

II

!

<

>

<=

>=

<<

>>

>>>

=

?

++

--

==

+=

-=

*=

/=

%=

&=

I=

^=

!=

<<=

>>=

>>>=

.

[

]

(

)

 


4.2.10.1 Aritmetik işaretler

Java’da temel işlemler için beş operatör vardır.

Tablo 4.2 Java’da kullanılan aritmetik işaretler. 

+

Toplama

3+4

-

Çıkartma

6-4

*

Çarpma

5*9

/

Bölme

6/2

%

Modül

20%7

Her operatör için her biri birere tarafta olmak üzere iki operand gereklidir. Çıkarma operatörü için ise tek operandla kullanıldığında operandın tümleyenini alır.

Tamsayı olarak tanımlanan sayıların bölümünde sonuç yine tam sayı olur. Her iki operanddan en az biri uzun tamsayı(long) tipindeyse sonuç uzun tamsayı olur. Operandlar dan biri tamsayı (integer) diğeri ondalıklı (float) ise sonuç ondalıklıdır (floatdır). (Grup Java,2000)

4.2.10.2 Değer atama

Değişkenlere değer atama da bir ifadedir. Bir atama değerle sonuçlandığında aşağıdaki gibi ifadelerde Java’da mümkündür.

A=b=c=d=x=y=z=9;

Bu örnekte bütün değişkenlerin değeri 9 olmuştur.

Tablo 4.3 Java’da kullanılan operatör ve ifadelerin anlamları.  

Operatör

İfade

Anlamı

+=

x += y

x = x+y

-=

x -= y

x = x-y

*=

X*=y

X=x*y

/=

X/=y

X=x/y

 

4.2.10.3 Artırma ve eksiltme

C’de ki gibi ++ ve – operatörleri Java’da da geçerlidir. Ve aynı işi yaparlar. ++ ile operandın değeri bir arttırılırken – ile operandın değeri bir eksiltilir. Aynı zamanda C’de olduğu gibi atanmadan önce veya atanmadan sonra artırma veya eksiltme yapılabilir.

Y=X++                        Y=++X

Bu iki kod arasında oldukça önemli farklar vardır. İlkinde önce x artırılır, ve yeni değer y’ye aktarılır. İkinci komutta ise önce X artırılır ve yeni X değeri Y’ye atanır.

4.2.10.4 Karşılaştırmalar  

Java’da eşitlikleri ve büyüklükleri test etmek için birkaç değişik teknik vadır.

Tablo 4.4 Java’da kullanılan karşılaştırma ifadeleri.  

Operatör

Anlamı

Örnek

==

Eşit mi

X==3

!=

Eşit değil mi

X!=3

<

Küçük mü

X<3

>

Büyük mü

X>3

>=

Küçük ve eşit mi

X<=3

>=

Büyük ve eşit mi

X>=3

4.2.10.5 Mantıksal operatörler

Bool değişkeni olarak sonuç veren java ifadelerinde AND OR XOR NOT lojik operatörleri kullanılabilir. And için kullanılan karakter & veya && şeklindedir. & ve && arasındaki asıl fark & operatöründe her iki tarafta değerlendirilirken && operatöründe ise öncelikle sol taraf değerlendirilir. Sonuç false ise ifadenin ikinci tarafı değerlendirmeye alınmaz.(Grup Java,2000)

OR operatörü I ve II karakterleri kullanılarak gerçekleştirilir. OR operatörü operandlardan her hangi biri true ise sonuç true olur. I veya II operatörleri arasındaki fark & veya && arasındaki farka benzer şekildedir. Yalnız false yerine işlemler true değeriyle yapılır.

XOR operasyonunda ise her iki operand birbirinden farklıysa sonuç true’dur. Kullanılan operatör ise ^ dır.

Genel olarak && ve II operatörleri lojik işlemlerde kullanılır. &, I  ve ^ operatörleri ise bit operasyonlarında kullanılır.

NOT içinse kullanılan operatör !  şeklindedir. Diğer operatörlerin aksine NOT için tek bir operand kullanılır.

Örnek olarak !x operasyonun sonucu x true ise false ; x false ise true şeklindedir.

  4.2.10.6 Bit operatörleri

Bu operatörler aynen C’deki gibidir. Ve integerların her bir biti üzerinde operasyon gerçekleştirmek için kullanılırlar. Bit operatörlerinin listesi aşağıda verilmiştir.

Tablo 4.5 Java’da kullanılan bit işlem operatörleri.  

Operatör

Anlamı

&

Bit işlem AND

I

Bit işlem OR

^

Bit işlem XOR

<<

Sola kaydırma

>>

Sağa kaydırma

>>>

Sağa kaydır 0 koy

~

Bit işleme tersi

<<=

Sola kaydır ata (x=x<<y)

>>=

Sağa kaydrı ata (x=x>>y)

>>>=

Sağa kaydırma atamayı 0 doldur(x=x>>>y)

X&=Y

And ataması (x=x&y)

XI=Y

Or ataması (x+xIy)

X^=Y

Xor ataması (x=x^y)

   4.2.10.7 Operatör önceliği

Operatör önceliği ifadeler  işlenirken hangi operatörün hangi sırada işleneceğini gösterir.

Örneğin : y=6+4/2

Burada 6+4=10 10/2=5 şeklinde mi yoksa 4/2=2 6+2=8 şeklinde mi işlem yapılacağı operatör önceliği göz önüne alınarak saptanır. Genel olarak artırma ve eksiltme operatörleri aritmetik operasyonlardan önce karşılaştırma operasyonları ise bit operasyonlarından önce işleme alınırlar.

Şekil 4.6 Operatör öncelik tablosu

 

.    ( )     [ ]

Parantezler grup ifadeleri noktala metodlara

Ulaşım için kullanılır.

++ - - ! ~ instance of

Nesneyle ilgili sınıfın  üyesi ise true aksi halde false değerini verir.

New

Yeni sınıf örnekleri oluşturmada kullanılır.

* / %

Çarpma, bölme, modül

+ -

Toplama, çıkarma

<< >> >>>

Bit bit sola sağa kaydırma

< >  <=   >=

Karşılaştırma

= =  !=

Eşitlik kontrolü

&

And

^

Xor

I

Or

&&

Lojik and

II

Lojik or

? :

İf then else

= += -= *= /= %= ^=

&= I = <<= >>= >>>=

Atamalar

Daha aşağıdaki bir operasyonun daha öncelikli olması istenirse parantez kullanılır.

4.2.10.8 String aritmetiği

Java’da +operatörünün özel kullanım alanlarından birisi de stringleri birbirine bağlamaktır.

Örnek: sistem.out.prntln(“sayın” +isim);

Burada ekranda sayın ve ardından isin değişkeninde o an bulunan string görünür.

+ operatörü içinde string ve diğer operatörlerin bulunduğu bir yapıda kullanılırsa string olamayan karakterleri ve operatörleri de stringe çevirir.

Herhangi bir nesne veya başka tipteki bir değişken tostring() ile de stringe çevrilir.

4.2.11 Veri tipleri arasında dönüşüm

Veri tiplerini birinden diğerine çevirmeye veri dönüşüm (casting) denir. Örneğin,  standart veri giriş fonksiyonu sistem.in.read ile bir değer alındığında, karakter tipine dönüştürüldükten sonra bir karakter değişkene atanabilir.

Cahar c= (char) System.in.read();

Tablo 4.7 Veri kaybı olamayan veri tipi dönüşümleri  

Veri tipinden

Tipine

Byte

Short, char, int,long, float,double

Short

int,long, float,double

Char

int,long, float,double

İnt

long, float,double

Long

float,double

Float

Double

4.2.12 Karakter katarları

String anahtar kelimesi kullanılır. + operatörü ile katarım sonuna ekleme yapılabilir.

String message=”merhaba” +”!”;

Katarın içinde bir alt katar seçmek için substring metodu kullanılır.

String greeting= “hello”;

string s=greeting.substring(0,4); // s=”hello” dir.

İlk parametre başlangıç pozisyonunu belirtir. Katarın ilk harfinin pozisyonu 0 dır.

4.2.13 Katarların karşılaştırılması

Bunun için equals metodu kullanılır.

s.equals(t)

Dönüş değeri olarak true veya false gelir.

= = operandının kullanılması yanlış olur; çünkü bu operand sadece iki katarın aynı yerde olup olmadığına bakar.

Mantıksal değerler ile sayısal değerler arasında işlem yapılamaz.

4.2.14 Katar fonksiyonları

Char charAt(int index)

İnt comporeTo(String anotherString)

Bolean endsWith(String suffix)

Boolean equals(Object anObject)

Boolean equalsignoreCase(StringanotherString)

İnt indexOf(string str)

İnt indexOf(String str, int fromindex)

İnt lastindexOf(String str)

İnt lastindexOf(String str, int fromindex)

İnt length()

String replace(char oldChar, char newChar)

Boolean startsWith(String prefix)

String substeing(int beginindex)

String substring(int beginindex, int endindex)

String toLowerCase()

String toUpperCase()

String trim()

4.2.15 Veri okumak

ReadDoubleTest.java double bir sayının nasıl okunacağı gös-terilmiştir.

Örnek: ReadDoubleTest.java

İmport java.io.*;

İmport java.text;

Public class readdoubletest

            // shows how to read a double the hard way

{ public static void main(string[] args)

{ system.out.println

            (“enter a number, l’ll add two to it.”);

  double x; // the number we wish to read

try

{ İnputStreamReadder isr

            =new İnputStreamReader(System.in);

bufferedreader br

            = new BufferedReader(isr);

       string s=br.readln();

decimalFormat df= new decimalFormat();

number n= df.parse(s);

x= n.doubleValue();

}

catch(IOException e)

{ x=0;

}

catch(ParseException e)

{ x=0;

}

system.out.println(x+2);

}

}

console sınıfının 3 tane metodu (fonksiyonu) vardır:

  • ReadWord(string prompt)
  • Readint(String prompt)
  • Readdouble(string prompt)

4.2.16 Çıkış formatı

Sayısal verilerin çıkış formaı için Java.text paketinin 3 metodu kullanılabilir.

NumberFormat.getNumberİnstance() // sayı değeri

Number Format.getCurrencyInstance()// para birimi ile birlikte çıkış.

Number Format.getPercente()// 100’e bölünüp, %işareti ile çıkış.

Çıkış almak için sayı karakter katarı olarak saklanır. Bunun için format metodu kullanılır.

Örnek:

Double x=10000.0/3.0;

NumberFormat nf=NumberFormat.getNumberInstance();

String fx=nf.format();

System.Out.println(fx); (Grup Java,200)

U.S. veya Alman veya başka standartlara görede sayılar formatlanabilir. Bunun için Localae tipi kullanılır. Örneğin Alman formatında elde etmek için

NumberFormat nf=NumberFormat.getNumberInstance(Locale.German);

Kendi formatınızı oluşturmak için Decimal Format tanımlanabilir:

DecimalFormat df=DecimalFormat(“0.######”);

System.out.printle(sdf.format(x));

Buradaki semboller ve anlamları aşağıda verilmiştir.

Tablo 4.8  Çıkış formatında kullanılan sembollerin anlamları.  

Sembol

Anlamı

0

Bir basamak

#

Bir basamak, gereksiz 0’ları göstermez

.

Basamak ayırıcı

,

Gruplama ayırıcı

;

Pozitif ve negatif sayılar için formatı ayırır

-

Negatif

%

100’e bölüp, yüzde olarak gösterir

Başka bir sembol

Çıkışta bu sembolü gösterir0

Aşağıdaki Mortgage.java örneğinde CoreJava’nın console sınıfı kullanılmıştır.

Mortgage.java

İmport corejava.*;

İmportjava.text.*;

Public class Mortgage

{ public static void main(String[] args)

{double principal;

double yearlyInterest;

int years;

principal = Console.readDouble

(“Loan amount (no commas):”);

yearlyInterest = Console.readDouble

(“Interest rate in % (ex:use 7.5for7.5%):”)/100;

years = Console.readlnt(“The number of years:”);

double monthlyInterest = yearlyInterest / 12;

double payment = principal * monthlyInterest

/ ( 1- (Math.pow(1/(1 + monthlyInterest),

years * 12)));

System.out.println(“Your payment is “);

Number Format  nf = Number Format.getCurrencyInstance()

 System.out.println(nf.format(payment));

}

}