প্রধান একটি জাভা শনাক্তকারী?


288

আমার একটি বাচ্চা উচ্চ বিদ্যালয়ে জাভা নিচ্ছে এবং তার একটি পরীক্ষায় এটি ছিল:

নিচের কোনটি জাভাতে একটি বৈধ সনাক্তকারী?

ক। 123java
খ। main
গ। java1234
ঘ। {abce
ঙ। )whoot

তিনি খ কে জবাব দিলেন এবং ভুল পেয়েছেন।

আমি প্রশ্ন দিকে তাকিয়ে যুক্তি দেখান যে main হয় একটি বৈধ শনাক্তকারী এবং এটা সঠিক হওয়া উচিত ছিল যে।

আমরা শনাক্তকারীদের জন্য জাভা বিশেষে একবার দেখেছি এবং এটি সেই পয়েন্টটিকে আরও শক্তিশালী করেছে। আমরা একটি নমুনা প্রোগ্রামও লিখেছিলাম যার একটি ভেরিয়েবল নামে পরিচিত main, পাশাপাশি একটি পদ্ধতিও ছিল। তিনি একটি লিখিত খণ্ডন তৈরি করেছিলেন যার মধ্যে জাভা ডকুমেন্টেশন রেফারেন্স, পরীক্ষার প্রোগ্রাম এবং শিক্ষক এটিকে উপেক্ষা করে বলেছিলেন যে উত্তরটি এখনও ভুল still

কি mainএকটি বৈধ শনাক্তকারী?


12
একজন শিক্ষককে এতটা অনিরাপদ দেখে আমার সর্বদা দুঃখ হয় যে সে নতুন কিছু শিখতে এবং ভুল স্বীকার করতে ভয় পায়।
রায়ান লুন্ডি

আমি অনুমান করি তবে আপনার এটি সত্যই কোনও পরিবর্তনশীল / পদ্ধতির নাম হিসাবে ব্যবহার করা উচিত নয় (তবে প্রকৃত ক্ষেত্রে সত্ত্বেও) তাই শিক্ষক যদি পয়েন্ট হোমটি সম্পর্কে চিন্তাভাবনা করার জন্য চেষ্টা করে থাকেন - বিশেষত এই ক্ষেত্রে - পদ্ধতির নামগুলি তবে আমি তার / দেখতে পাব তার বক্তব্য।
ভরাল

3
এই প্রশ্নটি কি সত্যিই জিজ্ঞাসা করে, আপনার ছেলের শিক্ষক যদি তার কাজটি সঠিকভাবে করছেন? আমি দুটি বৈধ জাভা শনাক্তকারী দেখতে পাচ্ছি। সুতরাং উত্তরটি 'বি' এবং 'সি'। সুতরাং শিক্ষক সঠিক। নাকি আমি কিছু মিস করছি? এটি কীভাবে একটি প্রশ্ন হতে পারে? এমন কোনও ব্যক্তির বিচার করা যা এমনকি সম্প্রদায়ের অংশও নয় ...
jschnasse

1
এটি শিক্ষকদের সম্পর্কে একটি প্রশ্ন, জাভা সম্পর্কে নয়।
এসিভি

1
"আপনার নিজের কৌতুক প্রশ্ন দ্বারা প্রতারিত" কেসগুলির মধ্যে একটি; শিক্ষকদের এই জাতীয় পরীক্ষার প্রশ্ন লেখার চেষ্টা করার আগে ভাষাগুলির দিকে অন্তত নজর দেওয়া উচিত।
জুন

উত্তর:


253
public class J {
    public static void main(String[] args)
    {
        String main = "The character sequence \"main\" is an identifier, not a keyword or reserved word.";
        System.out.println(main);
    }
}

এটি সংকলন করে এবং কার্যকর করা হলে এই আউটপুটটি প্রকাশ করে:

The character sequence "main" is an identifier, not a keyword or reserved word.

