Wednesday, November 28, 2018

ஜாவா 8-ல் டிஃபால்ட் மெத்தட்கள்



பொதுவாக ஜாவா இன்டெர்ஃபேஸ்களில் மெத்தட் அறிவிப்பு மட்டுமே இருக்கும். அதன் நடைமுறைப்படுத்துதல் அந்த இன்டெர்ஃபேஸை இம்பிலிமெண்ட் செய்யும் கிளாஸ்களில் தான் இருக்கும். மேலும் ஒரு இன்டெர்ஃபேஸில் அறிவிக்கப்படும் எல்லா மெத்தட்களின் நடைமுறைப்படுத்தலும் அதை இம்பிலிமெண்ட் செய்யும் கிளாஸில் இருக்க வேண்டும்.எனவே ஒரு புதிய மெத்தட் இன்டெர்ஃபேஸில் அறிவிக்கப்பட்டால் அதன் நடைமுறைப்படுத்துதல் இம்பிலிமெண்டேசன் கிளாஸில் சேர்க்க வேண்டும்.அதை தவிர்க்கவே டிஃபால்ட் மெத்தட்கள் பயன்படுகின்றது. அதாவது ஒரு இண்டெர்ஃபேஸில் ஒரு மெத்தடின் நடைமுறையுடன் இருக்கலாம். அந்த மெத்தடை default என்கின்ற கீவர்டுடன் சேர்த்து இருக்க வேண்டும்.இது ஜாவா 8-ல் இருந்தே புதியதாக அறிமுகப்படுத்தப்பட்டுள்ளது.
// A simple program to Test Interface default
// methods in java
interface TestInterface
{
    // abstract method
    public void square(int a);
  
    // default method
    default void show()
    {
      System.out.println("Default Method Executed");
    }
}
  
class TestClass implements TestInterface
{
    // implementation of square abstract method
    public void square(int a)
    {
        System.out.println(a*a);
    }
  
    public static void main(String args[])
    {
        TestClass d = new TestClass();
        d.square(4);
  
        // default method executed
        d.show();
    }
}
வெளியீடு:
 16
 Default Method Executed
டிஃபால்ட் மெத்தட்கள் backward compatibility என்பதை தருகின்றது. இதை defender methods அல்லது virtual extension methods என்றும் அழைக்கப்படுகின்றன.
 Static Methods:
இன்டெர்ஃபேஸில் கிளாஸைப் போலவே ஸ்டேட்டிக் கிளாஸ்களும் இருக்கலாம்.

// A simple Java program to TestClassnstrate static
// methods in java
interface TestInterface
{
    // abstract method
    public void square (int a);
  
    // static method
    static void show()
    {
        System.out.println("Static Method Executed");
    }
}
  
class TestClass implements TestInterface
{
    // Implementation of square abstract method
    public void square (int a)
    {
        System.out.println(a*a);
    }
  
    public static void main(String args[])
    {
        TestClass d = new TestClass();
        d.square(4);
  
        // Static method executed
        TestInterface.show();
    }
}
வெளியீடு:
 16
 Static Method Executed
Default Methods மற்றும்Multiple Inheritance
ஒரு கிளாஸ் ஆனது ஒன்றுக்கும் மேற்பட்டா இன்டெர்ஃபேஸ்களை இம்ப்லிமென்ட் செய்யலாம். அப்பொழுது ஒரே சிக்னேச்சருடன் இரண்டு இன்டெர்ஃபேசிலும் மெத்தட் இருந்தால் அதை இம்ப்லிமெண்ட் செய்யும் கிளாஸில் இன்டெஃபேஸ்களின் பெயர் explicit ஆக கூறப் பட வேண்டும்.

// A simple Java program to demonstrate multiple
// inheritance through default methods.
interface TestInterface1
{
    // default method
    default void show()
    {
        System.out.println("Default TestInterface1");
    }
}
  
interface TestInterface2
{
    // Default method
    default void show()
    {
        System.out.println("Default TestInterface2");
    }
}
  
// Implementation class code
class TestClass implements TestInterface1, TestInterface2
{
    // Overriding default show method
    public void show()
    {
        // use super keyword to call the show
        // method of TestInterface1 interface
        TestInterface1.super.show();
  
        // use super keyword to call the show
        // method of TestInterface2 interface
        TestInterface2.super.show();
    }
  
    public static void main(String args[])
    {
        TestClass d = new TestClass();
        d.show();
    }
}
Output:
Default TestInterface1
Default TestInterface2
முக்கிய குறிப்புகள்
  1. இன்டெர்ஃபேஸில் ஜாவா வெர்சன் 8-ல் இருந்து டிஃபால்ட் மெத்தட்கள் இருக்கலாம்.
  2. இன்டெர்ஃபேஸில் கிளாசைப் போலவே ஸ்டேட்டிக் மெத்தகள் இருக்கலாம்.
  3. டிஃபால்ட் மெத்தட்கள் backward compatibility தரவே பயன்படுத்தப் ;படுகின்றன.
-முத்து கார்த்திகேயன், மதுரை.
ads Udanz

No comments:

Post a Comment