Страницы

воскресенье, 25 марта 2012 г.



Javada Final anlayışı  



 Javada Final əsasən dəyişənlərə,metodlara,siniflərə tətbiq edilir.Əvvəlcə finalın metoda necə tətbiq edilməsinə baxaq.Bir final metod təməl sinifdə tətbiq olunduqda,törədilən siniflərdə ləğv edilə bilməyən metodları ifadə edir.
   
class Temel

{

final void Yaz( )

   {

       System.out.println("Temel sinifdeki Yaz metodu");

    }

}


class Toreyen extends Temel

 {

     public void Yaz( )

 {

     System.out.println(" Toreyen sinifdəki Yaz metodu ");

  }

}





public class FinalTest1

{

   public static void main( )

 {

     Toreyen t=new Toreyen( );

      t.Yaz();

  }

}

 Bu nümunəni işlətsək səhv göstərəcək.Çünki təməl siniflərdə final olan metod törəyən siniflərdə override edilmir.

 İndi isə final olaraq təyin olunan dəyişənlərə baxaq.Dəyişənləri final olaraq bildirdiyimizdə,onlara ilk  qiymət verildikdən sonra qiymətlərini dəyişdirə bilmərik.Bu əslində Javaya qədər öyrəndiyimiz proqramlaşdırma dillərindən bizə tanış olan const anlayışı ilə eynidir.Bununla yanaşı final dəyişənlərə qiymət verilməsi həmin sətirdə və ya metod içərisində olmalıdır.Belə ki,obyekt yaradılması bitdikdən sonra final dəyişənin qiyməti məlum olur və bir daha dəyişilmir.Aşağıdakı nümunəyə baxaq.
  
public class FinalTest2 {



   private final int finalDeyişen;



   public void printFinal( ) {

             System.out.println("Final Deyisen Deyeri: " + finalDeyisen);



         }

}



 Beləki,bunu işlətsək səhv göstərəcək.Yuxarıda qeyd etdiyimiz kimi ilk qiymət verilməsi sətrdə və ya metod içərisində olmalıdır.Buna görə də bu nümunəni aşağıdakı kimi yazaq.

   

public class FinalTest2 {



   private final int finalDeyişen;



   public void printFinal( ) {



    finalDeyişen = 5;

             System.out.println("Final Deyisen Deyeri: " + finalDeyisen);



         }

}


 Bu halda da səhv göstərəcək.Çünki burada qiymət verilməsi sinifin içərisində hər hansı bir metodun içərisindədir. İndi isə yazdığımız kodda aşağıdakı kimi dəyişiklik aparaq.

public class FinalTest2 {



   private final int finalDeyişen;
   public FinalDeneme(int deger)
  {
      finalDegisken = deger;
  } 


   public void printFinal( ) {

      System.out.println("Final Deyisen Deyeri: " + finalDeyisen);

          }

 } 

 Kodu bu cür yazdığımızda səhvsiz işləyəcək.Çünki,final dəyişənin qiyməti quruluşcu metod içərisində verilmişdi.
 İndi isə az da olsa bir iki cümlə ilə final siniflər haqqında qeydlər aparaq.Beləki,final olaraq təyin olunmuş bir sinifdən başqa bir sinifi irsi olaraq törətmək olmaz.Aşağıdakı nümunəyə baxaq.



    final class FinalSinif

 {

            }



  class Toreyen extends FinalSinif
{
         }
 Düzdü,bu yazılışı kod adlandırmaq olmaz.Amma başa düşülən olması üçün mən belə yazılışdan istifadə etməyi məqsədə uyğun hesab edirəm.Əvvəldən qeyd etdiyim kimi final olaraq təyin olunmuş bir sinifdən başqa bir sinifi törətmək olmaz.Yəni belə bir kod yazılışını genişlədib bir proqram şəkilinə gətirsək,səhvlə qarşılaşacağıq.
 Bu da sonuna bəlkə də gəlib çıxa bilmədiyim mövzulardan birinin sonu.

Комментариев нет:

Отправить комментарий