অক্ষর ক্রমটি mainএকটি শনাক্তকারী, কোনও কীওয়ার্ড বা সংরক্ষিত শব্দ নয়।

JLS প্রাসঙ্গিক অধ্যায় 3.8 হয় :

একটি আইডেন্টিফায়ার সীমাহীন দৈর্ঘ্যের ক্রম জাভা অক্ষর এবং জাভা ডিজিটের , যার মধ্যে প্রথমে একটি হওয়া আবশ্যক জাভা চিঠি

আইডেন্টিফাইয়ার:

    আইডেন্টিফায়ারচার্স তবে কোনও কীওয়ার্ড বা বুলিয়ানলিটারাল বা নুললিটারাল নয়

IdentifierChars:

    জাভালিটার {জাভালেটারঅরডিজিট}

JavaLetter:

    "জাভা চিঠি" যে কোনও ইউনিকোড অক্ষর

JavaLetterOrDigit:

    ইউনিকোডের কোনও অক্ষর যা "জাভা চিঠি-বা অঙ্ক"

চরিত্রের ক্রমটি mainউপরের বর্ণনার সাথে খাপ খায় এবং বিভাগ 3.9-কীওয়ার্ড তালিকায় নেই

( java1234একই কারণে চরিত্রের ক্রমটিও একটি সনাক্তকারী))


25
@ ক্লকওয়ার্ক প্রশ্নটি এমনভাবে বলা হয়েছিল যে কেবলমাত্র একটি পছন্দই সঠিক হতে পারে। যাইহোক, বি এবং সি উভয় পছন্দই প্রশ্নটির শর্তটি সন্তুষ্ট করেছে, অন্তর্নিহিত নির্বাচনের সাথে অসঙ্গতিপূর্ণ। এর ফলে ওপি'র সন্তানের মধ্যে কোনটি সঠিক উত্তরটিই কেবল শিক্ষকের সঠিক ধারণা সঠিক বলে বেছে নেওয়া উচিত to
rgettman

@ আরজেটম্যান আমি একবারে আরও একবার পছন্দ করার অনুমতি হিসাবে " নিম্নলিখিতগুলির মধ্যে ... " পড়েছি , যার " বি এবং সি " এর বৈধ প্রতিক্রিয়া হবে।
ট্রিপহাউন্ড

6
@ ট্রাইপহাউন্ড "একটি বৈধ শনাক্তকারী" একবচন এবং ঠিক 1 টি উত্তর দাবি করে। এটি "বৈধ সনাক্তকারী" এর সাথে তুলনা করুন
গিমে 411

2
আপনি main
ক্লাসটিও

97

main একটি বৈধ জাভা শনাক্তকারী এবং শিক্ষক ভুল is

সম্পর্কিত ডকুমেন্টেশনটি এখানে ঠিক জাভা ল্যাঙ্গুয়েজ স্পেসিফিকেশনে রয়েছে:

অধ্যায় 3. "লেক্সিকাল স্ট্রাকচার", বিভাগ 3.8। "শনাক্তকারী":

https://docs.oracle.com/javase/specs/jls/se10/html/jls-3.html#jls-3.8

এটা বলে:

সনাক্তকারী হ'ল জাভা অক্ষর এবং জাভা অঙ্কগুলির সীমাহীন দৈর্ঘ্যের ক্রম, যার মধ্যে প্রথমটি জাভা অক্ষর হতে হবে ... শনাক্তকারীটির কীওয়ার্ড (ic3.9) হিসাবে একই বানান (ইউনিকোড অক্ষর ক্রম) থাকতে পারে না, বুলেটিয়ান আক্ষরিক ( §3.10.3), বা নাল আক্ষরিক (.3.10.7), বা একটি সংকলন-সময় ত্রুটি ঘটে।

