মনে করুন, একটি কাজ করতে গিয়ে কয়েকটি ক্লাস প্রয়োজন, এই ক্লাসগুলিকে আমরা একটি সেট বা গ্রুপ বলতে পারি। যেমন: একটি ফাইল ডাউনলোডে প্রয়োজন, সেক্ষেত্রে ডাউনলোডের অবস্থা (State) থাকতে পারে এরকম: ডাউনলোডিং, পজ, রিজিওম, সাকসেস, ইরর। এখন এই ৫ রকমের কাজের ক্ষেত্রে ৫ টি ক্লাস ও আলাদা একটি সীলড ক্লাস তৈরি করা যেতে পারে। ৫ টি […]
কটলিন ডেটা ক্লাস: ডেটা নিয়ে কাজ করার জন্য ডেটা ক্লাস ব্যবহার করা যায়। এটি মূলত অন্যান্য কাজের পাশাপাশি ডেটা ধরে রেখে তা নিয়ে কাজ করার জন্য বিশেষ ক্লাস। তাহলে বলতে পারি যে, ডেটা ক্লাস হলো ডেটার প্লেসহোল্ডার বা ধারক। ডেটা ক্লাস দেখতে কেমন? যেহেতু ডেটা নিয়ে কাজ করার জন্য এটি তৈরি তাই এর প্রাইমারি কনস্ট্রাক্টরে […]
কটলিন এ্যাবস্ট্রাক্ট ক্লাস: সহজ কথায় যে ক্লাসে abstract কী-ওয়ার্ড ব্যবহার করা হয় সেটাই এ্যাবস্ট্রাক্ট ক্লাস। এ্যাবস্ট্রাক্ট ক্লাস দিয়ে কিন্তু অবজেক্ট তৈরি করা বা ইনস্টেন্স তৈরি করা যায় না। এই ক্লাসের মেথড/ফাংশন ও প্রোপার্টি/ভেরিয়েবল গুলো কিন্তু এ্যাবস্ট্রাক্ট নয় তাই এদেরকে এ্যাবস্ট্রাক্ট করার জন্য আলাদাভাবে abstract কী-ওয়ার্ড ব্যবহার করতে হয়। এ্যাবস্ট্রাক্ট ক্লাস কেন দরকার? কোডের তথ্য লুকিয়ে […]
জাভা/কটলিন যেহেতু জাভা ভার্চুয়াল মেশিনের (JVM) উপর রান করে। তাই প্রথমে JVM, JRE এবং JDK এগুলো সম্পর্কে ধারণা থাকা জরুরি। JVM = Java Virtual Machine JRE = Java Runtime Environment JDK = Java Development Kit JVM: জাভা ভার্চুয়াল মেশিন হলো জাভার জন্য একটা কৃত্রিম যন্ত্র। ভার্চুয়াল মেশিন বা কৃত্রিম যন্ত্র বলার কারন হলো এটার বাস্তব […]
কটলিন কি? কটলিন হলো ওপেন সোর্স, স্ট্যাটিক্যালি টাইপ (statically-typed) এবং জেনারেল পারপাস প্রোগ্রামিং ল্যাঙ্গুয়েজ। এটা JVM এর উপর রান করে। যে সব ক্ষেত্রে জাভা ল্যাঙ্গুয়েজ ব্যবহার করা যায় সেসব ক্ষেত্রে কটলিনও ব্যবহার করা যায়। যেমন: এন্ড্রয়েড এ্যাপ ডেভলপমেন্ট, সার্ভার সাইড সফটওয়্যার ডেভলপমেন্ট, ডেস্কটপ সফটওয়্যার ইত্যাদি। কটলিন ডেভলপমেন্টের প্রধান আন্দ্রে ব্রেস্লাভ (Andrey Breslav) এর মতে এটা […]
কটলিনের স্ট্যান্ডার্ড ইনপুট আউটপুট অপারেশন হয়ে থাকে বাইট স্ট্রীমের (byte stream) প্রবাহের মাধ্যমে। এটা ইনপুট ডিভাইস (keyboard) থেকে মেইন মেমোরি (RAM) এবং মেইন মেমোরি থেকে আউটপুট ডিভাইসে (Monitor) যায়। এখানে আমরা প্রিন্ট শব্দটি ব্যবহার করব, এর মানে হলো টার্মিনালে কোন লেখাকে প্রদর্শন করা। কটলিন আউটপুট: কটলিনের আউটপুট অপারেশন হয়ে থাকে কটলিনের স্ট্যান্ডার্ড মেথড print() এবং […]
গাণিতিক, তুলনামূলক, যৌক্তিক ইত্যাদি কাজের জন্য কটলিনে কিছু অপারেটর রয়েছে।অপারেটর গুলো হলো বিশেষ কিছু চিহ্ন যা এসব কাজ করার জন্য ব্যবহার করা হয়। অপারেটর গুলো হলো: Mathematical Operator – ম্যাথমিটিকাল অপারেটর Relational Operator – রিলেশনাল অপারেটর Assignment Operator – এ্যাসাইনমেন্ট অপারেটর Unary Operator – ইউনারি অপারেটর Logical Operator – লজিকাল অপারেটর Bitwise Operator – বিটওয়াইজ […]
এক ধরনের ডাটাকে অন্য ধরনের ডাটায় রুপান্তর করা হলো টাইপ কনভার্সন। কটলিনে ক্ষুদ্রতর ডাটা টাইপ থেকে বৃহত্তর ডাটা টাইপে সরাসরি এ্যাসাইন করা যায় না। অর্থাৎ ইন্টিজার কে লং টাইপের ভেরিয়েবলে এ্যাসাইন করা যাবে না অর্থাৎ Implicit conversion করা যাবে না, ইরর হবে। কিন্তু এখন যদি ইন্টিজারের ডাটা লং টাইপের ভেরিয়েবলে রাখার প্রয়োজন হয় তখন কি […]
ভেরিয়েবল বলতে বুঝায় মেমোরির অবস্থান, অর্থাৎ একটি ডাটা রাখার জন্য বা স্টোর করার জন্য মেমোরির কোন যায়গাটি দখল করবে তা এই ভেরিয়েবল নির্দিষ্ট করে। সহজভাবে: ভেরিয়েবলে হলো মেমোরির কোন একটা অবস্থান যেখানে আমরা ডাটা রাখতে পারি। কিভাবে ভেরিয়েবল লিখব? কটলিনে ভেরিয়েবল লেখার জন্য দুটি কী-ওয়ার্ড আছে ( var এবং val ) শুরুতে var অথবা val […]
ডেলিগেট কি: ডেলিগেট হলো ডিজাইন প্যাটার্ন যা কোন একটা নির্দিষ্ট ইভেন্ট ঘটলে একটা অবজেক্ট থেকে অন্য অবজেক্টে মেসেজ পাঠাতে সহায়তা করে। iOS ডেভলপারদের জন্য ডেলিগেশন খুব গুরুত্বপূর্ণ ডিজাইন প্যাটার্ণ । মনে করি, A অবজেক্ট B অবজেক্টকে কল করে কোন একটি কাজ করার জন্য। পরবর্তী কাজগুলো করার জন্য যখন কাজটি শেষ হবে, A অবজেক্টকে জানতে হবে যে B অবজেক্ট কাজটি শেষ করেছে। এটা করার জন্য […]