Երբ ես գրում եմ այս բլոգը, Java-ի նորագույն կայուն տարբերակը 20-ն է: Ստորև բերված բովանդակությունը Java 21-ի մի մասն է, որն այս պահին դեռ թեկնածու է:

Ինչո՞ւ Java-ն այլևս չի ունենա «public static void main()»:

Սա զարգացնում է Java լեզուն, որպեսզի ուսանողները կարողանան գրել իրենց առաջին ծրագրերը՝ առանց հասկանալու մեծ խնդիրների համար նախատեսված լեզվի առանձնահատկությունները:

Նախադրյալ

  • Տեքստային խմբագիր (Ծանոթագրություն, VS Code):
  • Ձեզ անհրաժեշտ է տեղադրել JDK 21 այստեղ:
  • Հիշեք, որ տեղադրեք ձեր ՕՀ-ի համար հարմար տարբերակը (Mac/Win/Linux):

Եկեք կեղտոտենք ձեր ձեռքերը

Առաջին հերթին, դուք պետք է ստուգեք, որ օգտագործում եք Java-ի ճիշտ տարբերակը:

Ինչպես տեսնում եք վերը նշված պատկերը, այն տարբերակը, որը ես օգտագործում եմ, 21-ea է (Early Access):

Ընթացիկ գրացուցակում ես ստեղծել եմ Main.java անունով ֆայլ՝ ստորև բերված կոդով:

void main() {
  System.out.println("Hello, World!");
}

Եթե ​​ձեր VS կոդը զգուշացնում է ձեզ, մի անհանգստացեք դրա մասին, դա պայմանավորված է Java-ի հին տարբերակով, որը տեղադրվել է VS Code-ում: Իմ դեպքում նախազգուշացումներ չկան։

Այնուհետև վազեք.

$ java --source 21 --enable-preview Main.java

Սա նախադիտման լեզվի հատկություն է, որն անջատված է լռելյայնորեն, այնպես որ այն կազմելու և գործարկելու համար ձեզ անհրաժեշտ կլինեն որոշ դրոշներ:

Արդյունքը հետևյալն է.

Այժմ դուք կարող եք տեսնել, որ հավելվածը հաջողությամբ աշխատում է ամենակարճ Java կոդով: Դա իսկապես լավ է սկսնակների կամ Java-ի բոլորովին նոր մարդկանց համար:

Այնուամենայնիվ, պետք է զգույշ լինել այս հատկանիշից: Դա կարող է հանգեցնել թյուրիմացության, թե ինչպես է աշխատում Java հավելվածը: Սկզբում, ով սովորել է Java-ն, գիտի, որ Java հավելվածի մուտքի կետը դաս է, որն ունի հանրային ստատիկ հիմնական մեթոդ՝ լարային պարամետրերով:

Համեմատության համար՝ ստորև ներկայացված հին տարբերակը.

public class Main { 
    public static void main(String[] args) { 
        System.out.println("Hello, World!");
    }
}

Այստեղ չափազանց շատ խառնաշփոթ կա՝ չափազանց շատ կոդ, չափազանց շատ հասկացություններ, չափազանց շատ կոնստրուկցիաներ, քանի որ պարզ հավելվածը դա անում է:

  • class հայտարարությունը և պարտադիր public մուտքի փոփոխիչը ծրագրավորման մեծ կառուցվածքներ են: Դրանք օգտակար են արտաքին բաղադրիչներին լավ սահմանված ինտերֆեյսով ծածկագրի միավորը պարփակելիս: Սակայն այս դեպքում դա բավականին անօգուտ է։
  • String[] argsպարամետրը նույնպես գոյություն ունի առանց օգտագործման, և դա կարող է սկսնակին շփոթեցնել, թե որտեղ է օգտագործվում այս args-ը:
  • ստատիկ փոփոխիչը նույնպես ցավոտ կետ է: Դա դասի և օբյեկտի մոդելի մի մասն է: Սկզբում դա առեղծված կլինի ուսանողների համար: Բացի այդ, ավելի շատ մեթոդներ կամ դաշտեր ավելացնելու համար, որոնք հիմնականը կարող է կանչել և օգտագործել, ուսանողը կամ պետք է բոլորը հայտարարի որպես ստատիկ: Այն դիմակայում է ստատիկ և օրինակելի անդամների միջև եղած տարբերությանը:

Ինչպե՞ս է այն ընտրում հիմնական մեթոդը:

Դաս բացելիս գործարկման արձանագրությունն ընտրում է հետևյալ մեթոդներից առաջինը կանչելու համար.

  1. Գործարկված դասում հայտարարված ոչ մասնավոր մուտքի static void main(String[] args) մեթոդ (այսինքն՝ public, protected կամ փաթեթ):
  2. Գործարկված դասում հայտարարված ոչ մասնավոր մուտքի static void main() մեթոդ:
  3. Գործարկված դասում հայտարարված կամ գերդասից ժառանգված ոչ մասնավոր մուտքի void main(String[] args) օրինակ:
  4. Գործարկված դասում հայտարարված կամ գերդասից ժառանգված ոչ մասնավոր մուտքի void main() օրինակ:

Եթե ​​ընտրված main-ը օրինակի մեթոդ է և հանդիսանում է ներքին դասի անդամ, ծրագիրը չի գործարկվի:

Կափարիչի տակ, երբ մենք դասը չենք հայտարարում, Java կոմպիլյատորը ֆայլի անունը կհատկացնի գործարկված դասին, որն ունի հիմնական մեթոդը: Դա չի խախտի Java լեզվի որևէ կոնվենցիա/ եղանակ:

Հղումներ

JEP 445. Անանուն դասեր և օրինակների հիմնական մեթոդներ (Նախադիտում) (openjdk.org)

https://youtu.be/7Qlj62VSeb4