21 Ocak 2016 Perşembe

Java Klavyeden Veri Almak - Input Scanner

Java Klavyeden Veri Almak - Input Scanner


Uzun bir aradan sonra tekrar merhabalar. Uzun zamandır okulda olan bitirme projesi işlerim yüzünden blog ile ilgilenemedim, bulduğum ilk fırsatta da yeni bir şeyler paylaşmak istedim. Java derslerine kaldığımız yerden devam edelim. Bugünkü dersimizin konusu verilerimizi kullanıcıdan nasıl alacağımız ile ilgili olacak. Yani basit işlemler yapacağız fakat verilerimizi programa el ile vermek yerine, uygulama çalıştığı zaman verileri bizden isteyecek.

Bu sayede uygulamamız statik yani sabit bir yapıda olmak yerine dinamik bir yapıda olacak. Bir sonraki derse yetiştirebilirsem programlamanın temelinde, yazılım dillerinden önce bilinmesi gereken temel kuralları açıklamaya çalışacağım. Hiç vakit kaybetmeden konumuza giriş yapalım.

Bildiğiniz gibi günümüzde uygulamalar etkileşimli çalışmaktadır. Bizden aldığı verileri işler, ürettiği sonuçları bize gösterir, bu sonuçlarla işlemler yapar ve dahası… Tabiki de bu denli büyük bir uygulama yapmayacağız fakat bugün öğreneceğimiz bilgilerle basit bir hesap makinesi yapabilir hale geleceğiz. Bu noktadan itibaren değişkenler ve karar yapıları çok büyük bir yer kaplamaktadır, eğer bu konularla ilgili eksikleriniz varsa önceki yazılarıma göz atabilirsiniz.


Kodlarımızı yazmak için ilk önce yeni bir class oluşturmamız gerekiyor. Bunun için File > New > Class yolunu izleyerek yeni bir Class oluşturuyoruz. 


Adını istediğimiz gibi verebiliriz ve bundan sonra da altta bulunan main metodunu ekleme seçeneğini aktif hale getiriyoruz.


Böylece yeni Classımız oluşmuş bulunmakta, şimdi ise kullanıcıdan verileri almak için gerekli olan işlemleri yapıyor olacağız.

Java programlama dili kütüphanelerden oluşan bir dildir. Yani bir paket düşünün içinde istediğiniz her şey var fakat kullanmak için çıkartmanız gerekiyor. İşte Java dili de bu duruma benzer bir yapıdadır. İhtiyacımız olan şeyleri programımıza ekleriz ve kullanırız.

Bugün bize Java.util.Scanner; paketi gerekmektedir. Bu paketi programa eklemek için ilk önce Classımızın en başında import java.util.Scanner; yazmamız gerekmektedir. Bu kod parçacığı Classımıza Scanner sınıfını ekleyecek ve istediğimiz zaman kullanmamıza olanak verecektir. 

Scanner sınıfı klavyeden girdiğimiz verileri değişkenlere atamak için kullanılan sınıftır fakat tam olarak kullanabilmek için Scanner sınıfından yeni bir nesne üretmemiz gerekiyor. Şuanda kafalarınızı nesne ve sınıf gibi bilgilerle karıştırmak istemiyorum, ileride bu konuların içinden çıkamaz hatta sınıfsız nesnesiz program yazamaz hale geleceğiz.


Yeni bir sınıf üretmek için Scanner Sc = new Scanner(System.in); kod parçacığını kullanmamız gerekiyor. Böylece programımız aşağıdaki hali alıyor.


Satır 8 de ufak bir uyarı alıyoruz gördüğünüz gibi, bu uyarının sebebi üretilen nesnenin kapatılmamasından kaynaklanmaktadır. Veri alım işlemlerimiz gerçekleştikten sonra bu nesneyi kapatacağız.

Şimdi ise kullanıcı için biraz açıklama yapalım ki, programımızın ne yaptığını anlayabilsinler. Böylece kodumuz ve bu kodun çıktısı aşağıdaki gibi oluyor.



Şimdi kullanıcıdan veri alacağımız bölüme gelelim. Kullanıcıdan alacağımız verileri bir yerde saklamamız gerekiyor, bu yüzden bir değişken tanıtmamız lazım ek olarak sayısal işlem yapacağımız için bu değişkenlerin int türünde olması gerekmektedir.


**Not : Değişkenler, bir karışıklık olmaması için her zaman en üstte tanımlanır.

Böylece kodumuzun yeni hali, aşağıdaki gibi oluyor.


Ufak bir uyarı alıyoruz, bunun sebebi ise tanımlanan değişkenlerin henüz kullanılmamasından kaynaklanıyor. Eclipse bize, bir değişken tanımladınız fakat hiç kullanmadınız diyor.

Değişkenlerimizi de tanımladığımıza göre, bu değişkenlere klavyeden girilen verileri atayabiliriz. Böylece yeni kodumuz aşağıdaki gibi oluyor.


Oluşturduğumuz Scanner sınıfının bir yansıması olan Sc ile Scanner sınıfının tüm metodlarına ulaşabilirim. Oluşturduğum değişken int türünde olduğu için klavyeden girilen değeri int olarak algılaması için nexInt(); metodunu kullanıyorum. Ek olarak, değişkenin türüne göre klavyeden okuduğumuz metodu değiştirmemiz gerekmektedir. Double için nextDouble(), String için nextLine() veya next(), gibi.

Değişkenlerimize verileri atadığımıza göre artık bu değişkenlerle işlem yapabiliriz. Ayrıca klavyeden okumam gereken bir değer kalmadığı için oluşturduğum Scanner nesnesini kapatabilirim.

Böylece kodumuz yeni halini alıyor.


Gördüğünüz gibi artık hiçbir uyarı almıyoruz. Programımız sapasağlam çalışıyor. Test edecek olursak;



Böylece klavye aracılığı ile kullanıcıdan veri almış bulunuyoruz. Bu şekilde istediğimiz veriyi kullanıcıdan alabilir ve işleme tabi tutabiliriz. Bu noktadan sonrası sizlerin hayal gücüne kalmış. 

Kod dosyası : Java - Simple Calc

Bir dersin daha sonuna gelmiş bulunuyoruz. Umarım faydalı olmuştur. Bir sonraki derste görüşmek üzere.

Hiç yorum yok:

Yorum Gönder