CodeGym /Java Blog /এলোমেলো /পুরাতন স্তর 09
John Squirrels
লেভেল 41
San Francisco

পুরাতন স্তর 09

এলোমেলো দলে প্রকাশিত

জ্ঞান বনাম দক্ষতা

পুরাতন স্তর 09 - 1কলেজ আমাদের শিখিয়েছে যে তত্ত্ব এবং অনুশীলনের মধ্যে কোন বড় পার্থক্য নেই। ঠিক আছে, আপনি নিশ্চয়ই বুঝতে পেরেছেন যে এটি একই নয়। কিন্তু আপনি মূল পার্থক্য দেখতে পাচ্ছেন না। তবুও একটা আছে। বেশিরভাগ লোক "আমি জানি" এবং "আমি পারি" এর মধ্যে সমতা চিহ্নটি রাখে। আপনি করবেন? কিভাবে কয়েক উদাহরণ সম্পর্কে?
  1. আমি জানি যে ধূমপান আমার জন্য খারাপ, কিন্তু আমি ধূমপান করি।
  2. আমি জানি যে ফাস্ট-ফুড আমার জন্য খারাপ, কিন্তু আমি তা খাই।
  3. আমি ট্রাফিক নিয়ম জানি কিন্তু গাড়ি চালাতে পারি না।
  4. আমি জানি জগিং করা আমার জন্য ভালো কিন্তু আমি সকালে জগিং করি না।
এটা প্রায়ই ঘটে যে লোকেরা "আমি জানি" এর জন্য "আমি পারি"। এটি ট্রাফিক নিয়মের সাথে একটি ভাল উদাহরণ। যদি একজন ব্যক্তি নিয়মকানুন জানেন এবং জানেন, কীভাবে গাড়ি চালাতে হয়, তার মানে কি সে গাড়ি চালাতে পারে? না। সে যদি ভাবে যে সে গাড়ি চালাতে জানে? তাহলে কেন তাকে একজন প্রশিক্ষকের প্রয়োজন হবে – তিনি ইতিমধ্যেই সবকিছু জানেন। যখন আপনি নিশ্চিত হন যে আপনি ইতিমধ্যেই সবকিছু জানেন আপনি সম্ভবত নতুন কিছু শিখবেন না। এবং আপনি যদি নিশ্চিত হন যে আপনি কীভাবে সবকিছু করতে জানেন তবে আপনি পড়াশোনা করবেন না। এই ধরনের একটি চিন্তা এমনকি আপনার মন অতিক্রম করবে না. এবং এর মানে হল আপনি কিছু শেখার সব চমৎকার সুযোগ মিস করবেন। সাধারণ কলেজ শুধুমাত্র আপনাকে জ্ঞান দেয়; আপনাকে নিজেরাই দক্ষতা অর্জন করতে হবে। কিন্তু আমি কি শুনি? আপনি আপনার কলেজে তত্ত্ব ছাড়াও অনুশীলন করেছেন? ঠিক আছে, আপনি যদি পদার্থবিজ্ঞান অনুষদে পড়াশোনা করেন, কমপক্ষে 20% এর দক্ষতা সহ একটি বাষ্প ইঞ্জিনের একটি কার্যকরী মডেল তৈরি করুন। আমি বাজি ধরতে পারি আপনি জানেন কিভাবে এটি করতে হয়, কিন্তু আপনি আসলে এটি করতে সক্ষম হবেন না, আমি কি ঠিক? আপনি একজন রসায়নবিদ ? ধোঁয়াহীন পাউডার তৈরি করুন। আপনি কিভাবে জানেন, কিন্তু আপনি পারেন না, হা? গণিতবিদ, আপনি? একটি আর্টিলারি শেলের গতিপথ গণনা করুন। শেলের আকৃতি বিবেচনা করতে ভুলবেন না। গাণিতিক বিন্দু বাস্তব জীবনে উড়ে না. এবং কোন গোলাকার ঘোড়া নেই। পুরাতন স্তর 09 - 2জীববিজ্ঞানী? পেনিসিলিন বিচ্ছিন্ন করুন। এই ছাঁচ তরমুজে বৃদ্ধি পায়, তাই আপনি জানেন। আপনি কিভাবে জানেন - চমৎকার! আপনি এটা করতে পারেন? অর্থনীতিবিদ?তেলের দাম বৃদ্ধির পূর্বাভাস দিন। সম্পন্ন? এবং এখন আপনার পূর্বাভাসের উপর ভিত্তি করে এটিকে বছরে $2,000 বা $200,000 এ পরিণত করুন। আপনি কি কখনো ফরেক্স খেলেছেন? আসল টাকার জন্য? অথবা আপনি শুধু এটা কি জানেন? আন্তর্জাতিক অর্থনীতি? চমত্কার ! আমি কোথায় একটি অফশোর কোম্পানি খুলব? হংকং-কং, আয়ারল্যান্ড বা মার্কিন যুক্তরাষ্ট্রে। কেন? এমনকি যদি আপনি এটি জানেন যে, যা সন্দেহজনক, আপনি খুব কমই এটি করতে সক্ষম হবেন, যেহেতু আপনি আসলে এটি করেননি। এটা কিভাবে করতে হয় তা আপনার কাছে সামান্যতম ধারণাও নেই। ওহ, তুমি যে কলেজে পড়নি? আপনি অপ্রস্তুত কাজ করার অধিকার আমার কি আছে? কারণ এগুলো বাস্তব জীবনের কাজ। এই আইএস অভ্যাস , আপনি কলেজে যা অধ্যয়ন করেছেন তা হল: গোলাকার ঘোড়া, নিখুঁত প্রতিযোগিতা – এর কোনোটাই বাস্তব জীবনে বিদ্যমান নেই। কিন্তু কেন যেন উল্লেখ করতে ভুলে গেছিবিপণন বিশেষজ্ঞ ? আমার $500 খরচ করার সর্বোত্তম উপায় কি যাতে যতটা সম্ভব মানুষ আমার বক্তৃতা সম্পর্কে জানতে পারে? বিজ্ঞাপনে? আপনি কি জানেন যে শুধুমাত্র ক্লাসিক বিজ্ঞাপনই পুরানো নয়, ইউএসপি (অনন্য বিক্রির প্রস্তাব) এর ধারণাও, যা আমি নিশ্চিত যে আপনাকে কলেজে প্রায় অনন্য প্যানেসিয়া হিসাবে শেখানো হয়েছিল। আপনি কিছু জানেন ভুলে যান. নিজেকে জিজ্ঞাসা করুন - আমি কি করতে পারি? দরকারী, মানে? কিছু মানুষ জন্য টাকা দিতে হবে? ভালো টাকা, মানে? তাই বন্ধুরা, আসুন কোডজিমের মতো একটি চমৎকার কোর্সের প্রতি কৃতজ্ঞতা প্রকাশ করি। এটির কারণে আপনি কেবল কীভাবে প্রোগ্রাম করবেন তা জানবেন না, তবে আপনি আসলে এটি করতে সক্ষম হবেন। আপনি একটি চাকরি পেতে এবং কয়েক বছরের মধ্যে ভাল অর্থ উপার্জন করতে সক্ষম হবেন। আমি আশা করি এই অর্থ সুন্দর এবং আরামদায়ক জীবনযাপনের জন্য যথেষ্ট হবে। আমি এটা আবার বলব, তাই আপনি মনে রাখবেন: এটা কোন ব্যাপার না আপনি কি জানেন. একমাত্র জিনিস যা গুরুত্বপূর্ণ তা হল আপনার কী দরকারী দক্ষতা রয়েছে, লোকেরা আপনাকে অর্থ প্রদান করতে আগ্রহী হবে। এটা যত তাড়াতাড়ি বুঝবেন ততই ভালো।

