বাংলায় শিখুন জাভা! জাভা ব্যাসিক টিউটোরিয়াল পর্ব-০৭

প্রকাশিতঃ 13 June, 2014, দেখা হয়েছেঃ

আগের টিউটোরিয়ালে আমরা ইনহেরিটেন্স সম্পর্কে জেনেছিলাম আজকে আমরা mainly ইন্টারফেস সম্পর্কে জানব । কিন্তু তার আগে ইনহেরিটেন্স এর short একটি রিভিউ আমরা আবার দিব ।

Inheritance

জাভা মাল্টিপল ইনহেরিটেন্স support করে না ।এখন আমরা আসি মাল্টিপল ইনহেরিটেন্স বলতে আমরা কি বুজি|

নিচে ইনহেরিটেন্স এর বেসিক একটি ডায়াগ্রাম দেখি :

 photo inheritence_zpsc390a0fc.png

 

এখানে আমরা দেখতে পাচ্ছি চাইল্ড ক্লাস তার প্যারেন্ট ক্লাসের সব রকম বৈশিষ্টই ধারণ করেসে কিন্তু প্যারেন্ট ক্লাসে চাইল্ড ক্লাসের সকল বৈশিষ্ট নাও থাকতে পারে । এখানে আমরা দেখতেসি যে প্যারেন্ট OR রুট ক্লাস only একটি যদি এই রকম হই যে দুই বা ততোধিক প্যারেন্ট ক্লাস থাকবে তখন আমরা কি করতে পারি ? আমরা আগেই বলেছি যে জাভা মাল্টিপল ইনহেরিটেন্স সাপোর্ট করে না । তবে হ্যা একটি উপায় আসে আর সেই উপায়ের নামই হলো ইন্টারফেস ।তাহলে বুজাই জাত্সে যে মাল্টিপল ইনহেরিটেন্সকেই আমরা ইন্টারফেস বলে থাকি|তবে আরেকটি বিষয় জাভা মাল্টিপল ইনহেরিটেন্স সাপোর্ট না করলেও মাল্টিলেভেল ইনহেরিটেন্স সাপোর্ট করে । উপরের চিত্রটি তারই প্রমান |

এখন আমরা জানব ইন্টারফেস আসলে কী?

Interface

ইন্টারফেস এমন বিশেষ প্রক্রিয়া যেখানে কোনো ডিরাইভড ক্লাসের জন্য দুই বা ততোধিক বেস ক্লাস ব্যবহার করা হয় ।

এটি এক ধরনের বিশেষ ক্লাস যেটিতে কিছু final অথবা static টাইপ এর ভ্যারিয়েবল এবং মেথড থাকে| ইন্টারফেস এর সাধারণ ফরমেট হল :

Interface interfaceName

{

//variable;

//method declaration;

 

}

 

class DerivedClassName implements interfaceName

{

 

//DerivedClass variable declaration

//DerivedClass methods

//interface method

 

}

এখানে implements একটি keyword |

নিচে ইন্টারফেস এর কিছু ইমপ্লিমেন্টেশন ডায়াগ্রাম দেওয়া হল :

 photo interface_zps26a2a948.png

এখন আমরা ইন্টারফেস দিয়ে একটি প্রোগ্রাম দেখি:

আমরা সবাই কম বেশি Fibonacci series এর নাম শুনেছি , এখন ইন্টারফেস এর মাধ্যমে সেই প্রোগ্রামটি

আমরা এখানে করব

/*Coded By M. Raihan , Khulna University*/
//interface Example

public interface FiboSeries {
final static int n=11;
void fibo1();
}

class Cal implements FiboSeries {
//use of interface;
int f0,f1=1,f;

public void fibo1(){//fibonaci series programme;

for(int i=1;i<=n;i++){

f=f0+f1;
System.out.println(f);
f1=f0;
f0=f;
}
}
}
public class InterfaceExample {

public static void main(String[] args) {
Cal r1=new Cal();
r1.fibo1(); // calling the fibo method;

}

}

প্রোগ্রামটিতে আমরা দেখতে পাচ্ছি যে ইন্টারফেসে আমরা মেথড শুদু ডিক্লেয়ার করেছি কিন্তু বডি দেইনি বডি আমরা ডিরাইভড ক্লাসে ডিক্লেয়ার করেছি । আর কারণ হলো ইন্টারফেসের মেথড অবস্যই abstract হতে হবে । abstract সম্পর্কে আমরা নেক্সট টিউটোরিয়ালে জানব ।

আগের টিউটোরিয়ালে আমরা মেথড ওভাররাইডিং এবং মেথড ওভারলোডিং সম্পর্কে জেনে ছিলাম ।

আজকে তার একটি প্রোগ্রাম আমরা দেখব ।

Method Overriding Example :

 

/*Coded By M. Raihan , Khulna University*/
//Overriding Example

class Sup{
int x;
Sup(int x) {
this.x=x;
}
void display(){
System.out.println(“Insider Super Class x : “+x);
}
}
class Sub extends Sup{
int y,z;
Sub(int x ,int y,int z) {
super(x);
this.y=y;
this.z=z;
}
void display(){
System.out.println(“Insider Sub Class x : “+x);
System.out.println(“Insider Sub Class y : “+y);
System.out.println(“Insider Sub Class z : “+z);
super.display();
}
}
public class MethodOverRidding {
public static void main(String[] args) {
Sub s=new Sub(70,50,250);
s.display();
}
}

প্রোগ্রামটি খুবই simple ভাবে ওভাররাইডিং বুঝানো হয়েছে । এই প্রোগ্রামটি করার আগে আগের টিউটোরিয়াল থেকে কনসেপ্ট ক্লিয়ার করে নিতে হবে |

Method Overloading Example:

 

/*Coded By M. Raihan , Khulna University*/
//Overriding Example

public class OverloadingExampleClass {

public void addition(){

int a=2801,b=1020,result=0;
result=a+b;
System.out.println(“Addition : “+result);

}
public int addition(int a , int b){
int result = 0;

result= a+b;
System.out.println(“Addition : “+result);
return result;

}
public double addition(double a , double b){

double result = 0;

result= a+b;
System.out.println(“Addition : “+result);
return result;

}

}

public class Main {

public static void main(String[] args) {
OverloadingExampleClass ovd=new OverloadingExampleClass();
ovd.addition();
ovd.addition(15, 30);
ovd.addition(180.9, 110.31);

}

}

আজকে interface এর পর্ব এখানে ইতি টানছি নেক্সট টিউটোরিয়ালে আমরা প্যাকেজ (package ) নিয়ে আলোচনা করব |

Author : M. Raihan

সকল মন্তব্য (0)

মন্তব্য করুন

ফেইসবুক দিয়ে মন্তব্য