Երբ ես գրում եմ այս բլոգը, 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-ը:
- ստատիկ փոփոխիչը նույնպես ցավոտ կետ է: Դա դասի և օբյեկտի մոդելի մի մասն է: Սկզբում դա առեղծված կլինի ուսանողների համար: Բացի այդ, ավելի շատ մեթոդներ կամ դաշտեր ավելացնելու համար, որոնք հիմնականը կարող է կանչել և օգտագործել, ուսանողը կամ պետք է բոլորը հայտարարի որպես ստատիկ: Այն դիմակայում է ստատիկ և օրինակելի անդամների միջև եղած տարբերությանը:
Ինչպե՞ս է այն ընտրում հիմնական մեթոդը:
Դաս բացելիս գործարկման արձանագրությունն ընտրում է հետևյալ մեթոդներից առաջինը կանչելու համար.
- Գործարկված դասում հայտարարված ոչ մասնավոր մուտքի
static void main(String[] args)
մեթոդ (այսինքն՝public
,protected
կամ փաթեթ): - Գործարկված դասում հայտարարված ոչ մասնավոր մուտքի
static void main()
մեթոդ: - Գործարկված դասում հայտարարված կամ գերդասից ժառանգված ոչ մասնավոր մուտքի
void main(String[] args)
օրինակ: - Գործարկված դասում հայտարարված կամ գերդասից ժառանգված ոչ մասնավոր մուտքի
void main()
օրինակ:
Եթե ընտրված main
-ը օրինակի մեթոդ է և հանդիսանում է ներքին դասի անդամ, ծրագիրը չի գործարկվի:
Կափարիչի տակ, երբ մենք դասը չենք հայտարարում, Java կոմպիլյատորը ֆայլի անունը կհատկացնի գործարկված դասին, որն ունի հիմնական մեթոդը: Դա չի խախտի Java լեզվի որևէ կոնվենցիա/ եղանակ:
Հղումներ
JEP 445. Անանուն դասեր և օրինակների հիմնական մեթոդներ (Նախադիտում) (openjdk.org)