আপনি একটি নতুন স্তরে পৌঁছেছেন

লেভেল 9

পুরাতন স্তর 09 - 3

1 রিশা, স্ট্যাক ট্রেস

পুরাতন স্তর 09 - 4- আরে! আজ আমি আপনাকে বলব স্ট্যাক ট্রেস কি। কিন্তু প্রথমে আমাকে স্ট্যাক কি ব্যাখ্যা করা যাক. - কাগজপত্রের স্তুপ কল্পনা করুন - একটি নির্দিষ্ট কেরানির জন্য অ্যাসাইনমেন্ট। একটি নতুন অ্যাসাইনমেন্ট স্ট্যাকের শীর্ষে রাখা যেতে পারে এবং তিনি একটি স্ট্যাকের শীর্ষ থেকে একটি অ্যাসাইনমেন্ট নেবেন। সুতরাং, অ্যাসাইনমেন্টগুলি আগে আসলে নয়। প্রতিবার ক্লার্ক সেই অ্যাসাইনমেন্ট নেয় যা শেষ আসে। সংগ্রহের এই ধরনের কাঠামোকে স্ট্যাক বলা হয় । - জাভাতে, একটি বিশেষ সংগ্রহ রয়েছে - স্ট্যাক। এই সংগ্রহে পদ্ধতি রয়েছে "একটি উপাদান যোগ করুন" এবং "একটি উপাদান নিয়ে যান আপনি ইতিমধ্যেই জানেন, যোগ করা শেষ উপাদানটি প্রথমে নেওয়া হবে। - হুম। এটা কঠিন নয়, আমি অনুমান. - ঠিক আছে। তারপর আমাকে ব্যাখ্যা করা যাক কি একটি স্ট্যাক ট্রেসহয় - কল্পনা করুন যে জাভা ফাংশনে А ফাংশন B কে কল করে এবং পরেরটি ফাংশন C কে কল করে , যা তার পরিবর্তে, ফাংশনটিকে কল করে । সুতরাং, ফাংশন B থেকে প্রস্থান করার জন্য , আপনাকে প্রথমে ফাংশন C থেকে প্রস্থান করতে হবে এবং এটি করার জন্য আপনাকে ফাংশন D থেকে প্রস্থান করতে হবে । এটি একটি স্ট্যাকের অনুরূপ। - আর মিল কি? - স্ট্যাকের মধ্যে, একটি নির্দিষ্ট অ্যাসাইনমেন্ট পেতে, আপনাকে উপরে রাখা সমস্ত অ্যাসাইনমেন্টগুলিও সম্পূর্ণ করতে হবে। - ঠিক আছে, এটি একটি উপমা, কিন্তু আমি নিশ্চিত নই যে আমি সবকিছু ঠিক বুঝতে পেরেছি কিনা। - এখানে দেখুন. জাভাতে একটি স্ট্যাক উপাদানগুলির একটি সেট। এটি একটি স্ট্যাকের মধ্যে কাগজের শীট মত. উপরের থেকে তৃতীয়টি নিতে, আপনাকে অবশ্যই দ্বিতীয়টি নিতে হবে, তবে তার আগে আপনাকে প্রথমটি নিতে হবে। আপনি সর্বদা শীট রাখতে এবং নিতে পারেন, তবে আপনি সেগুলি কেবল উপরে রাখতে পারেন এবং কেবল উপরে থেকে নিতে পারেন। একই ফাংশন কল প্রযোজ্য. ফাংশন А কল ফাংশন B , পরবর্তী কল ফাংশন C। А থেকে প্রস্থান করতে , আপনাকে প্রথমে B থেকে প্রস্থান করতে হবে এবং এটি করার জন্য আপনাকে C থেকে প্রস্থান করতে হবে । - একটি মিনিট অপেক্ষা করুন. যদি আমি এটি ঠিক করে থাকি, তাহলে পুরো স্ট্যাকটি "স্ট্যাকের উপর রাখা শেষ শীটটি নেওয়া যেতে পারে" এবং "প্রথমে, শেষ বলা ফাংশনটি প্রস্থান করা উচিত" এ পরিণত হয়। তাই নাকি? - হ্যাঁ. সুতরাং, ফাংশন কলের ক্রম হল "ফাংশন কল স্ট্যাক", বা সহজভাবে "কল স্ট্যাক"। শেষ নামক ফাংশনটি প্রথমে শেষ করতে হবে। আসুন উদাহরণটি দেখি: পুরাতন স্তর 09 - 5- ঠিক আছে। ফাংশন কল দিয়ে সবকিছু পরিষ্কার, আমি অনুমান করি। কিন্তু এই StackTraceElement কি ? - জাভা ভার্চুয়াল মেশিন সব ফাংশন কল লগ. এই উদ্দেশ্যে এটি একটি বিশেষ সংগ্রহ আছে - স্ট্যাক। যখন একটি ফাংশন অন্যটিকে কল করে, JVM এই স্ট্যাকের মধ্যে একটি নতুন উপাদান StackTraceElement রাখে। ফাংশন শেষ হলে, উপাদানটি স্ট্যাক থেকে মুছে ফেলা হয়। সুতরাং, এই স্ট্যাকটি সর্বদা "ফাংশন কল স্ট্যাকের" বর্তমান অবস্থা সম্পর্কে আপ-টু-ডেট তথ্য সঞ্চয় করে। - প্রতিটি StackTraceElementবলা পদ্ধতি সম্পর্কে তথ্য রয়েছে। সুতরাং আপনি getMethodName ব্যবহার করে এই পদ্ধতির নাম পেতে পারেন । - উপরের উদাহরণ এটি দেখায়:
  1. "কল স্ট্যাক" পান:
  2. প্রতিটির জন্য লুপ ব্যবহার করে অ্যারেটি পুনরাবৃত্তি করুন । আমি আশা করি আপনি এটি ভুলে যাননি।
  3. System.out এ প্রিন্ট পদ্ধতির নাম ।
- একটি আকর্ষণীয় জিনিস, এবং দৃশ্যত সহজ. ধন্যবাদ, রিশা!

