কম্পিউটার টিউটোরিয়াল

জাভাতে ক্লাসের বিভিন্ন প্রকার কী কী?


জাভাতে ক্লাসের প্রকার

Concrete class

যে কোনো নরমাল ক্লাস যেটিতে কোনো অ্যাবস্ট্রাক্ট মেথড নেই বা এমন একটি ক্লাস যেটি তার পেরেন্ট ক্লাস বা ইন্টারফেসের সব মেথড এবং নিজস্ব মেথডের ইমপ্লিমেন্টেশন রয়েছে, তাকে কনক্রিট ক্লাস বলা হয়।

উদাহরণ

public class Concrete { // Concrete Class
    static int product(int a, int b) {
        return a * b;
    }
    public static void main(String args[]) {
        int p = product(2, 3);
        System.out.println("Product: " + p);
    }
}

আউটপুট

Product: 6

Abstract class

abstract কিওয়ার্ড দিয়ে ডিক্লেয়ার করা ক্লাস এবং যেটিতে শূন্য বা অধিক অ্যাবস্ট্রাক্ট মেথড থাকে, তাকে অ্যাবস্ট্রাক্ট ক্লাস বলা হয়। অ্যাবস্ট্রাক্ট ক্লাসগুলো অসম্পূর্ণ ক্লাস, তাই ব্যবহার করার জন্য আমরা স্ট্রিক্টলি অ্যাবস্ট্রাক্ট ক্লাসকে কনক্রিট ক্লাসে এক্সটেন্ড করতে হবে।

উদাহরণ

abstract class Animal { //abstract parent class
    public abstract void sound(); //abstract method
}
public class Dog extends Animal { //Dog class extends Animal class
    public void sound() {
        System.out.println("Woof");
    }
    public static void main(String args[]) {
        Animal a = new Dog();
        a.sound();
    }
}

আউটপুট

Woof

Final class

final কিওয়ার্ড দিয়ে ডিক্লেয়ার করা ক্লাসকে final class বলা হয় এবং এটি অন্য কোনো ক্লাস দ্বারা এক্সটেন্ড করা যায় না, উদাহরণস্বরূপ java.lang.System class।

উদাহরণ

final class BaseClass {
    void Display() {
        System.out.print("This is Display() method of BaseClass.");
    }
}
class DerivedClass extends BaseClass { //Compile-time error - can't inherit final class
    void Display() {
        System.out.print("This is Display() method of DerivedClass.");
    }
}
public class FinalClassDemo {
    public static void main(String[] arg) {
        DerivedClass d = new DerivedClass();
        d.Display();
    }
}

উপরোক্ত উদাহরণে, DerivedClass extends BaseClass(final), আমরা একটি final ক্লাস এক্সটেন্ড করতে পারি না, তাই কম্পাইলার এরর থ্রো করবে। উপরের প্রোগ্রাম এক্সিকিউট হবে না।

আউটপুট

cannot inherit from final BaseClass
Compile-time error - can't inherit final class

POJO class

যে ক্লাসে শুধু প্রাইভেট ভেরিয়েবল থাকে এবং সেগুলো ব্যবহার করার জন্য সেটার এবং গেটার মেথড থাকে, তাকে POJO (Plain Old Java Object) ক্লাস বলা হয়। এটি একটি ফুলি এনক্যাপসুলেটেড ক্লাস।

উদাহরণ

class POJO {
    private int value=100;
    public int getValue() {
        return value;
    }
    public void setValue(int value) {
        this.value = value;
    }
}
public class Test {
    public static void main(String args[]){
        POJO p = new POJO();
        System.out.println(p.getValue());
    }
}

আউটপুট

100

Static class

স্ট্যাটিক ক্লাস হলো নেস্টেড ক্লাস অর্থাৎ অন্য একটি ক্লাসের ভিতরে স্ট্যাটিক মেম্বার হিসেবে ডিক্লেয়ার করা ক্লাসকে স্ট্যাটিক ক্লাস বলা হয়।

উদাহরণ

import java.util.Scanner;
class staticclasses {
    static int s; // static variable
    static void met(int a, int b) { // static method
        System.out.println("static method to calculate sum");
        s = a + b;
        System.out.println(a + "+" + b); // print two numbers
    }
    static class MyNestedClass { // static class
        static { // static block
            System.out.println("static block inside a static class");
        }
        public void disp() {
            int c, d;
            Scanner sc = new Scanner(System.in);
            System.out.println("Enter two values");
            c = sc.nextInt();
            d = sc.nextInt();
            met(c, d); // calling static method
            System.out.println("Sum of two numbers-" + s); // print the result in static variable
        }
    }
}
public class Test {
    public static void main(String args[]) {
        staticclasses.MyNestedClass mnc = new staticclasses.MyNestedClass(); // object for static class
        mnc.disp(); // accessing methods inside a static class
    }
}

আউটপুট

static block inside a static class
Enter two values
10 20
static method to calculate sum
10+20
Sum of two numbers-30

Inner Class

একটি ক্লাস বা মেথডের ভিতরে ডিক্লেয়ার করা ক্লাসকে ইনার ক্লাস বলা হয়।

উদাহরণ

public class OuterClass {
    public static void main(String[] args) {
        System.out.println("Outer");
    }
    class InnerClass {
        public void inner_print() {
            System.out.println("Inner");
        }
    }
}

আউটপুট

Outer
  1. জাভাতে কনস্ট্রাক্টর কী?

  2. জাভা ৯-এ ক্লাস লোডারের পরিবর্তনগুলো

  3. জাভা ৯-এ JShell-এ বিভিন্ন স্টার্টআপ স্ক্রিপ্ট

  4. জাভা ৯-এ JShell-এ /edit কমান্ডের çeşitাবলী