যার অর্থ আপনি যে কোনওটি দ্বারা এটি বৈধ শনাক্তকারী প্রমাণ করতে পারবেন:

  • জাভা কীওয়ার্ডের তালিকায় এটি সন্ধান করুন (ইঙ্গিত: আপনি এটি সেখানে পাবেন না!) বা কেবল দ্বারা
  • এটি সনাক্তকারী হিসাবে ব্যবহার করে এবং পর্যবেক্ষণ করে যে কোনও সংকলন-সময় ত্রুটি ঘটে না।

1
আপনি কি আরও স্পষ্টভাবে উদ্ধৃত করে এবং বানান করতে পারেন?
শূন্য 298

36
না, কারণ এটি একটি সম্পূর্ণ বিভাগ। যদি শিক্ষক মনে করেন যে এই বিভাগটি 'মেইন' এর জন্য একরকম ব্যতিক্রম করে, তবে শিক্ষককে অবশ্যই এটি দেখাতে হবে যেখানে এটি বলা হয়েছে।
মাইক নকিস

76

অন্য উত্তর হিসাবে রাজ্য

mainএকটি বৈধ জাভা শনাক্তকারী , পাশাপাশি java1234

আমার ধারণা, বিভ্রান্তিকর সত্যটি আসে যে main(String[])পদ্ধতিটি প্রায়শই JVM 1 দ্বারা প্রবেশ পয়েন্ট হিসাবে ব্যবহৃত হয় । তবে, এর অর্থ এই নয় যে টোকেন mainনিজেই সনাক্তকারী 2 হিসাবে ব্যবহার করা যাবে না ।

চশমাগুলি তাই বলে, এবং নিম্নলিখিত ঘোষণাগুলিও বৈধ:

  • একটি ক্ষেত্র:

    private int main;
  • একটি স্থানীয় পরিবর্তনশীল:

    String main = "";
  • একটি পদ্ধতি:

    private void main() { ... }
  • একটি শ্রেণি (যদিও ছোট শ্রেণীর সাথে শুরু হওয়া কোনও শ্রেণীর নাম নিরুৎসাহিত করা হয়):

    public class main { ... }
  • একটি প্যাকেজ:

    package main;

1: মন্তব্যে উল্লিখিত হিসাবে, জেভিএম স্পেসিফিকেশন নিজেই কোনও নির্দিষ্ট পদ্ধতিকে এন্ট্রি পয়েন্ট হিসাবে নির্দেশ দেয় না, তবে বহুল ব্যবহৃত javaসরঞ্জামটি প্রায়শই এন্ট্রি পয়েন্ট হিসাবে এই জাতীয় পদ্ধতি ব্যবহার করে।
2: আমি সাধারণত ছাড়া অন্য কোনও প্রধান পদ্ধতি তৈরি করা এড়াতে চাই main(String[])


22
"আমি অনুমান করি যে বিভ্রান্তিকর ঘটনাটি এ থেকে এসেছে যে মূল (স্ট্রিং []) পদ্ধতিটি জেভিএমের প্রবেশের পয়েন্ট হিসাবে ব্যবহৃত হয়।" mainজেভিএমের প্রবেশের স্থান নয়। এটি এন্ট্রি পয়েন্ট যা javaঅ্যাপ্লিকেশন চালানোর জন্য সরঞ্জামটি ব্যবহার করে। অন্যান্য সরঞ্জাম (উদাহরণস্বরূপ সার্লেট পাত্রে) অন্যান্য প্রবেশের পয়েন্টগুলি ব্যবহার করে।
টিজে ক্রাউডার

27
যা আরও বেশি ব্যঙ্গাত্মক, কারণ এমনকি "এন্ট্রি-পয়েন্ট-প্রসঙ্গে" মূল আগে থেকেই একটি বৈধ শনাক্তকারী। এমনকি আপনি যে মামলাটির বিরুদ্ধে থাকতে পারেন তা আসলে
ওপিতে

@ টিজে ক্রাউডার ধন্যবাদ, আমি এটি উত্তরে অন্তর্ভুক্ত করেছি।
এমসি সম্রাট