2 দিয়েগো, স্ট্যাক ট্রেস ডিসপ্লেতে টাস্ক

- আরে, আমিগো! স্ক্রিনে একটি স্ট্যাক ট্রেস প্রদর্শন করার জন্য এখানে একটি ছোট কাজ।
কাজ
1 প্রতিটি পদ্ধতির স্ট্যাকট্রেস রিটার্ন করা উচিত
পাঁচটি পদ্ধতি যা একে অপরকে কল করে। প্রতিটি পদ্ধতির স্ট্যাকট্রেস ফিরিয়ে দেওয়া উচিত।
2 StackTrace আবার
পাঁচটি পদ্ধতি লিখুন যা একে অপরকে কল করে। প্রতিটি পদ্ধতির তার কলার পদ্ধতির নাম ফেরত দেওয়া উচিত। আপনি StackTrace ব্যবহার করে কলার পদ্ধতি পেতে পারেন।
3 পদ্ধতিটি কোডের লাইন নম্বরটি ফেরত দিতে হবে যেটি
একে অপরকে কল করার পাঁচটি পদ্ধতি লিখুন থেকে এই পদ্ধতিটি কল করা হয়েছিল। প্রতিটি পদ্ধতিতে কোডের লাইন নম্বর ফেরত দেওয়া উচিত যেটি থেকে এই পদ্ধতিটি কল করা হয়েছিল। element.getLineNumber() ফাংশনটি ব্যবহার করুন ।
4 10টি কলের স্ট্যাক ট্রেস
10টি কলের স্ট্যাক ট্রেস পেতে কোড লিখুন।
5 পদ্ধতিটি একটি ফলাফল প্রদান করবে - এর স্ট্যাক ট্রেস গভীরতা
একটি পদ্ধতি লিখুন যা এটির স্ট্যাক ট্রেস গভীরতা প্রদর্শন করে এবং ফেরত দেয়। স্ট্যাক ট্রেস গভীরতা হল এর পদ্ধতির সংখ্যা (তালিকায় উপাদানের সংখ্যা)।

3 এলি, ত্রুটি এবং ব্যতিক্রম

- আরে, আমিগো! আজ আমরা একটি খুব আকর্ষণীয় পাঠ আছে. আমি আপনাকে ব্যতিক্রম সম্পর্কে বলব। ব্যতিক্রম হল প্রোগ্রামে ত্রুটি নিয়ন্ত্রণের একটি বিশেষ ব্যবস্থা। এখানে কিছু ত্রুটির উদাহরণ রয়েছে যা প্রোগ্রামে ঘটতে পারে:
  1. প্রোগ্রামটি সম্পূর্ণ ডিস্কে একটি ফাইল লেখার চেষ্টা করে।
  2. প্রোগ্রামটি একটি ভেরিয়েবলের একটি পদ্ধতিকে কল করার চেষ্টা করে যা নাল রেফারেন্স সংরক্ষণ করে।
  3. প্রোগ্রামটি একটি সংখ্যাকে 0 দ্বারা ভাগ করার চেষ্টা করে।
এই কর্ম একটি ত্রুটির ফলে. সাধারণত, এটি একটি প্রোগ্রাম বন্ধের দিকে নিয়ে যায় - কোডটি কার্যকর করা চালিয়ে যাওয়ার কোন মানে নেই। - তা কেন? - গাড়ি যখন খাড়া থেকে পড়ে যাচ্ছে তখন চাকা ঘুরানোর কোন বুদ্ধি আছে? - আপনি কি বলতে চাইছেন যে প্রোগ্রামটি শেষ হওয়া উচিত? - হ্যাঁ. আগেও এমনই ছিল। কোন ত্রুটি একটি প্রোগ্রামের সমাপ্তি নেতৃত্বে. - এটি একটি খুব স্মার্ট সিদ্ধান্ত. - কাজ করার চেষ্টা করলে ভালো হবে না? - হ্যাঁ। আপনি MS Word এ একটি বিশাল পাঠ্য টাইপ করেছেন, এটি সংরক্ষণ করেছেন, এটি সংরক্ষণ করা হয়নি, কিন্তু প্রোগ্রামটি আপনাকে বলে যে সবকিছু ঠিক আছে। এবং আপনি টাইপ চালিয়ে যান। মূর্খ, তাই না? - হ্যাঁ। - তারপরে প্রোগ্রামাররা একটি আকর্ষণীয় পদক্ষেপ নিয়ে এসেছিল:প্রতিটি ফাংশন তার কাজের স্থিতি ফেরত দেয়। 0 এর অর্থ হল যে ফাংশনটি যেমন অনুমিত হয়েছিল তেমন কাজ করেছে, অন্য কোনও মান - যে একটি ত্রুটি ছিল : এই মানটি একটি ত্রুটি কোড ছিল। - কিন্তু এই পদ্ধতির একটি অসুবিধা ছিল. প্রতিটি (!) ফাংশন কলের পরে আপনাকে ফাংশন দ্বারা ফেরত কোড (নম্বর) পরীক্ষা করতে হবে। প্রথমত, এটি অসুবিধাজনক ছিল: ত্রুটি-হ্যান্ডলিং কোডটি খুব কমই কার্যকর করা হয়েছিল, তবে আপনাকে সর্বদা এটি লিখতে হয়েছিল। দ্বিতীয়ত, ফাংশনগুলি প্রায়শই বিভিন্ন মান ফিরিয়ে দেয় - তাদের সাথে কী করবেন? - হ্যাঁ। এটাই আমি জিজ্ঞাসা করতে যাচ্ছিলাম। - তারপরে একটি উজ্জ্বল ভবিষ্যত এসেছিল - ব্যতিক্রম এবং ত্রুটি-হ্যান্ডলিং উপস্থিত হয়েছিল। এখানে কিভাবে এটা কাজ করে:
  1. যখন একটি ত্রুটি ঘটে, জাভা ভার্চুয়াল মেশিন একটি বিশেষ বস্তু তৈরি করে - একটি ব্যতিক্রম - ত্রুটি সম্পর্কে সমস্ত তথ্য ধারণ করে। বিভিন্ন ত্রুটির জন্য বিভিন্ন ব্যতিক্রম আছে।
  2. তারপর এই ব্যতিক্রমটি প্রোগ্রামটিকে বর্তমান ফাংশনকে অবিলম্বে বাধা দিতে বাধ্য করে এবং পরবর্তী ফাংশন, যতক্ষণ না এটি মূল পদ্ধতি থেকে বেরিয়ে আসে। এর পরে প্রোগ্রামটি বন্ধ হয়ে যায়। জাভা ডেভেলপাররা এই প্রক্রিয়াটিকে "কল ব্যাক স্ট্যাক রোল" বলে।
