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

Android-এ Java এবং Kotlin-এর পার্থক্য উদাহরণসহ

অ্যান্ড্রয়েড ডেভেলপমেন্টে Java এবং Kotlin-এর পার্থক্য

Kotlin Android ডেভেলপমেন্টে Java-এর চেয়ে অনেক উন্নতি নিয়ে এসেছে। নিচে কিছু মূল পার্থক্য এবং উদাহরণ দেওয়া হলো।

১. কম কোড, সহজ ডেভেলপমেন্ট

// Java
TextView displayText = (TextView) findViewById(R.id.textView);
displayText.setText("Hello World");

// Kotlin (View Binding বা Kotlin Synthetics ব্যবহার করে)
textView.setText("Hello World")
// অথবা Data Binding: binding.textView.text = "Hello World"

২. কম্পাইল-টাইম নাল পয়েন্টার এক্সসেপশন হ্যান্ডলিং

// Java: রানটাইমে NullPointerException
String value = "abc";
value = null; // কম্পাইল টাইমে কোনো এরর নেই, রানটাইমে ক্র্যাশ

// Kotlin: কম্পাইল টাইমে এরর
var value: String = "abc"
value = null // কম্পাইলেশন এরর: Null can not be a value of a non-null type String

// নালেবল টাইপ
var nullableValue: String? = "abc"
nullableValue = null // OK
println(nullableValue?.length) // Safe call

৩. ডেটা ক্লাস বনাম POJO

// Java POJO (বয়লারপ্লেট কোড)
public class User {
    private String name;
    private int age;
    // Constructor, getter, setter, equals, hashCode, toString...
}

// Kotlin Data Class (এক লাইনে সব)
data class User(val name: String, val age: Int)
// স্বয়ংক্রিয়: equals(), hashCode(), toString(), copy(), componentN()

৪. অন্যান্য গুরুত্বপূর্ণ পার্থক্য

ক্রমিক নং বিষয় Java Kotlin
১ এক্সসেপশন হ্যান্ডলিং চেকড এক্সসেপশন ব্যবহার করে (throws ঘোষণা করতে হয়) চেকড এক্সসেপশন নেই; কম্পাইল-টাইম এরর থ্রো করে
২ নাল হ্যান্ডলিং নাল চেক এনফোর্স করে না (NPE হয়) কম্পাইল টাইমে নাল চেক এনফোর্স করে
৩ নন-প্রাইভেট ফিল্ডস নন-প্রাইভেট ফিল্ড অনুমোদিত কনস্ট্রাক্টরে নন-প্রাইভেট ফিল্ড অনুমোদিত নয়
৪ অ্যারে (Arrays) কোভেরিয়েন্ট (String[] → Object[]) ইনভেরিয়েন্ট (Array<String> → Array<Any> নয়)
৫ টেরনারি অপারেটর হ্যাঁ (condition ? a : b) না (বরং if-else এক্সপ্রেশন ব্যবহার করুন: if (cond) a else b)
৬ এক্সটেনশন ফাংশন না হ্যাঁ (বिना ইনহেরিটেন্স ক্লাসে মেথড যোগ করা যায়)
৭ কোরুটিন (Coroutines) না (থ্রেড/Executor ব্যবহার) হ্যাঁ (লাইটওয়েট অ্যাসিনক্রোনাস প্রোগ্রামিং)
৮ স্মার্ট কাস্ট না হ্যাঁ (টাইপ চেকের পর অটো কাস্ট)

উপসংহার

Kotlin আধুনিক, সংক্ষিপ্ত এবং নিরাপদ। Google-এ Kotlinকে Android-এ অফিশিয়াল ভাষা হিসেবে ঘোষণা করেছে। নতুন প্রজেক্টের জন্য Kotlin প্রস্তাবিত।

  1. জাভা এবং জাভাস্ক্রিপ্টের পার্থক্য কী?

  2. অ্যান্ড্রয়েডে gravity এবং layout_gravity-এর পার্থক্য

  3. অ্যান্ড্রয়েডে onCreate() এবং onStart() এর পার্থক্য

  4. অ্যান্ড্রয়েডে fill_parent এবং wrap_content এর পার্থক্য