1
@ হোববামোক আপনি প্রাথমিক জাভা ধারণাগুলি সম্পর্কে বিভ্রান্ত বলে মনে করছেন, যা সম্ভবত এটি ব্যাখ্যা করে যে আপনি কেন এটি স্কুলে পড়ান এবং অনুশীলন না করা উত্তরটি মনে আসে
রথ

4
javaটুল একটি প্রয়োজন হয় না main(String[])পদ্ধতি যদি প্রধান বর্গ প্রসারিত javafx.application.Application
ভিজিআর

65

এটি জাভা 1.8 এ জরিমানা সংকলন করে ...

public class main {

    public String main = "main"; 

    public void main(String main) {
        System.out.println("This object is an instance of the class " + this.getClass().getCanonicalName());
        System.out.println("The value of the argument \"main\" for this call to the method \"main(String main)\" is " + main);
        System.out.println("The value of the field \"main\" is " + this.main);
    }

    public static void main(String[] args) {
        main main = new main();
        main.main(main.main + main.main);
    }
}

... এবং যখন মৃত্যুদন্ড কার্যকর হয় আউটপুট:

This object is an instance of the class main
The value of the argument "main" for this call to the method "main(String main)" is mainmain
The value of the field "main" is main

5
static mainবিভিন্ন পরামিতি সহ অন্য পদ্ধতি যুক্ত করা কি সম্ভব ?
jpmc26

6
@ jpmc26 চেষ্টা করে দেখুন এটি কীভাবে হয়েছে তা আমাদের জানান tell :)
মাইকেলক

1
ওয়েল এটি প্রচুর সংখ্যক
এমসি সম্রাট

4
@ এমসিইম্পেরার হ্যাঁ, এটি আমার উত্তরের মূল যুক্তি। ;)
মাইকেলK

3
আপনি যোগ করতে ভুলে গেছেন package main;!
সলোমন উকো

45

আমি এতে যা কিছু করতে পেরেছি তা ছুঁড়ে ফেলেছি এবং এটি কাজ করে বলে মনে হচ্ছে। আমি বলব মূলটি একটি বৈধ শনাক্তকারী।

package main;

public class main {

    static main main;
    String Main;

    main(String main) {
        Main = main;
    }

    main(main main) {
        System.out.println(main.Main);
    }

    main main(main main) {
        return new main(main);
    }

    public static void main(main...Main) {
        main:
        for (main main : Main) {
            main = (main instanceof Main) ? new main(main): main.main(main);
            break main;
        }
    }

    public static void main(String[] args) {
        main = new main("main");
        main.main(main, main);
        main = main.new Main(main) {
            main main(main main) {
                return ((Main)main).main();
            }
        };
        main.main(main);
        main.main(main,main);
    }

    abstract class Main extends main {
        Main(main main) {
            super("main");
        }

        main main() {
            main.Main = "Main";
            return main;
        }
    }
}

2
আমি এটা পছন্দ করি. একটি 'গ্রেপ-মেইন মেইন.জভা' ব্যবহার করে দেখুন wc -l '
গ্যারি বাক

3
এই কোড কিন্ডা আমাকে প্রোগ্রামিংয়ের ভাষা "ook" সম্পর্কে মনে করিয়ে দেয় this এই কোডের প্রায় প্রতিটি শব্দই "মূল" ...
ফ্লোরিয়ান বাখ

public static void main(main...Main)( একটি জায়গা অনুপস্থিত ) কাজ করতে পারে না, তাই না?
জেরলডব্রোজার মনিকাকে

3
আমার মনে হচ্ছে আমি এটি মুখ্য করে দিয়েছি।
রস প্রেসার

1
@ জেরোডব্রোজার এটি পরিষ্কার, তবে কঠোরভাবে প্রয়োজনীয় নয়: টোকেনগুলির মধ্যে শ্বেত স্পেসগুলি অনেক ক্ষেত্রে alচ্ছিক হয়, কেবল তখনই প্রয়োজন যখন দুটি পরবর্তী টোকেনের সংমিশ্রণটি বৈধ হবে।
এমসি সম্রাট