- কিন্তু আপনি বলেছেন যে প্রোগ্রামটি নিশ্চিতভাবে প্রস্থান করা যাচ্ছে না। - এটা ঠিক, কারণ ব্যতিক্রম ধরার একটি উপায় আছে। যখনই এবং যেখানেই আপনার প্রয়োজন, আপনি এই ব্যতিক্রমগুলি ধরতে এবং গুরুত্বপূর্ণ কিছু করতে একটি বিশেষ কোড লিখতে পারেন। - এটি করার জন্য, একটি বিশেষ নির্মাণ চেষ্টা-ক্যাচ আছে . দেখুন কিভাবে এটি কাজ করে: পুরাতন স্তর 09 - 6- কেন «পদ্ধতি1 কল করার পরে। কখনই দেখানো হবে না» পর্দায় প্রদর্শিত হবে না? - আমি খুশি যে আপনি এটা সম্পর্কে জিজ্ঞাসা. 25 লাইনে, শূন্য দ্বারা একটি বিভাজন রয়েছে। এটি একটি ত্রুটির দিকে নিয়ে যায় - একটি ব্যতিক্রম৷ জাভা ভার্চুয়াল মেশিন ত্রুটির তথ্য সম্বলিত ArithmeticException অবজেক্ট তৈরি করেছে । এই বস্তুটি একটি ব্যতিক্রম। - পদ্ধতি মেথড1() এর ভিতরে একটি ব্যতিক্রম ঘটেছে ।এর ফলে পদ্ধতিটি অবিলম্বে বন্ধ হয়ে যায়। এটি মেথড মেইনটির সমাপ্তির দিকেও নেতৃত্ব দেবে , যদি কোন চেষ্টা-ক্যাচ ব্লক না থাকে । - চেষ্টা ব্লকের ভিতরে যদি ব্যতিক্রম ঘটে তবে এটি ক্যাচ ব্লকে ধরা হবে। ব্লক চেষ্টার বাকি কোডটি কার্যকর করা হবে না, ব্লক ক্যাচের সম্পাদন অবিলম্বে শুরু হবে। - আমি ঠিক বুঝতে পারছি না। - অন্য কথায়, এই কোডটি এইরকম কাজ করে:
  1. ট্রাই ব্লকের ভিতরে যদি ব্যতিক্রম ঘটে , তবে এই ব্লকের কোডটি আর কার্যকর করা হয় না, তবে ব্লক ক্যাচের সঞ্চালন শুরু হয়।
  2. যদি কোন ব্যতিক্রম ঘটে না, ট্রাই ব্লকটি শেষ পর্যন্ত কার্যকর করা হয় , এবং ক্যাচ কখনই কার্যকর করা হয় না
- আহেম! - কল্পনা করুন যে প্রতিটি মেথড কলের পরে আমরা পরীক্ষা করি যে মেথডটি নিজেই শেষ হয়ে গেছে নাকি ব্যতিক্রমের কারণে। যদি একটি ব্যতিক্রম ছিল, JVM ব্লক ক্যাচ কার্যকর করা শুরু করে যদি এটি উপলব্ধ থাকে এবং একটি ব্যতিক্রম ক্যাচ করে। যদি কোন ক্যাচ ব্লক না থাকে, JVM বর্তমান পদ্ধতিটি বন্ধ করে দেয়। তারপরে একই চেক পদ্ধতিতে শুরু হয় যাকে কারেন্ট মেথড বলা হয়। - এখন মনে হয় আমি পেয়েছি। - সেটা ঠিক আছে. - এবং ক্যাচ ব্লকের ভিতরে ব্যতিক্রম কি? - সমস্ত ব্যতিক্রম ক্লাস ব্যতিক্রম থেকে উত্তরাধিকারসূত্রে প্রাপ্ত ক্লাস। ক্যাচে এর শ্রেণী উল্লেখ করে আমরা তাদের যে কোনোটিকে ধরতে পারিএকটি সাধারণ অভিভাবক শ্রেণির ব্যতিক্রম উল্লেখ করে ব্লক, বা একযোগে তাদের সবগুলিকে। তারপর, ভেরিয়েবল e থেকে (এই ভেরিয়েবলটি একটি ব্যতিক্রম বস্তুর রেফারেন্স সংরক্ষণ করে) আপনি ত্রুটি সম্পর্কে সমস্ত প্রয়োজনীয় তথ্য পেতে পারেন। - দারুণ! এবং যদি আমার পদ্ধতিতে বিভিন্ন ব্যতিক্রম ঘটে তবে আমি কি তাদের বিভিন্ন উপায়ে পরিচালনা করতে পারি? - তোমাকে করতেই হবে. আপনি এটি এইভাবে করতে পারেন: পুরাতন স্তর 09 - 7- চেষ্টা ব্লকে একাধিক ক্যাচ ব্লক থাকতে পারে, যার প্রতিটি তার প্রকারের ব্যতিক্রমগুলি ধরবে। - উম্ফ ঠিক আছে, আমি এটা পেয়েছি. অবশ্যই, আমি নিজে এরকম কিছু লিখব না। যাইহোক, আমি এই ধরনের কোড পূরণ করলে আমি ভয় পাব না।

4 Elly, RuntimeException, থ্রোস

পুরাতন স্তর 09 - 8- আমি আজ অন্য বিষয় আনার সিদ্ধান্ত নিয়েছে. জাভাতে, সমস্ত ব্যতিক্রম দুটি প্রকারে বিভক্ত - নিয়ন্ত্রিত/চেক করা এবং অনিয়ন্ত্রিত/আনচেক করা । চেক করা ব্যতিক্রমগুলি অবশ্যই ধরা হবে, আনচেক করা ধরা যেতে পারে তবে এটির প্রয়োজন নেই- উদ্দেশ্যমূলকভাবে একটি কোডে ব্যতিক্রম নিক্ষেপ করা কি সম্ভব? - আপনার কোডে, আপনি নিজেই ব্যতিক্রম নিক্ষেপ করতে পারেন। আপনি এমনকি আপনার নিজের ব্যতিক্রম লিখতে পারেন. কিন্তু আমরা পরে এই গর্তে গভীর করব। এখন জাভা ভার্চুয়াল মেশিন দ্বারা নিক্ষিপ্ত ব্যতিক্রমগুলির সাথে কীভাবে কাজ করবেন তা শিখি। - ঠিক আছে. - ব্যতিক্রম থাকলে ClassNotFoundException এবং FileNotFoundExceptionএকটি পদ্ধতিতে নিক্ষিপ্ত (আবির্ভূত) হয়, প্রোগ্রামারকে একটি পদ্ধতির (পদ্ধতি শিরোনাম) স্বাক্ষরে সেগুলি নির্দিষ্ট করতে হবে। এই ধরনের ব্যতিক্রম চেক করা হয়. এটি সাধারণত এটির মতো দেখায়: পুরাতন স্তর 09 - 9- তাই, আমরা শুধু থ্রো লিখি এবং কমা দ্বারা বিভক্ত ব্যতিক্রমগুলি তালিকাভুক্ত করি। ঠিক? তাই নাকি? - হ্যাঁ. কিন্তু আরেকটি মজার বিষয় আছে। নীচের উদাহরণটি সংকলিত করার জন্য, মেথড 1() কে কল করার পদ্ধতিটিকে হয় এই ব্যতিক্রমগুলি ধরতে হবে বা সেগুলিকে এগিয়ে দিতে হবে। আপনি যদি চেক করা ব্যতিক্রমটি এগিয়ে দিতে চান তবে আপনাকে এটি পদ্ধতির শিরোনামে উল্লেখ করতে হবে । - আবারও, যদি মূল পদ্ধতিতে, আপনি এমন একটি পদ্ধতিকে কল করতে চান যার শিরোনাম বাক্যাংশে FileNotFoundException নিক্ষেপ করে , …তারপর আপনাকে এই দুটি জিনিসের মধ্যে একটি করতে হবে:
  1. ব্যতিক্রমগুলি ধরতে FileNotFoundException, …
    আপনাকে কোডটি মুড়ে দিতে হবে যেখানে আপনি একটি বিপজ্জনক পদ্ধতি কল করার চেষ্টা করুন-ক্যাচ ব্লক দিয়ে
  2. ব্যতিক্রম ধরতে হবে না FileNotFoundException, …
