2 Şubat 2014 Pazar

Java'da matematiksel fonksiyonlar

Java'da tanımlı olan ve matematiksel işlemlerimizde bize yardımcı olacak hazır fonksiyonlar mevcuttur. Bu fonksiyonları kullanmak için java'da herhangi bir kütüphane eklememize gerek yoktur. Diğer dillerde is ekleme yapılmalıdır. Örneğin delphi'de uses kısmında math kütüphanesi eklenmelidir aynı şekilde C programlamada <math.h> kütüphanesi include edilmelidir yani derlemeye dahil edilmelidir.

      Peki java'da neden math kütüphanesi eklemiyoruz? Çünkü java'da math ve lang kütüphaneleri otomatik olarak tanımlanmıştır ve bunları yukarıda tanımlamamıza gerek yoktur. Bu fonksiyonları

==   System.Fonksiyon_ismi ====   şeklinde kullanabiliriz.  Şimdi bu fonksiyonlara bir kaç örnek verelim.

=======================================================================

Font: Small - Normal - Large
  1. public class JavaApplication9 {
  2.     /**
  3.      * @param args the command line arguments
  4.      */
  5.     public static void main(String[] args) {
  6.         // TODO code application logic here
  7.    
  8. /*öncelikle bir sayinin üssünü alalım*/
  9.        
  10. System.out.println(5 + " sayisinin 3. dereceden üssü" + Math.pow(5,3) + " dir");
  11. /* bir sayinin kökünü bulalım */
  12. System.out.println(25 + " sayisinin kare kökü " + Math.sqrt(25) + " dir");
  13. /* 2 sayıdan maximum olanı bulalım */
  14. System.out.println(" 25 ve 24 sayilarindan büyük olani " + Math.max(2524) + " dir");
  15. /*bir sayinin mutlak değerini bulmak */
  16. System.out.println(-45 + " sayisinin mutlak değeri " +  Math.abs(-45) + " dir" );
  17. }
  18. }

=================================================================================
program çıktısı şu şekilde olacaktır;

 5 sayisinin 3. dereceden üssü125.0 dir
 25 sayisinin kare kökü 5.0 dir
 25 ve 24 sayilarindan büyük olani 25 dir
-45 sayisinin mutlak değeri 45 dir

Yararlı olması dileği ile...



   

Java'da metotlara aşırı yükleme (Overloading)


       Java'nın bize sağladığı büyük bir kolaylık, aynı isimde birden fazla metot oluşturabilmemizdir. Tabii ki bu durumda metotları birbirinden ayırt edecek şeyler olmalıdır. Bu da aynı isimdeki metotların aldığı parametre sayıları ve türleridir.
       Peki parametre farklılığından kastımız nedir ?
1-) Örneğin KareAl isminde 2 metodumuz olsun. Ve ikisi de tek parametre alsın. Bu durumda bu 2 metodun aldığı parametre türü aynı olamaz! Yani birisi mesela integer türde parametre alıyorsa diğer metot integer haricinde bir türde parametre almalıdır.

2-)KareAl isminde yine 2 metodumuz olsun. Bu iki metodun aldığı parametre saysı farklı ise bu durumda aldıklarını parametre türlerini kontrol etmeye gerek yok. Yani ilk metot bir tane integer parametre alıyorsa, ikinci metot 2 parametre alabilir. Bu durumda 2. metot istenilen türde parametreler alabilir.

ÖRNEK1: Java'da bir sayının karesini almak.
=====================================================================
public class JavaApplication9 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
 
    System.out.println(KareAl(5));       /* fonksiyona integer değer gönderildi.*/
    System.out.println(KareAl(4.5));    /*fonksiyona double değer gönderildi*/
    }
    public static double KareAl(double gelen) { /*double değer gelmesi halinde bu metot çalışır */
    return gelen*gelen;
    }
    public static double KareAl(int gelen) {  /*integer değer gelmesi halinde bu metot çalışır */
    return gelen*gelen;
    }
=======================================================================

ORNEK2: Javada farklı sayıda parametre alan aynı isimde metotlar kullanmak.

=======================================================================

public class JavaApplication9 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
 
    fnk(10,20);   /* fonksiyona 2 parametre gönderildi */
    fnk(5);        /* fonksiyona tek parametre gönderildi */
    }
 
    public static void fnk (int gelen1, int gelen2) { /* 2 parametre gönderilirse bu metot çalışır */
    System.out.println("fonksiyona 2 parametre gönderildi");
    }
    public static void fnk (int gelen) {    /* tek parametre gönderilirse bu metot çalışır */
    System.out.println("fonksiyona tek parametre gönderildi");
    }
}

========================================================================


Yararlı olması dileği ile....

Java'da System.lineSeparator() komutu

Seperator'un kelime anlamı ayırıcı, ayrıştırıcıdır. Komutun yaptığı işlem de tam olarak budur. İsminden de anlaşılacağı gibi satır ayırma işlemi yapmaktadır. C programlama ile ilgilendiyseniz, bu komutun oradaki karşılığının " \n " ifadesi olduğunu anlamışsınızdır. C programlamadan hatırlarsanız, ekrana bir ifade basmak için printf komutunu kullanıyorduk. Printf komutunda "\n" kullanınca sonraki basılmak istenen ifade alt satıra basılıyordu. Yani " \n " ifadesi, bu ifadeden önce yazılan ve sonra yazılan metinlerin ayrı ayrı satırlara bölüyordu;

====C programlama örnek===

printf(" Bu bir C projesi");
printf(" Bu da bir C projesi");

=====================

Yukarıdaki örneğimizde programı derlersek çıktı şu şekilde olacaktır;

*Bu bir C projesi Bu da bir C projesi.

===C programlama örnek 2===

printf("Bu bir C projesi \n Bu da bir C projesi");

======================

Bu örnekte ise çıktımız şu şekilde olacaktır;

*Bu bir C projesi
  Bu da bir C projesi

Görüldüğü \n ifadesi metinlerin 2 satıra bölünmesini sağladı ve 2. gelen metin 2. satırdan başladı.

Peki bunu java'da nasıl uygularız ?

====JAVA örnek=====

System.out.print("Bu bir java ifadesi");
System.out.print("Bu da bir java ifadesi");

==================

Bu örnekte de C'nin ilk örneğindeki gibi her iki metni aynı satıra basacaktır.

======JAVA örnek2=======
System.out.print("Bu bir java projesi" + System.lineSeparator() );

System.out.print("Bu da bir java projesi");

=======================

Bu ikinci örnekte artık metinler ayrı ayrı satırlar şeklinde ekrana basılacaktır.

NOT: Bu örnekte System.out.print("METIN"+ System.lineSeparator()); yerine sadece System.out.println("METIN"); de kullanabilirdik; Yani kısaca,

System.out.print("metin"+System.lineSeparator()) ve System.out.println("metin")
 kodları aynı anlama gelirler.



Yararlı olması dileği ile...