44

main"প্রধান" পদ্ধতিটি ঘোষণার জন্য এটি সনাক্তকারী হিসাবে ব্যবহৃত হওয়ার সময় সনাক্তকারী হিসাবে কীভাবে ব্যবহার করা যায় না?

যেমন একটি ক্লাসিক প্রতিমা জন্য:

public class Foo{
   public static void main(String[] args){
   }
}

main কোনও কীওয়ার্ড নয় এবং সম্ভবত জাভাতে সম্ভবত স্পষ্ট বিপরীতমুখী সামঞ্জস্যের কারণে কোনও কীওয়ার্ড হতে পারে না।


প্রশ্ন সম্পর্কে, mainএকটি ভাল সনাক্তকারী?

প্রথম: সংকলকটির জন্য বৈধ অর্থ অগত্যা ভাল নয়।
উদাহরণস্বরূপ, java1234প্রস্তাবিত বিকল্পটি একটি বৈধ সনাক্তকারীও তবে এটি সত্যই এড়ানো উচিত।

mainএর একটি খুব বিশেষ এবং গুরুত্বপূর্ণ অর্থ রয়েছে: এটি javaকমান্ড লাইনের দ্বারা সম্পাদিত শ্রেণি এবং জারগুলির প্রবেশ পয়েন্ট পদ্ধতি হিসাবে ব্যবহৃত হয় ।
ব্যবহার mainএকটি পদ্ধতি নাম মানদন্ড অনুসারে দ্বারা ব্যবহার করা হবে পূরণ করা সম্ভব নয় জন্য javaকমান্ড লাইন মাত্র যখন এটি পরিবর্তনশীল নামের ব্যবহার বা একটি বর্গ নাম জানার জন্য পারে বিভ্রান্তিকর হতে পারে।
উদাহরণস্বরূপ, অ্যাপ্লিকেশনটির প্রবেশের পয়েন্টটি উপস্থাপন করে এমন শ্রেণীর সংজ্ঞা দেওয়া যেমন অ্যাপ্লিকেশনটির Mainশ্রেণি গ্রহণযোগ্য এবং তাই এটি ভেরিয়েবলের নাম হিসাবে ব্যবহার করা যেমন:

public class Main {

  public static void main(String args[]){
     Main main = new Main();
     // ...
  }      

}

একটি সাধারণ উপায়ে, জাভাতে, একাধিক অক্ষর বা "শব্দ" সংকলকটির জন্য বৈধ সনাক্তকারী হিসাবে বিবেচিত হয় তবে ক্লায়েন্ট কোডে ব্যবহার করার জন্য দৃ to়ভাবে নিরুৎসাহিত করা হয় (তবে উত্পন্ন কোডটি এটি করতে পারে: উদাহরণস্বরূপ নেস্টেড ক্লাসগুলি) পঠনযোগ্য নয় এবং / বা সত্যই বিভ্রান্তিকর।

উদাহরণস্বরূপ এটি সংকলকের জন্য বৈধ হতে পারে:

public class Object { // 1
    public void foo() {
       ...
    }
}

public class BadChosenIdentifier {

    public static void main() { // 2
        new BadChosenIdentifier().toString(new Object());  
    }

    public void toString(Object java1234) { // 3, 4
        String _result$ = java1234 + " -> to avoid"; // 4
        System.out.println(_result$);
    }    
}

তবে আমরা চাই না:

  • Objectএটি java.lang(1) এ সংজ্ঞায়িত হিসাবে আমাদের শ্রেণীর নামকরণ করুন ।
  • কমান্ড লাইন (2) main()দ্বারা ব্যবহৃত মানদণ্ড পূরণ না করে কোনও পদ্ধতির নাম লিখুন java
  • Object.toString()পদ্ধতিটি ওভারলোড করতে (3)।
  • আমাদের ভেরিয়েবলগুলির সাথে নাম লেখাতে _, $বা ভাগ করা নামকরণ কনভেনশনগুলির বিপরীতে যে কোনও আশ্চর্যজনক / অবৈধ অক্ষর রয়েছে (4)।