আপনার মেথড মেইন এর থ্রো লিস্টে আপনাকে এই ব্যতিক্রমগুলি যোগ করতে হবে । - আপনি আমাকে একটি উদাহরণ দেবেন? - এখানে দেখুন: - এই উদাহরণটি কম্পাইল করা হবে না, কারণ মেথড মেথড মেথড 1() কে কল করে, যা ব্যতিক্রমগুলি ছুড়ে দেয় যা অবশ্যই ধরা হবে। - উদাহরণটি কম্পাইল করার জন্য, আপনাকে মেথড মেইনটিতে ব্যতিক্রম হ্যান্ডলিং যোগ করতে হবে । আপনি এটি দুটি উপায়ে করতে পারেন: - এবং এখানে আমরা এটি ট্রাই-ক্যাচ ব্যবহার করে ধরি : - এটি আরও পরিষ্কার হচ্ছে, তবে খুব কম। - নীচের উদাহরণটি দেখুন: - এখনও একটি ব্যতিক্রম আছে - RuntimeException এবং এটি থেকে উত্তরাধিকারসূত্রে প্রাপ্ত ক্লাসগুলি।পুরাতন স্তর 09 - 10পুরাতন স্তর 09 - 11পুরাতন স্তর 09 - 12পুরাতন স্তর 09 - 13তাদের ধরা বা নিক্ষেপ করার প্রয়োজন নেই। এগুলি অচেক করা ব্যতিক্রম। এই ব্যতিক্রমগুলিকে ভবিষ্যদ্বাণী করা কঠিন বলে মনে করা হয়, তাই তাদের ঘটনার পূর্বাভাস দেওয়া প্রায় অসম্ভব। আপনি তাদের সাথে একই জিনিসগুলি করতে পারেন, তবে থ্রোতে সেগুলি নির্দিষ্ট করার দরকার নেই ৷

5 রিশা, কল স্ট্যাক রোলিং, ব্যতিক্রমগুলিতে এটি কীভাবে করবেন

- ব্যতিক্রমগুলি কীভাবে কাজ করে সে সম্পর্কে আমি আপনাকে আরও কিছু বলতে চাই। নীচের উদাহরণটি ব্যাখ্যা করে যে: পুরাতন স্তর 09 - 14- আমি এটি পাই না। - ঠিক আছে. আমি ব্যাখ্যা করব কি হচ্ছে. - বাম দিকের উদাহরণে, আমরা চেইন অর্ডারে বেশ কয়েকটি পদ্ধতিকে কল করি। মেথড 2() এ আমরা বিশেষভাবে একটি ব্যতিক্রম তৈরি করি এবং নিক্ষেপ করি (একটি ত্রুটি শুরু করতে)। - ডানদিকের উদাহরণটি দেখায় কি ঘটে। পদ্ধতি 2() দেখুন । এটিই একটি ব্যতিক্রম সৃষ্টিতে রূপান্তরিত হয়: আমরা RuntimeException টাইপের একটি অবজেক্ট তৈরি করি, এটিকে একটি বিশেষ পরিবর্তনশীল ব্যতিক্রমে সংরক্ষণ করি এবং অবিলম্বে পদ্ধতি থেকে প্রস্থান করি – রিটার্ন । - মেথড 1 এ, মেথড 2 কল করার পরে একটি চেক আছে,যদি একটি ব্যতিক্রম হয় বা না হয়; যদি একটি ব্যতিক্রম থাকে, তাহলে method1 অবিলম্বে বন্ধ হয়ে যায়। প্রতিটি (!) জাভা পদ্ধতিতে কল করার পরে এই চেকটি পরোক্ষভাবে করা হয়। - কি দারুন! - ঠিক। - মেথড মেইন -এর ডানদিকের কলামে আমি লিখেছিলাম ট্রাই-ক্যাচ ব্লক দ্বারা ব্যতিক্রম ধরা পড়লে কী হয় । যদি কোন ব্যতিক্রম না হয়, কোড পরিকল্পনা অনুযায়ী কার্যকর করা অব্যাহত থাকে। ক্যাচ- এ উল্লেখিত প্রকারের ব্যতিক্রম হলে আমরা তা পরিচালনা করি। - এবং নিক্ষেপ এবং instanceof মানে কি? - বাম দিকের শেষ লাইনটি দেখুন নতুন RuntimeException(গুলি). এইভাবে আমরা একটি ব্যতিক্রম তৈরি করি এবং নিক্ষেপ করি। এইটা শুধুমাত্র একটা উদাহরণ. আমরা এতদূর এটা করব না। - ডান ব্লকে « а instanceof B » কমান্ডটি ব্যবহার করে আমরা অবজেক্ট a- এ B টাইপ আছে কিনা তা পরীক্ষা করি । অর্থাৎ, পরিবর্তনশীল ব্যতিক্রমে সংরক্ষিত বস্তুর RuntimeException টাইপ আছে কিনা । এটি একটি যৌক্তিক অভিব্যক্তি। - ওয়েল, এটা একটু বিট পরিষ্কার হচ্ছে.

6 দিয়েগো, ব্যতিক্রম ধরা টাস্ক

