আমি জাভাতে প্রোগ্রাম লিখতে শুরু করছি। নিম্নলিখিত জাভা কোডটির অর্থ কী?
public static void main(String[] args)
কী
String[] args
?আপনি এই কখন ব্যবহার করবেন
args
?
উত্স কোড এবং / অথবা উদাহরণগুলি বিমূর্ত ব্যাখ্যাগুলির চেয়ে বেশি পছন্দ করা হয়
আমি জাভাতে প্রোগ্রাম লিখতে শুরু করছি। নিম্নলিখিত জাভা কোডটির অর্থ কী?
public static void main(String[] args)
কী String[] args
?
আপনি এই কখন ব্যবহার করবেন args
?
উত্স কোড এবং / অথবা উদাহরণগুলি বিমূর্ত ব্যাখ্যাগুলির চেয়ে বেশি পছন্দ করা হয়
উত্তর:
জাভাতে অবজেক্টের অ্যারে হিসাবে args
সরবরাহিত কমান্ড-লাইন যুক্তি রয়েছে containsString
অন্য কথায়, আপনি যদি নিজের প্রোগ্রামটি চালান java MyProgram one two
তবে args
তা ধারণ করবে ["one", "two"]
।
আপনি যদি সামগ্রীর সামগ্রীগুলি আউটপুট করতে চেয়েছিলেন তবে আপনি args
কেবল তাদের মাধ্যমে লুপ করতে পারেন ...
public class ArgumentExample {
public static void main(String[] args) {
for(int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
args
ওএস নির্বিশেষে স্থান দ্বারা পৃথকীকরণের নিশ্চয়তা কি ?
-version
উদাহরণস্বরূপ, এটা java -version
এবং java.exe -version
, কিন্তু না java.exe /version
(প্রচেষ্টা প্রধান বর্গ লোড করতে .version
)। কেউ যদি এ নিয়ে হোঁচট খায় তবে কেবল আমার 2 সেন্ট।
সেগুলি জাভায় কমান্ড-লাইন আর্গুমেন্টের জন্য।
অন্য কথায়, যদি আপনি চালান
জাভা মাইপ্রোগ্রাম এক
তারপরে args
রয়েছে:
[ "এক দুই" ]
public static void main(String [] args) {
String one = args[0]; //=="one"
String two = args[1]; //=="two"
}
এর কারণটি হ'ল আপনার অ্যাপ্লিকেশনটিকে কোনও নির্দিষ্ট উপায়ে চালানোর জন্য কনফিগার করা বা এটি প্রয়োজনীয় কিছু তথ্য সরবরাহ করা।
আপনি যদি জাভাতে নতুন হন, আমি অফিশিয়াল ওরাকলের জাভা টিএম টিউটোরিয়ালগুলির মাধ্যমে পড়ার পরামর্শ দিচ্ছি ।
args
অনুরোধের পরে জাভা প্রোগ্রামে পাঠানো কমান্ড-লাইন যুক্তি রয়েছে। উদাহরণস্বরূপ, যদি আমি প্রোগ্রামটির মতো অনুরোধ করি:
$ java MyProg -f file.txt
তারপরে args
স্ট্রিং "-f"
এবং সমন্বিত একটি অ্যারে থাকবে "file.txt"
।
javac MyProg.java
চালানোর চেয়ে আমাকে আগে আমার কোডটি সংকলন করতে হয়েছিল java MyProg -f file.txt
। এর কোনও কারণ আছে, কারণ উত্তরের কোথাও এর উল্লেখ নেই?
নিম্নলিখিত উত্তরটি আমার বোধগম্যতা এবং কিছু পরীক্ষার উপর ভিত্তি করে।
স্ট্রিং [] আরগস কী?
উত্তর->
স্ট্রিং [] -> আমরা জানি যে এটি একটি সাধারণ স্ট্রিং অ্যারে।
আরগস -> একটি অ্যারের নাম এটি কোনও কিছু হতে পারে (যেমন, এ, আর, আর্গুমেন্ট, প্যারাম, প্যারামিটার) সংকলক এবং সম্পাদিত এবং আমি পরীক্ষা করেও কোনও সমস্যা নেই।
উদাহরণস্বরূপ
1) পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং [] যুক্তি)
2) পাবলিক স্ট্যাটিক অকার্যকর প্রধান (স্ট্রিং [] প্যারামিটার)
আপনি কখন এই আরগ ব্যবহার করবেন?
Ans->
মূল ফাংশনটি বিকাশকারীরা খুব বুদ্ধিমানভাবে ডিজাইন করেছেন। আসল চিন্তাভাবনা খুব গভীর। যা মূলত কমান্ড লাইন আর্গুমেন্টের ভিত্তিতে সিএন্ড সি ++ এর বিবেচনায় বিকাশিত তবে আজকাল কেউ এটিকে বেশি ব্যবহার করে না।
বিষয় 1- ব্যবহারকারী কমান্ড লাইন থেকে যে কোনও ধরণের ডেটা প্রবেশ করতে পারে নম্বর বা স্ট্রিং হতে পারে এবং সংকলক দ্বারা এটি গ্রহণ করার জন্য আমাদের কোন ডেটাটাইপ ব্যবহার করা উচিত? জিনিসটি দেখুন 2
থিং 2 - স্ট্রিং হ'ল ডেটাটাইপ যা জাভাতে ইনট, লং, ফ্লোট, ডাবল, বাইট, শট, চরের মতো আদিম ডেটাটাইপগুলিকে সমর্থন করে। আপনি যেকোন আদিম ডেটাটাইপে এটি সহজেই পার্স করতে পারেন।
উদাহরণস্বরূপ নিম্নলিখিত প্রোগ্রামটি সংকলিত এবং সম্পাদিত হয়েছে এবং আমি পরীক্ষাও করেছি।
যদি ইনপুট হয় -> 1 1
// one class needs to have a main() method
public class HelloWorld
{
// arguments are passed using the text field below this editor
public static void main(String[] parameter)
{
System.out.println(parameter[0] + parameter[1]); // Output is 11
//Comment out below code in case of String
System.out.println(Integer.parseInt(parameter[0]) + Integer.parseInt(parameter[1])); //Output is 2
System.out.println(Float.parseFloat(parameter[0]) + Float.parseFloat(parameter[1])); //Output is 2.0
System.out.println(Long.parseLong(parameter[0]) + Long.parseLong(parameter[1])); //Output is 2
System.out.println(Double.parseDouble(parameter[0]) + Double.parseDouble(parameter[1])); //Output is 2.0
}
}
এমনকি ওপি কেবল এই বিষয়েই কথা বলছে String[] args
, আমি এর একটি সম্পূর্ণ উদাহরণ দিতে চাই public static void main(String[] args)
।
Public
: একটি অ্যাক্সেস মডিফায়ার , যা এই পদ্ধতিতে অ্যাক্সেস করতে পারে তা নির্ধারণ করে। সর্বজনীন মানে এই পদ্ধতিটি যে কোনও শ্রেণীর দ্বারা অ্যাক্সেসযোগ্য হবে (যদি অন্য শ্রেণিগুলি এই শ্রেণিতে অ্যাক্সেস করতে সক্ষম হয়))
Static
: ক্লাস সম্পর্কিত জিনিস চিহ্নিত করে এমন একটি কীওয়ার্ড। এর অর্থ প্রদত্ত পদ্ধতি বা ভেরিয়েবল উদাহরণ সম্পর্কিত নয় তবে শ্রেণি সম্পর্কিত। এটি কোনও শ্রেণীর উদাহরণ তৈরি না করেই অ্যাক্সেস করা যায়।
Void
: পদ্ধতির রিটার্ন টাইপ সংজ্ঞায়িত করতে ব্যবহৃত হয়। এটি পদ্ধতিটি কী ফিরে আসতে পারে তা নির্ধারণ করে। অকার্যকর অর্থ পদ্ধতিটি কোনও মান ফেরত দেবে না।
main
: পদ্ধতিটির নাম। এই পদ্ধতির নামটি কেবলমাত্র একটি নির্দিষ্ট স্বাক্ষর সহ কোনও অ্যাপ্লিকেশনটির প্রারম্ভিক পয়েন্ট হিসাবে জেভিএম অনুসন্ধান করেছে।
String[] args
: মূল পদ্ধতির পরামিতি।
যদি আপনি জেডিকে উত্স কোডটি দেখে থাকেন (jdk-src \ j2se \ src \ share \ bin \ java.c):
/* Get the application's main method */
mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
"([Ljava/lang/String;)V");
...
{ /* Make sure the main method is public */
...
mods = (*env)->CallIntMethod(env, obj, mid);
if ((mods & 1) == 0) { /* if (!Modifier.isPublic(mods)) ... */
message = "Main method not public.";
messageDest = JNI_TRUE;
goto leave;
...
আপনি দেখতে পাচ্ছেন যে জাভাতে প্রারম্ভিক পদ্ধতির নাম অবশ্যই রাখা main
উচিত এবং অবশ্যই নির্দিষ্ট স্বাক্ষর থাকতে হবেpublic static void main(String[] args)
কোডটি আমাদের জানায় যে এটি public static void main(String[] args)
স্থির নয়, আপনি যদি কোডটি (jdk-src \ j2se \ src \ share \ bin \ java.c) তে অন্য স্বাক্ষরে পরিবর্তন করেন, এটি কাজ করবে তবে এটি পরিবর্তন করা আপনাকে অন্যান্য সম্ভাব্য সমস্যা দেয় কারণ জাভা চশমা
অফটপিক: ওপি এই প্রশ্নটি জিজ্ঞাসা করে 7 বছর হয়ে গেছে, আমার অনুমান যে ওপি এখনই তার নিজের প্রশ্নের উত্তর দিতে পারে।
String [] args
আপনি জাভাতে স্ট্রিংগুলির একটি অ্যারে ঘোষণা করেন।
এই পদ্ধতির স্বাক্ষরে, পদ্ধতিটি args
যখন ডাকা হয় তখন অ্যারে মানগুলি পূর্ণ হবে (যেমন এখানে অন্যান্য উদাহরণগুলি দেখায়)। যেহেতু আপনি যদিও শিখছেন, এটি বোঝার মতো যে এই args
অ্যারেটি ঠিক যেমন আপনি কোনও পদ্ধতিতে নিজেকে তৈরি করেছেন ঠিক তেমন:
public void foo() {
String [] args = new String[2];
args[0] = "hello";
args[1] = "every";
System.out.println("Output: " + args[0] + args[1]);
// etc... the usage of 'args' here and in the main method is identical
}
আমি ব্রেক আপ হবে
public static void main(String args[])
অংশে.
"সর্বজনীন" এর অর্থ প্রধান () কে যে কোনও জায়গা থেকে কল করা যায়।
"স্ট্যাটিক" এর অর্থ প্রধান () কোনও নির্দিষ্ট বস্তুর সাথে সম্পর্কিত নয়
"শূন্য" এর অর্থ প্রধান () কোনও মূল্য দেয় না
"প্রধান" একটি ফাংশনের নাম। প্রধান () বিশেষ কারণ এটি প্রোগ্রামের সূচনা।
"স্ট্রিং []" এর অর্থ স্ট্রিংয়ের একটি অ্যারে।
"আরগস" হল স্ট্রিংয়ের নাম [] (মেইনের () মূল অংশের মধ্যে)। "আরগস" বিশেষ নয়; আপনি এটি অন্য কোনও নাম রাখতে পারেন এবং প্রোগ্রামটি একই কাজ করবে।
String[] args
স্ট্রিংসের একটি সংগ্রহ, এটি একটি স্পেস দ্বারা পৃথক করা, যা টার্মিনালে প্রোগ্রামে টাইপ করা যেতে পারে। না চেয়ে আরও বেশিরভাগ সময়, শিক্ষানবিশ এই পরিবর্তনশীলটি ব্যবহার করবে না, তবে এটি সর্বদা সেখানে উপস্থিত থাকে।আপনি যখন আপনার কোডটি সমাপ্ত করবেন, আপনি এটিকে এক্সটেনশন। জাভা সহ একটি ফাইলে পরিণত করবেন যা এটিকে ডাবল ক্লিক করে চালানো যেতে পারে, তবে এটি একটি কনসোল জুড়েও (উইন্ডোজে ম্যাকের উপর একটি টার্মিনাল, cmd.exe) যা ব্যবহারকারীকে করতে দেয় অনেক কিছু. একটি জিনিস হ'ল তারা কনসোল বার্তা (System.out.print বা System.out.println) দেখতে পাবে যা তারা দেখতে পাবে না যদি তারা ডাবল ক্লিক করে। তারা করতে পারে এমন অন্য একটি বিষয় হল প্যারামিটারগুলি নির্দিষ্ট করা, তাই সাধারণত আপনি লাইনটি ব্যবহার করবেন would
java -jar MyCode.jar
প্রোগ্রামের ফোল্ডারে সাথে নেভিগেট করার পরে
cd C:My/Code/Location
উইন্ডোজ বা
cd My/Code/Location
ম্যাকটিতে (লক্ষ্য করুন যে ম্যাকটি কম চতুর) তবে চালানোর কোডটি নির্দিষ্ট করে নিন you
java -jar MyCode.jar parameter1 parameter2
আরগস অ্যারেতে সংরক্ষিত এই প্যারামিটারগুলি, যা আপনি আপনার প্রোগ্রামে ব্যবহার করতে পারেন তা হল আপনি ব্যবহারকারীকে কোন ফাইলটি ব্যবহার করতে হবে বা প্রোগ্রামটিতে কতটা মেমরি থাকতে পারে তার মতো বিশেষ পরামিতিগুলি নিয়ন্ত্রণ করতে দিতে চান। আপনি যদি কোনও অ্যারে কীভাবে ব্যবহার করতে চান তা জানতে চাইলে আপনি সম্ভবত এই সাইটে কোনও বিষয় খুঁজে পেতে পারেন বা কেবল গুগল করতে পারেন। নোট করুন যে কোনও পরামিতি ব্যবহার করা যেতে পারে।
সাধারণ সাধারণ মানুষের ভাষায় ব্যাখ্যা।
মূল পদ্ধতিটি আশা করে যে আমরা যখন আমাদের জেভিএমকে শ্রেণীর নামের দিকে পরিচালিত করি তখন আমরা কিছু যুক্তি সরবরাহ করব। এর অর্থ, ধরুন আপনার ফাইলটির নাম ট্রাই.জভা, এখন এই কমান্ড প্রম্পটটি কার্যকর করতে আপনি "জাভ্যাক ট্রাই.জভা" লিখুন এবং "জাভা ট্রাই" চালনার জন্য সংকলিত হবে। এখন ধরা যাক কেবল "জাভা চেষ্টা করুন" লেখার পরিবর্তে আপনি "জাভা ট্রাই 1" লেখেন। এখানে আপনি একটি যুক্তি "1" দিয়ে গেছেন। আপনি যদি আপনার কোডটিতে এটি ব্যবহার না করেন তবে এটি আপনার মূল পদ্ধতি দ্বারা নেওয়া হবে।
আপনি যদি পরীক্ষা করতে চান যে আপনার মূল পদ্ধতিটি আসলে "1" যুক্তিটি গ্রহণ করেছে কিনা। সহজভাবে, আপনার মূল পদ্ধতির ভিতরে নিম্নলিখিত টাইপ করুন:
for(int i = 0; i < args.length; i++) {
System.out.println("Argument is: "+args[i]);
}
আমি মনে করি এটি উপরের উত্তরগুলি দ্বারা বেশ ভালভাবে আচ্ছাদিত String args[]
simply এটি কেবল স্ট্রিং আর্গুমেন্টের একটি অ্যারে যা আপনি যখন প্রয়োগ করেন তখন আপনি এটি প্রয়োগ করতে পারেন। সমাপ্তির জন্য, আমি যুক্ত করতে পারি যে main
স্ট্রিং টাইপের ভেরিয়েবল আর্গুমেন্ট (ভারার্গস) হিসাবে পদ্ধতিতে পাস হওয়া প্যারামিটারটি সংজ্ঞায়িত করাও বৈধ :
public static void main (String... args)
অন্য কথায়, main
পদ্ধতিটি অবশ্যই একটি স্ট্রিং অ্যারে ( String args[]
) বা ভারার্গস ( String... args
) পদ্ধতি হিসাবে যুক্তি হিসাবে গ্রহণ করতে পারে। এবং নামটির সাথে কোনও জাদুও নেই args
। আপনি পাশাপাশি লিখতে পারেন arguments
এমনকি freddiefujiwara
নীচের ই.জি.এস. তেও দেখানো হয়েছে:
public static void main (String[] arguments)
public static void main (String[] freddiefujiwara)
কনসোল থেকে যখন জাভা ক্লাস চালানো হয়, তখন মূল পদ্ধতিটি যাকে বলে। এটি হওয়ার জন্য, এই মূল পদ্ধতির সংজ্ঞা অবশ্যই হওয়া উচিত
public static void main(String [])
এই স্ট্রিং অ্যারেটিকে আরগস বলা হয় তা সত্য একটি কনভেনশন, তবে কঠোরভাবে প্রয়োজন হয় না। আপনি আপনার প্রোগ্রামটি চালু করতে কমান্ড লাইনে এই অ্যারেটি তৈরি করবেন
java MyClass a b c
এগুলি সাধারণত আপনার প্রোগ্রামের বিকল্পগুলি সংজ্ঞায়িত করতে ব্যবহৃত হয়, উদাহরণস্বরূপ ফাইলগুলি লিখতে বা পড়তে।
মধ্যে প্রকাশ্য স্ট্যাটিক ভয়েড মেন (স্ট্রিং args []) args কনসোল লাইন আর্গুমেন্ট যার ডাটা টাইপ স্ট্রিং এর একটি অ্যারে। এই অ্যারেতে, আপনি নীচের মতো প্রদর্শিত কমান্ড লাইনে অনুরোধ করে বিভিন্ন স্ট্রিং আর্গুমেন্ট সংরক্ষণ করতে পারেন: জাভা মাইপ্রগ্রাম শান রয়্যাল তারপর শান এবং রয়্যাল অ্যারে হিসাবে আর্গ হিসাবে সংরক্ষণ করা হবে [0] = "শান"; ARG [1] = "রয়েল"; আপনি যখন প্রোগ্রামটি কমান্ড লাইনে তাদের কল করবেন না তখন আপনি নিজেই এটি প্রোগ্রামের ভিতরেও করতে পারেন।
দ্য String[] args
পরামিতি পরামিতি হিসাবে পাস স্ট্রিং একটি অ্যারে যখন আপনি OS এ কমান্ড লাইন মাধ্যমে আপনার অ্যাপ্লিকেশন চলমান হয়।
সুতরাং, আপনি কোনও myApp.jar
জাভা অ্যাপ্লিকেশন সংকলন এবং প্যাকেজ করেছেন তা কল্পনা করুন । আপনি অবশ্যই নিজের অ্যাপ্লিকেশনটিকে ওএস-এ ডাবল ক্লিক করে চালাতে পারেন, তবে আপনি কমান্ড লাইন পদ্ধতিতেও এটি চালাতে পারেন, (যেমন লিনাক্সে):
user@computer:~$ java -jar myApp.jar
যখন আপনি আপনার অ্যাপ্লিকেশনটিকে কিছু প্যারামিটারগুলি পাস করার জন্য কল করবেন, যেমন:
user@computer:~$ java -jar myApp.jar update notify
java -jar
কমান্ড আপনার স্ট্রিংস পাস হবে update
এবং notify
আপনারpublic static void main()
পদ্ধতি।
তারপরে আপনি এর মতো কিছু করতে পারেন:
System.out.println(args[0]); //Which will print 'update'
System.out.println(args[1]); //Which will print 'notify'
আগের সমস্ত মন্তব্য ছাড়াও।
public static void main(String[] args)
হিসাবে লেখা যেতে পারে
public static void main(String...arg)
অথবা
public static void main(String...strings)
args
অগত্যা নামকরণ করার দরকার নেইargs
(আপনি যা খুশি তাই এটি নামকরণ করতে পারেন) - যদিও কনভেনশনটি অনুসরণ করা ভাল। আপনিString... args
সময়ে সময়ে দেখতে পাবেন যা সমান।