7
কেবলমাত্র লক্ষণীয়, mainএমন একটি কীওয়ার্ড হতে পারে যা কেবলমাত্র একটি স্বাক্ষর (বা যাই হোক না কেন) সহ স্থির পদ্ধতির নাম হিসাবে ব্যবহারযোগ্য। নোট করুন যে সুপার ক্লাস কলগুলি superএমনভাবে ব্যবহার করে যাতে এটি সনাক্তকারী হিসাবে দেখা দেয়: super(foo);এবং super.foo, তবে এটি superএকটি কীওয়ার্ড (এবং জেনেরিকগুলি যুক্ত হওয়ার আগে এটি ব্যবহারের একমাত্র উপায় ছিল (যা আমি মনে করতে পারি))।
jaxad0127

@ jaxad0127 আকর্ষণীয় পয়েন্ট তবে আমি পুরোপুরি একমত নই। আসলে এটি নয় এবং ভবিষ্যতে এটি সম্ভবত এখনও সামঞ্জস্যের কারণে নাও হতে পারে। আপনি যদি mainজাভা এর নতুন সংস্করণে কীওয়ার্ড হিসাবে সংজ্ঞায়িত হয়ে থাকেন তবে এর অর্থ হ'ল যে কোডটি প্রধান হিসাবে মেথডের নাম হিসাবে ব্যবহার করে (বা কোনও সদস্যের নাম) আর সংকলন করবে না। superজেনেরিকের ব্যবহারের বিদ্যমান কোডটিতে কোনও পার্শ্ব প্রতিক্রিয়া নেই কারণ জেনেরিকগুলি বর্তমানে উপস্থিত ছিল না।
ডেভিডএক্সএক্সএক্সএক্স

2
আমি কেবল বোঝাতে চেয়েছিলাম যে এটি একটি কীওয়ার্ড হিসাবে করা উচিত। এটি কেবল শনাক্তকারীর মতো বলে মনে হচ্ছে, এটি হওয়া উচিত নয়।
jaxad0127

2
আমি তর্ক করব যে এর mainচেয়ে আরও ভাল শনাক্তকারী java1234। এটি "নিয়মিত" পদ্ধতির জন্য ব্যবহার করা বিভ্রান্তিমূলক হবে, তবে ভেরিয়েবলের নামকরণে আমার কোনও সমস্যা হবে না main, যদি এটি আসলে আমার পদ্ধতির প্রধান জিনিস। java1234কেবল ভয়াবহ, নামগুলি বর্ণনামূলক হওয়া উচিত ...
এজেপিজেজ

1
"প্রশ্ন সম্পর্কে, একটি ভাল পরিচয়কারী প্রধান?" এটা নির্ভর করে. আমি সম্ভবত mainফাংশনটি দেখছিলাম যদি জল প্রধান ডেটা দিয়ে কিছু করে থাকে তবে আমি সম্ভবত নামটির কোনও ভেরিয়েবলের দিকে নজর দেব না । আমি যদি কখনওjava1234 প্রোডাকশন কোডে দেখে থাকি তবে আমি উপড়ে ফেলতাম (এবং প্রার্থনা করুন যে প্রিফিক্সটির সাথে 1233 টি অন্যান্য ভেরিয়েবল ছিল না java)।
jpmc26

40

এটি কি বৈধ শনাক্তকারী? হ্যাঁ.

এটি কি ভাল পরিচয়দাতা? আপনি যদি এটি JVM লঞ্চে শুরু হওয়া পদ্ধতি ব্যতীত অন্য কোনও কিছুর জন্য ব্যবহার করছেন না Not

অন্য বৈধ সনাক্তকারী তালিকাভুক্ত করা হয়েছে? হ্যাঁ.

পরীক্ষা নির্দেশাবলী সেরা উত্তর চয়ন করতে বলেছিলেন?


7
সম্মত - একাধিক পছন্দ যেমন একাধিক থাকে তখন 'সেরা' সঠিক উত্তরটি বেছে নেওয়ার বিষয়ে। যাইহোক, এটি এটি একটি ভাল একাধিক পছন্দ প্রশ্ন তোলে না এবং আমি মনে করি এটি সম্পর্কে শিক্ষকের সাথে কথা বলা সঠিক জিনিস।
ছায়া

19
@ শ্যাডো এটি একটি প্রোগ্রামিং কোর্স। আনুষ্ঠানিক গাণিতিক ব্যাকরণের সাথে নির্দিষ্ট কিছু সম্পর্কে প্রশ্নের দ্ব্যর্থহীনতা অসহনীয়। সেই মানদণ্ডের বিরুদ্ধে (যা " বৈধ " দ্বারা বোঝানো হয় ) বিরুদ্ধে কঠোরভাবে কথা বলা , উভয় উত্তর সমানভাবে সঠিক। আমি আরও অনেকগুলি ক্ষেত্রে কল্পনা করতে পারি যেগুলিতে আমি যা করতে পারি তার mainচেয়ে সহনীয় শনাক্তকারী java1234। উদাহরণস্বরূপ, জল সরবরাহ সরবরাহের ডেটা (জলের মাইন) সহ একটি কোড বেস বিবেচনা করুন।
jpmc26

5
অন্যদিকে, java1234 সনাক্তকারী হিসাবে উচ্চ স্বর্গে তীব্র।
জোশুয়া

4
"সর্বোত্তম উত্তরটি চয়ন করুন" এর অর্থ এই নয় "যখন শিক্ষক জানেন না তারা কী বিষয়ে কথা বলছেন এবং তারা যে খারাপ উত্তরের কথা ভাবছেন তা অনুমান করুন।" প্রধানটি কেবল একটি বৈধ শনাক্তকারী নয় , এটি একটি অত্যন্ত গুরুত্বপূর্ণ শনাক্তকারী কারণ প্রতিটি জাভা অ্যাপ্লিকেশনটির একটি প্রধান পদ্ধতি থাকে এবং পদ্ধতিগুলি সনাক্তকারীদের সাথে নামকরণ করা হয়।
ফ্লাফিশেপ

2
আমি এই উত্তরটি অত্যন্ত মতামতযুক্ত বলে মনে করি এবং আমি আশা করি আমি এটি একাধিকবার ডাউন-ভোট দিতে পারি। দেখে মনে হচ্ছে আপনি সর্বদা ব্যয় করতে চেষ্টা করছেন এবং বিস্তৃত চিত্র বিবেচনা করছেন না। mainসরল জাভা অ্যাপ্লিকেশনটির সংকীর্ণ ডোমেনের বাইরে যে কোনও জায়গায় পুরোপুরি সূক্ষ্ম শনাক্তকারী। এটি কোনও সেট মেনু উপস্থাপন করে এমন কোনও শ্রেণীর ক্ষেত্রের নাম হতে পারে। বা <main>এইচটিএমএল বিল্ডারে কোনও দস্তাবেজের একটি অংশ। java1234অন্যদিকে, শনাক্তকারীরা যতটা ভয়ঙ্কর তা পায়।
টনিডিজ্বয়েডজ

29

mainপুরোপুরি বৈধ কারণ এটি ডক্স থেকে :

  1. একটি "জাভা অক্ষর এবং জাভা অঙ্কগুলির ক্রম, যার মধ্যে প্রথমটি জাভা বর্ণ"
  2. কোনও কীওয়ার্ড নয়
  3. নয় এ হচ্ছে বুলিয়ান আক্ষরিক মানে ওই "সত্য" বা "FALSE"
  4. নয় নাল আক্ষরিক