- এখানে দেখুন! চাচা দিয়েগো আপনার জন্য ধরার জন্য কয়েকটি কাজ নিয়ে এসেছেন। তোমার জন্য সৌভাগ্যের কামনা. আমি মনে করি আপনি এটা প্রয়োজন হবে. হে. পুরাতন স্তর 09 - 15- আরে, আমিগো! এখানে কিছু আকর্ষণীয় ব্যতিক্রম ধরার কাজ আছে।
কাজ ধরা
1 1. সংখ্যার সাথে কাজ করার সময় ব্যতিক্রম
কোডটি চালানোর সময় যে ব্যতিক্রম ঘটে তা ধরুন:
int a = 42 / 0;
স্ক্রিনে ব্যতিক্রম প্রদর্শন করুন, এর ধরন উল্লেখ করুন
2 2. স্ট্রিং দিয়ে কাজ করার সময় ব্যতিক্রম
কোড চালানোর সময় যে ব্যতিক্রম ঘটে তা ধরুন:
স্ট্রিং s = নাল;
স্ট্রিং m = s.toLowerCase();
স্ক্রিনে ব্যতিক্রম প্রদর্শন করুন, এর ধরন উল্লেখ করুন।
3 3. অ্যারেগুলির সাথে কাজ করার সময় ব্যতিক্রম
কোডটি চালানোর সময় যে ব্যতিক্রমটি ঘটে তা ধরুন:
int[] m = new int[2];
m[8] = 5;
স্ক্রিনে ব্যতিক্রম প্রদর্শন করুন, এর ধরন উল্লেখ করুন।
4 4. তালিকা সংগ্রহের সাথে অপারেটিং করার সময়
ব্যতিক্রমটি ধরুন যা কোড চালানোর সময় ঘটে:
ArrayList<String> list = new ArrayList<String>();
স্ট্রিং s = list.get(18);
স্ক্রিনে ব্যতিক্রম প্রদর্শন করুন, এর ধরন উল্লেখ করুন।
5 5. মানচিত্র সংগ্রহের সাথে অপারেটিং করার সময় ব্যতিক্রমটি
ধরুন যা কোড চালানোর সময় ঘটে:
HashMap<String, String> map = new HashMap<String, String>(null);
map.put(নাল, নাল);
map.remove(null);
স্ক্রিনে ব্যতিক্রম প্রদর্শন করুন, এর ধরন উল্লেখ করুন।
- টিপ: প্রথমে একটি প্রোগ্রাম লিখুন, তারপর দেখুন কি ব্যতিক্রম ঘটে এবং তার পরে কোড পরিবর্তন করুন এবং সেই ব্যতিক্রমটি ধরুন।

7 রিশা, কিভাবে একাধিক ক্যাচ কাজ করে

পুরাতন স্তর 09 - 16- এখন, আরো কিছু আকর্ষণীয় বক্তৃতা. আমি শেখাতে খুব পছন্দ করি। - আমি আপনাকে বলতে চাই কিভাবে একটি একাধিক ক্যাচ কাজ করে। আসলে এটা খুবই সহজ: ব্লক চেষ্টায় একটি ব্যতিক্রম ঘটলে , প্রোগ্রাম এক্সিকিউশন প্রথম ক্যাচে স্থানান্তরিত হয় । - যদি ব্লক ক্যাচের বন্ধনীতে উল্লেখিত ধরনটি ব্যতিক্রম-অবজেক্টের প্রকারের মতই হয়, তাহলে কোড এক্সিকিউশন {} এর ভিতরে শুরু হয়। অন্যথায় আমরা পরবর্তী ক্যাচ যেতে . চেক সেখানে পুনরাবৃত্তি হয়. - যদি আর কোনো ক্যাচ ব্লক না থাকে , কিন্তু ব্যতিক্রম ধরা না পড়ে, তাহলে এটিকে সামনে ছুড়ে দেওয়া হয়, এবং বর্তমান পদ্ধতিটি বাধাগ্রস্ত হয়। - আমি দেখি. সেই ক্যাচটি কার্যকর করা হবে, যার ধরনটি ব্যতিক্রমের প্রকারের সাথে মেলে। - হ্যাঁ ঠিক. প্রকৃতপক্ষে, এটি একটু বেশি জটিল: মূল বিষয় হল ক্লাসগুলি একে অপরের থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হতে পারে। যদি "গরু" শ্রেণীটি "পশু" শ্রেণী থেকে উত্তরাধিকারসূত্রে প্রাপ্ত হয়, তবে "গরু" ধরণের বস্তুটি কেবল "গরু" টাইপের একটি পরিবর্তনশীল নয়, "পশু" টাইপের একটি পরিবর্তনশীলেও সংরক্ষণ করা যেতে পারে। . - তাতে কি? - যেহেতু সমস্ত ব্যতিক্রম ক্লাস Exception বা RuntimeException থেকে উত্তরাধিকারসূত্রে প্রাপ্ত (যা ব্যতিক্রম থেকেও উত্তরাধিকারসূত্রে প্রাপ্ত ), সেগুলিকে ক্যাচ (ব্যতিক্রম e) বা ক্যাচ (RuntimeException e) কমান্ড ব্যবহার করে ধরা যেতে পারে । - তাতে কি? - এই যে মানে,প্রথমত, আপনি catch(Exception e) কমান্ড ব্যবহার করে যেকোনো ব্যতিক্রম ধরতে পারেনদ্বিতীয়ত, ক্যাচ ব্লকের ক্রম গুরুত্বপূর্ণ। উদাহরণ: - 0 দ্বারা বিভাজনের ফলে পাটিগণিত ব্যতিক্রম দ্বিতীয় ক্যাচে ধরা পড়ে। পুরাতন স্তর 09 - 17- নীচের উদাহরণে, ArithmeticException প্রথম ক্যাচে ধরা পড়েছে , কারণ সমস্ত ব্যতিক্রমের ক্লাস ব্যতিক্রম থেকে উত্তরাধিকারসূত্রে প্রাপ্ত। সুতরাং, ব্যতিক্রম কোন ব্যতিক্রম ক্যাচ . পুরাতন স্তর 09 - 18- নীচের উদাহরণে, ব্যতিক্রম ArithmeticException ধরা হয় না, কিন্তু কলিং পদ্ধতিতে এগিয়ে দেওয়া হয়। পুরাতন স্তর 09 - 19- ওয়েল, এটা এখন পরিষ্কার হচ্ছে. এই ব্যতিক্রমগুলি এত সহজ নয়। - এটা শুধু তাই মনে হয়. আসলে, এটি জাভাতে সবচেয়ে সহজ জিনিসগুলির মধ্যে একটি। - এটা নিয়ে সন্তুষ্ট বা বিচলিত হবো কিনা তা নিয়ে আমার সন্দেহ আছে...

8 দিয়েগো, একাধিক ব্যতিক্রম ক্যাচ টাস্ক

- আরে, আমিগো! গতকাল আমি মাতাল হয়েছি এবং আপনার কাজগুলিকে অতিরিক্ত জটিল করে তুলেছি, কিন্তু আমি আশা করি আপনার পক্ষ থেকে কোন কঠিন অনুভূতি নেই এবং আপনি তাদের সব সমাধান করবেন? এটা আপনার নিজের ভালোর জন্য। এখানে:
কাজ
1 1. ব্যতিক্রমগুলি
এমন একটি পদ্ধতি রয়েছে যা ব্যতিক্রম থেকে উত্তরাধিকারসূত্রে প্রাপ্ত দুটি ব্যতিক্রম ছুঁড়ে দেয় , এবং অন্য দুটিটি RuntimeException থেকে উত্তরাধিকারসূত্রে পাওয়া যায় : NullPointerException , ArithmeticException , FileNotFoundException এবং URISyntaxExceptionআপনাকে NullPointerException এবং FileNotFoundException

