উত্তর:
বনভ. তবে ফাইলের জন্য কেবলমাত্র একটি জনসাধারণের শীর্ষ-স্তরের শ্রেণি .java
থাকতে পারে এবং সর্বজনীন শীর্ষ স্তরের শ্রেণীর অবশ্যই উত্স ফাইলের মতো একই নাম থাকতে হবে।
একটি উত্স ফাইলে একাধিক ক্লাস অন্তর্ভুক্ত করার উদ্দেশ্য হ'ল মূল পাবলিক ক্লাসের সাথে সম্পর্কিত সমর্থন কার্যকারিতা (অভ্যন্তরীণ ডেটা স্ট্রাকচার, সমর্থন ক্লাস, ইত্যাদি) বান্ডিল করা। মনে রাখবেন যে এটি না করা সর্বদা ঠিক আছে - কেবলমাত্র আপনার কোডের পঠনযোগ্যতার (বা না) প্রভাব রয়েছে।
java.awt.LightweightDispatcher
?
আপনি যদি কোনও সার্বজনীন শ্রেণি প্রয়োগ করতে চান তবে আপনাকে অবশ্যই এই শ্রেণীর মতো একই নামের কোনও ফাইলে এটি প্রয়োগ করতে হবে। একটি একক ফাইলে একটি জনসাধারণ এবং allyচ্ছিকভাবে কিছু ব্যক্তিগত ক্লাস থাকতে পারে। ক্লাসগুলি কেবলমাত্র সরকারী শ্রেণীর দ্বারা অভ্যন্তরীণভাবে ব্যবহার করা হলে এটি কার্যকর। অতিরিক্ত হিসাবে পাবলিক ক্লাসে অভ্যন্তরীণ ক্লাসগুলিও থাকতে পারে।
যদিও একটি একক উত্স ফাইলে এক বা একাধিক প্রাইভেট ক্লাস রাখা ভাল, তবে আমি এটির পরিবর্তে অভ্যন্তরীণ এবং বেনাম শ্রেণি ব্যবহার করার জন্য আরও পাঠযোগ্য। উদাহরণস্বরূপ, কোনও জনসাধারণের বর্গের মধ্যে তুলনামূলক শ্রেণি সংজ্ঞায়িত করতে বেনাম শ্রেণি ব্যবহার করতে পারেন:
public static Comparator MyComparator = new Comparator() {
public int compare(Object obj, Object anotherObj) {
}
};
তুলনামূলক শ্রেণীর সর্বজনীন হওয়ার জন্য সাধারণত পৃথক ফাইলের প্রয়োজন হয়। এই উপায়টি এটি ব্যবহার করে এমন শ্রেণীর সাথে বান্ডিল হয়।
এ। জাভা ফাইলকে সংকলন ইউনিট বলে। প্রতিটি সংকলন ইউনিটে শীর্ষ স্তরের ক্লাস এবং ইন্টারফেসের সংখ্যক সংখ্যক উপাদান থাকতে পারে। যদি কোনও সর্বজনীন শীর্ষ-স্তরের প্রকার না থাকে তবে সংকলনের ইউনিটটির নাম দেওয়া যেতে পারে।
//Multiple.java
//preceding package and import statements
class MyClass{...}
interface Service{...}
...
//No public classes or interfaces
...
সংকলন ইউনিটে কেবলমাত্র একটি পাবলিক ক্লাস / ইন্টারফেস থাকতে পারে। এই জনসাধারণের শীর্ষ-স্তরের প্রকারের মতো ঘনকটির অবশ্যই নামকরণ করা উচিত।
//Test.java
//named exactly as the public class Test
public class Test{...}
//!public class Operations{...}
interface Selector{...}
...
//Other non-public classes/interfaces
মূল পদ্ধতি সম্পর্কে গুরুত্বপূর্ণ বিষয় - অংশ 1
(অংশ 2 এর আওতায় শ্রেণীর সংখ্যা এবং তাদের অ্যাক্সেসের স্তর সম্পর্কিত পয়েন্ট)
বেনামে অভ্যন্তর শ্রেণীর পাশাপাশি, অন্য ব্যবহার হ'ল ব্যক্তিগত অভ্যন্তর শ্রেণি যা একটি পাবলিক ইন্টারফেস প্রয়োগ করে ( এই নিবন্ধটি দেখুন )। বাইরের শ্রেণি অভ্যন্তর শ্রেণীর সমস্ত ব্যক্তিগত ক্ষেত্র এবং পদ্ধতি অ্যাক্সেস করতে পারে।
এটি আপনাকে দুটি বাস্তবায়ন প্রকাশ না করে যেমন একটি মডেল এবং এর দৃশ্যের মতো দুটি দৃ tight়-সংযুক্ত ক্লাস তৈরি করতে দেয়। আর একটি উদাহরণ সংগ্রহ এবং এর পুনরাবৃত্তকারী।
সাধারণভাবে, ফাইলের জন্য একটি শ্রেণি থাকতে হবে। আপনি যদি সেভাবে জিনিসগুলি সংগঠিত করেন, তারপরে আপনি যখন কোনও শ্রেণীর জন্য অনুসন্ধান করেন, আপনি জানেন যে কেবলমাত্র সেই নামটি দিয়ে আপনার ফাইলটি অনুসন্ধান করা দরকার।
ব্যতিক্রমটি যখন এক বা একাধিক ছোট সহায়ক ক্লাস ব্যবহার করে কোনও শ্রেণি সর্বোত্তমভাবে প্রয়োগ করা হয়। সাধারণত, এই শ্রেণিগুলি একই ফাইলে উপস্থিত থাকলে কোডটি অনুসরণ করা সবচেয়ে সহজ eas উদাহরণস্বরূপ, পদ্ধতি কলগুলির মধ্যে কিছু ডেটা পাস করার জন্য আপনার একটি ছোট 'টিপল' র্যাপার ক্লাসের প্রয়োজন হতে পারে। অন্য উদাহরণ হ'ল 'টাস্ক' ক্লাসগুলি রান্নেবল বা কলযোগ্য প্রয়োগ করে। এগুলি এত ছোট হতে পারে যে তারা সর্বোত্তমভাবে অভিভাবক শ্রেণীর সাথে মিলিত হয় তাদের তৈরি এবং কল করে।
হ্যা 200% ,
উদাহরণ:
class A {
void methodDeclaration() { System.out.println("!!!"); }
}
class B {
public static void main(String[] args) {
new A().methodDeclaration();
}
}
হ্যাঁ এটি পারে, তবে যে কোনও প্যাকেজের ভিতরে কেবল ১ টি পাবলিক ক্লাস থাকতে পারে কারণ জাভা সংকলকটি। ক্লাস ফাইলটি তৈরি করে যা সর্বজনীন শ্রেণির নাম হিসাবে একই নামে থাকে তাই যদি তাদের 1 টিরও বেশি পাবলিক বর্গ হয় তবে এটির জন্য নির্বাচন করা কঠিন হবে সংকলক যে ক্লাস ফাইলের নাম হওয়া উচিত।
পরিবর্তিত হয় ... এরকম একটি উদাহরণ একটি বেনাম শ্রেণি হবে (ইভেন্ট শ্রোতাদের এবং এরকম ব্যবহার করার সময় আপনি সেই সমস্তগুলির মুখোমুখি হবেন)।
আমি মনে করি এটি "জাভা ফাইলের জন্য কেবলমাত্র কোনও নন-স্ট্যাটিক শীর্ষ স্তরের পাবলিক ক্লাস থাকতে পারে" হওয়া উচিত। তাই না?
আপনি যদি কোনও সিঙ্গেলটন প্রয়োগ করতে চান, এটি এমন একটি ক্লাস যা আপনার প্রোগ্রামে প্রয়োগের পুরো সঞ্চালনের সময় স্মৃতিতে কেবল একটি উদাহরণ দিয়ে চলে, তবে সিঙ্গলটন বাস্তবায়নের একটি উপায় হল একটি পাবলিক ক্লাসের ভিতরে একটি প্রাইভেট স্ট্যাটিক ক্লাস বাসা বাঁধাই to । তারপরে অভ্যন্তরীণ ব্যক্তিগত শ্রেণিটি কেবল তখনই তাত্ক্ষণিক হয় যখন ব্যক্তিগত দৃষ্টান্তটি অ্যাক্সেস করার জন্য এর সরকারী পদ্ধতিটি ডাকা হয়।
এই উইকি নিবন্ধটি দেখুন,
https://en.wikipedia.org/wiki/Singleton_pattern
ধারণাটি চিবিয়ে নিতে কিছুটা সময় নেয়।
একটি জাভা ফাইলে, কেবলমাত্র একটি জনসাধারণের শীর্ষ স্তরের শ্রেণি থাকতে পারে যার নাম ফাইলের সমান, তবে বেশ কয়েকটি পাবলিক অভ্যন্তরীণ শ্রেণি থাকতে পারে যা প্রত্যেকের কাছে রফতানি করা যায় এবং বহিরাগত শ্রেণীর ক্ষেত্র / পদ্ধতিগুলি অ্যাক্সেস করতে পারে, উদাহরণস্বরূপ : সতর্কতা ডায়ালগ.বিল্ডার ('পাবলিক স্ট্যাটিক' দ্বারা সংশোধিত ) সতর্কতা ডায়ালগে ('পাবলিক' দ্বারা সংশোধিত)
হ্যাঁ আপনি এক। জাভা ফাইলে একাধিক ক্লাস করতে পারেন। তবে আপনি তাদের একটিকে সর্বজনীন করে তুলেছেন। এবং পাবলিক ক্লাসের নাম হিসাবে একই নাম দিয়ে জাভা ফাইল সংরক্ষণ করুন। আপনি যখন জাভা ফাইলটি সংকলন করবেন তখন আপনি জাভা ফাইলে সংজ্ঞায়িত প্রতিটি শ্রেণীর জন্য পৃথক। ক্লাস ফাইল পাবেন।
এটি ছাড়াও একটি। জাভা ফাইলে একাধিক শ্রেণি নির্ধারণের জন্য অনেকগুলি পদ্ধতি রয়েছে।
হ্যাঁ। জাভা ফাইলের মধ্যে আপনার একাধিক শ্রেণি থাকতে পারে। তাদের মধ্যে বেশিরভাগেরই প্রকাশ্য হতে পারে। অন্যগুলি প্যাকেজ-প্রাইভেট। তারা ব্যক্তিগত বা সুরক্ষিত হতে পারে না। যদি কেউ সর্বজনীন হয় তবে ফাইলটির অবশ্যই সেই শ্রেণীর নাম থাকতে হবে। অন্যথায় তার ফাইল হিসাবে আর কোনও ফাইল দেওয়া যাবে না।
একটি ফাইলে অনেক ক্লাস থাকা মানে সেই ক্লাসগুলি একই প্যাকেজে রয়েছে। সুতরাং যে প্যাকেজের ভিতরে কিন্তু অন্য কোনও ক্লাস সেই ফাইলের মধ্যে নেই সেগুলিও এই ক্লাসগুলি ব্যবহার করতে পারে। তদুপরি, যখন প্যাকেজটি আমদানি করা হয়, আমদানি শ্রেণি তাদের পাশাপাশি ব্যবহার করতে পারে।
আরও তদন্তের জন্য, আপনি আমার ব্লগ পোস্টটি এখানে দেখতে পারেন ।
এখানে কেবলমাত্র এক জনসাধারণের শীর্ষ স্তর থাকতে পারেএকটি ফাইলে শ্রেণি । সেই সর্বজনীন শ্রেণীর শ্রেণির নামটি ফাইলের নাম হওয়া উচিত। এটিতে অনেকগুলি সরকারী অভ্যন্তর শ্রেণি থাকতে পারে।
আপনার একক ফাইলে অনেক ক্লাস থাকতে পারে। একটি ফাইলে শ্রেণীর দৃশ্যমানতার বিভিন্ন স্তরের সীমাগুলি নিম্নরূপ:
শীর্ষ স্তরের শ্রেণি:
1 টি পাবলিক ক্লাস
0 বেসরকারী
/ সুরক্ষিত শ্রেণীর যে কোনও সংখ্যক ব্যক্তিগত ক্লাস
অভ্যন্তরীণ ক্লাস:
যে কোনও দৃশ্যমানতার সাথে অভ্যন্তরীণ শ্রেণীর সংখ্যা (ডিফল্ট, ব্যক্তিগত, সুরক্ষিত, সর্বজনীন)
আমি ভুল হলে আমাকে সংশোধন করুন।
বনভ. তবে জাভা ফাইলের জন্য শুধুমাত্র একটি পাবলিক ক্লাস থাকতে পারে, কেননা পাবলিক ক্লাসগুলির উত্স ফাইলের মতো একই নাম থাকতে হবে।