29
public class Main {
    private static String main;
    public static void main(String[] main) {
        Main.main = main[0];
        new Main().main(Main.main);
    }
    private void main(String main) {
        System.out.println(main);
    }
}

7

মূল শিক্ষকটি বৈধ সনাক্তকারী নয় বা কেবল প্রশ্নটিকে ভুল বানান বলে ধরে নিলে এই শিক্ষক একটি ছোটখাটো ভুল করেছেন । তিনি সম্ভবত "একটি ভাল সনাক্তকারী" বলতে চেয়েছিলেন।
তবে আপনার পুত্রদের যুক্তি উপেক্ষা করা এবং এর দ্বারা প্রাসঙ্গিক সাহিত্য পরীক্ষা করার বিষয়ে তার বৈজ্ঞানিক পদ্ধতির (জাভা নির্দিষ্টকরণ) নিরুৎসাহিত করা এবং একটি পরীক্ষা করা (একটি নমুনা প্রোগ্রাম লেখার জন্য) কোনও শিক্ষকের করা কথাটির ঠিক বিপরীত


1
অন্যান্য উত্তরে যেমন উল্লিখিত হয়েছে, mainতার চেয়ে অনেক বেশি একটি "ভাল" সনাক্তকারী হয় java1234। এমনকি সেখানে, শিক্ষক ভুল। ;)
jpmc26

5

উভয় mainএবং java123হয় বৈধ শনাক্তকারী, প্রধান একটি সংরক্ষিত শব্দ তাই এটি পুরোপুরি ব্যবহার করতে গ্রহণযোগ্য যেমন পরীক্ষা যায় অন্তত একটি বিন্দু বা অর্ধ একটি বিন্দু অর্জিত করেছি উচিত, যতটা নয়।


5
  1. একক শব্দ হওয়া উচিত। যে স্থান ফাঁকা অনুমতি দেওয়া হয় না।

    উদাহরণ: ম্যাঙ্গোপ্রিসটি বৈধ তবে আমের দাম বৈধ নয়।

  2. কোনও বর্ণ (বর্ণমালা) বা আন্ডারস্কোর বা $ চিহ্ন দিয়ে শুরু করা উচিত।

    উদাহরণ: মূল্য, _প্রাইস এবং $ দামটি বৈধ শনাক্তকারী।

  3. জাভাটির কীওয়ার্ড হওয়া উচিত নয় কারণ মূলশব্দটি সংকলকটির বিশেষ অর্থ বহন করে।

    উদাহরণ: শ্রেণি বা অকার্যকর ইত্যাদি

  4. একটি অঙ্ক দিয়ে শুরু করা উচিত নয় তবে অঙ্কটি মাঝখানে বা শেষে হতে পারে।

    উদাহরণ: 5 মঙ্গোস্কোস্ট বৈধ নয় এবং ম্যাঙ্গো 5cost এবং ম্যাঙ্গোকেস্ট 5 বৈধ।

  5. জাভাতে একটি শনাক্তকারীর দৈর্ঘ্য 65,535 টি অক্ষরের হতে পারে এবং সমস্ত উল্লেখযোগ্য। শনাক্তকারীরা কেস-সংবেদনশীল। তা হ'ল আম এবং আম উভয়ই আলাদা আচরণ করা হয়। সমস্ত বড় হাতের অক্ষর বা ছোট হাতের অক্ষর বা একটি মিশ্রণ থাকতে পারে।

শনাক্তকারী : তারা শ্রেণীর নাম, পদ্ধতির নাম, পরিবর্তনশীল নাম ...

মূল হিসাবে কোনও সংরক্ষিত শব্দ নয় এবং উপরের ব্যাখ্যা অনুসারে একটি শনাক্তকারীকে প্রধান হিসাবে সংজ্ঞায়িত করার জন্য একটি বৈধ শনাক্তকারী এবং জাভা 1234 ও রয়েছে above উপরের ব্যাখ্যার কারণে বাকী বিকল্পগুলি বৈধ নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.