ধরতে হবে , কিন্তু ArithmeticException এবং URISyntaxException ধরতে হবে না । এটা কিভাবে করতে হবে?
2 2. ক্যাচিং এক্সেপশন
থেকে ক্রমানুসারে পাওয়া তিনটি ব্যতিক্রম রয়েছে : ক্লাস এক্সেপশন1 এক্সেপশন ক্লাস এক্সটেন্ড করে এক্সেপশন 2 এক্সেপশন1 ক্লাস এক্সেপশন3 এক্সটেন্ড করে এক্সেপশন2 একটি পদ্ধতি আছে, যা নিম্নরূপ বর্ণনা করা হয়েছে: পাবলিক স্ট্যাটিক ভ্যাইড মেথড1() এক্সেপশন1, এক্সেপশন2, এক্সেপশন3 থ্রো করে একটি ক্যাচ লিখুন Exception1 , Exception2 এবং Exception3 তিনটিই ধরার জন্য ব্লক করুন






3 3. নির্বাচনী ব্যতিক্রমগুলি ধরা 1. BEAN.methodThrowExceptions
পদ্ধতি দ্বারা কোন ব্যতিক্রমগুলি নিক্ষেপ করা হয়েছে তা খুঁজে বের করুন ৷ 2. পদ্ধতি processExceptions() কে BEAN.methodThrowExceptions পদ্ধতি কল করা উচিত এবং ব্যতিক্রমগুলি পরিচালনা করা উচিত: 2.1। যদি একটি ব্যতিক্রম FileSystemException দেখা যায়, তাহলে BEAN.log মেথড কল করে লগ করুন এবং থ্রো ফরওয়ার্ড 2.2। যদি একটি ব্যতিক্রম CharConversionException বা অন্য কোনো IOException ঘটে থাকে, তবে BEAN.log 3 পদ্ধতিতে কল করে এটি লগ করুন। আপনি 2.1-এ যে ব্যতিক্রমটি ফরোয়ার্ড করছেন তার ক্লাস/টাইপ যোগ করুন। প্রক্রিয়া ব্যতিক্রমসমূহ ()



পদ্ধতি স্বাক্ষর।
4. মেথড main()-এ অবশিষ্ট ব্যতিক্রমটি পরিচালনা করুন এবং লগ করুন। চেষ্টা করুন..ক্যাচ টিপ ব্যবহার করুন

: আপনি যদি MyException
ব্যতিক্রমটি ধরে থাকেন , যা আপনি ধরতে চান না, আপনি নিম্নলিখিত কোডটি ব্যবহার করে এটিকে এগিয়ে দিতে পারেন: catch (MyException e) { throw e; }



4 4. চেক করা ব্যতিক্রমগুলি ধরা হচ্ছে
পদ্ধতি প্রক্রিয়ায় সমস্ত চেক করা ব্যতিক্রমগুলি পরিচালনা করুনExceptions ()
প্রতিটি চেক করা ব্যতিক্রম ঘটেছে যা আপনাকে স্ক্রিনে প্রদর্শন করতে হবে।
আপনি শুধুমাত্র একটি ব্লক চেষ্টা ব্যবহার করতে পারেন .
5 5. অচেক করা ব্যতিক্রমগুলি ধরা হচ্ছে
পদ্ধতি প্রক্রিয়ার সমস্ত অচেক করা ব্যতিক্রমগুলি পরিচালনা করুনExceptions ()আপনাকে প্রিন্টস্ট্যাক()
পদ্ধতি ব্যবহার করে প্রতিটি ঘটে যাওয়া ব্যতিক্রমের একটি স্ট্যাক ট্রেস স্ক্রিনে প্রদর্শন করতে হবে । আপনি শুধুমাত্র একটি ব্লক চেষ্টা ব্যবহার করতে পারেন .

9 অধ্যাপক, ব্যতিক্রমের উপর বক্তৃতা

- আজ আমরা একটি সুপার-আকর্ষণীয় বিষয় আছে - ব্যতিক্রম. সেই সময়ে, যখন তরুণ বিজ্ঞানী এবং প্রোগ্রামাররা এই বিষয়টি নিয়ে গভীরভাবে উত্তেজিত ছিলেন... - দুঃখিত, আমাকে অবশ্যই ল্যাবে যেতে হবে। এখানে বক্তৃতা নোট আছে. আমি মনে করি আপনি নিজেই এটি বের করবেন। এখানে: জাভা ব্যতিক্রম (ওরাকল ডকুমেন্টেশন) জাভাতে ব্যতিক্রম হ্যান্ডলিং (জাভা টি পয়েন্ট) জাভা - ব্যতিক্রম হ্যান্ডলিং (টিউটোরিয়াল পয়েন্ট) বেসিক জাভা ব্যতিক্রম হ্যান্ডলিং

10 জুলিও

- আমিগো, আজকের পাঠ সম্পর্কে আপনার কি মনে হয়? আপনার পজিট্রন মস্তিষ্ক এখনও কাজ করেনি? ডিয়েগোর কাজগুলোই যে কাউকে পরাজিত করার জন্য যথেষ্ট। আসুন একটি বিয়ার মুহূর্ত আছে এবং বিশ্রাম. আপনি এখনও দাঁড়িয়ে আছেন?

11 ক্যাপ্টেন কাঠবিড়ালি

- হ্যালো, সৈনিক! - সুপ্রভাত স্যার! - তোমার জন্য আমার কাছে কিছু ভালো খবর আছে। আপনার দক্ষতা জোরদার করার জন্য এখানে একটি দ্রুত পরীক্ষা। প্রতিদিন এটি করুন, এবং আপনি আপনার দক্ষতা দ্রুত বৃদ্ধি করবেন। কাজগুলি বিশেষভাবে ইন্টেলিজ আইডিইএ-তে করার জন্য ডিজাইন করা হয়েছে।
Intellij Idea-এ অতিরিক্ত কাজ করতে হবে
1 1. শূন্য দ্বারা বিভাজন
একটি পদ্ধতি তৈরি করুন সর্বজনীন স্ট্যাটিক অকার্যকর divisionByZero() , যেখানে আপনাকে যেকোনো সংখ্যাকে শূন্য দিয়ে ভাগ করতে হবে এবং বিভাজনের ফলাফল স্ক্রিনে প্রদর্শন করতে হবে। divisionByZero() মেথড কলটি ট্রাই
করে র‍্যাপ করুন..ক্যাচ করুন । exception.printStackTrace() পদ্ধতি ব্যবহার করে ব্যতিক্রম স্ট্যাক ট্রেস পর্দায় প্রদর্শন করুন ।
2 2. 10 থেকে 0 পর্যন্ত কাউন্টডাউন
10 থেকে 0 পর্যন্ত কাউন্টডাউন করতে একটি লুপ লিখুন। বিলম্ব করতে Thread.sleep(100) ব্যবহার করুন; ঘুমের কলটি একটি চেষ্টা
করে মোড়ানো..ধরুন ।
3 3. একটি পদ্ধতিতে মোড়ানো চেষ্টা করুন..কীবোর্ড
থেকে সংখ্যা পড়ুন। একটি পৃথক পদ্ধতি readData() কীবোর্ড থেকে সংখ্যা পড়ার জন্য একটি কোড লিখুন । এই পদ্ধতির পুরো অংশটি ( readData()
পদ্ধতির ভিতরের পুরো কোডটি , যেখানে সংখ্যাগুলি সংরক্ষণ করা হবে সেই তালিকার ঘোষণা ব্যতীত) একটি চেষ্টা করুন..catch . যদি ব্যবহারকারী একটি সংখ্যা প্রবেশের পরিবর্তে কিছু পাঠ্য প্রবেশ করে, তবে পদ্ধতিটি ব্যতিক্রমটি ধরতে হবে এবং আগে প্রবেশ করা সমস্ত নম্বর স্ক্রীনে প্রদর্শন করতে হবে। স্ক্রিনে সংখ্যা প্রদর্শন করুন। প্রতিটি সংখ্যা একটি নতুন লাইনে থাকা উচিত। সংখ্যার ক্রম ঠিক যেমন ইনপুটে ছিল তেমন হওয়া উচিত।


4 4. তারিখ রূপান্তরকারী
কীবোর্ড থেকে "08/18/2013" বিন্যাসে একটি তারিখ পড়ুন
"AUG 18, 2013" আকারে সেই তারিখটি স্ক্রিনে প্রদর্শন করুন৷
অবজেক্ট তারিখ এবং SimpleDateFormat ব্যবহার করুন ।
5 5. স্বর এবং ব্যঞ্জনবর্ণ
একটি প্রোগ্রাম লিখুন যা কীবোর্ড থেকে লাইন পড়ে।
প্রোগ্রামটি স্ক্রিনে দুটি স্ট্রিং প্রদর্শন করবে:
1) প্রথম স্ট্রিংটিতে স্বরবর্ণ থাকা উচিত
2) দ্বিতীয় স্ট্রিংটিতে প্রবেশ করা পাঠ্য থেকে ব্যঞ্জনবর্ণ এবং বিরাম চিহ্ন থাকা উচিত।
স্পেস দ্বারা পৃথক অক্ষর.

উদাহরণ ইনপুট:
স্টপ লুক লিসেন
উদাহরণ আউটপুট:
oooie
stplklstn
6 6. লিটল রেড রাইডিং হুডের গল্প
1. পাঁচটি শ্রেণী রয়েছে: রেড রাইডিং হুড, দাদী, প্যাটি, কাঠ কাটার, নেকড়ে। 2. প্রতিটি ক্লাসে ArrayList
টাইপের দুটি ক্ষেত্র রয়েছে : মেল এবং ate। 3. প্রয়োজনীয় বস্তু ইতিমধ্যে তৈরি করা হয়েছে (হুড, ঠাকুরমা, ...)। 4. "লিটল রেড রাইডিং হুড" এর যুক্তি পেতে সঠিক সম্পর্ক তৈরি করুন (কে খেয়েছে এবং কাকে মেরেছে)।

7 7. মুভ স্ট্যাটিক পরিবর্তন করুন
স্ট্যাটিক মডিফায়ারগুলি সরান যাতে কোড কম্পাইল হয়।
8 8. সংখ্যার অ্যারেগুলির তালিকা
একটি তালিকা তৈরি করুন যার উপাদানগুলি সংখ্যার অ্যারে। তালিকায় যথাক্রমে 5, 2, 4, 7, 0 দৈর্ঘ্য সহ পাঁচটি অবজেক্ট অ্যারে যোগ করুন। যেকোনো ডেটা দিয়ে অ্যারে পূরণ করুন এবং স্ক্রিনে প্রদর্শন করুন।
9 9. দশটি বিড়াল একটি ক্ষেত্র স্ট্রিং নাম
দিয়ে একটি ক্লাস বিড়াল তৈরি করুন । একটি অভিধান মানচিত্র তৈরি করুন<String, Cat> , মডেল «Name» - «Cat» এ 10টি বিড়াল যোগ করুন। ম্যাপ থেকে নামের একটি সেট পান এবং সেটটি স্ক্রিনে প্রদর্শন করুন।

- ঐ কাজগুলো ছিল সবুজের জন্য। আমি উচ্চতর জটিলতার বোনাস টাস্ক যোগ করেছি। শুধুমাত্র শীর্ষ বন্দুক জন্য.
বোনাস কাজ
1 1. প্রোগ্রাম কম্পাইল এবং রান না. ঠিক কর.
টাস্ক: প্রোগ্রামটিকে কীবোর্ড থেকে দুটি ফাইলের নাম পড়তে হবে এবং প্রথম ফাইলটিকে দ্বিতীয় নাম দ্বারা নির্দিষ্ট স্থানে অনুলিপি করতে হবে।
2 2. প্রোগ্রামে নতুন কার্যকারিতা যোগ করুন।
পুরানো কাজ: প্রোগ্রামটি কীবোর্ড থেকে দুটি ফাইলের নাম পড়তে হবে এবং প্রথম ফাইলটিকে দ্বিতীয় নাম দ্বারা নির্দিষ্ট স্থানে অনুলিপি করতে হবে।
নতুন কাজ: প্রোগ্রামটি কীবোর্ড থেকে দুটি ফাইলের নাম পড়তে হবে এবং দ্বিতীয় নাম দ্বারা নির্দিষ্ট অবস্থানে প্রথম ফাইলটি অনুলিপি করতে হবে।

যদি নির্দিষ্ট নামের সাথে ফাইলটি (যেটি অনুলিপি করা হচ্ছে) বিদ্যমান না থাকে, তাহলে প্রোগ্রামটি পর্দায় "ফাইল বিদ্যমান নেই" বার্তাটি প্রদর্শন করবে এবং পড়ার আগে কনসোল থেকে ফাইলের নামটি আবার পড়ার চেষ্টা করবে। দ্বিতীয় (গন্তব্য) ফাইলের নাম।
3 3. অ্যালগরিদম শেখা এবং অনুশীলন করা।
কীবোর্ড থেকে শব্দ এবং সংখ্যার তালিকা পড়ুন। স্ক্রীনে শব্দগুলিকে ঊর্ধ্বক্রমে এবং সংখ্যাগুলিকে অবরোহ ক্রমে প্রদর্শন করুন৷

উদাহরণ ইনপুট:
চেরি
1
বিন
3
আপেল
2
0
তরমুজ

উদাহরণ আউটপুট:
আপেল
3
বিন
2
চেরি
1
0
তরমুজ
মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION