# Kā lietot Java metodi main():

`main()` metode atrodas katras Java programmas sākumā un beigās. Izpildes laikā tiek ņemti vērā tikai tie apgalvojumi, kas atrodas tās darbības jomā. Tāpēc ir tik svarīgi pievērst uzmanību katrai metodes sintakses detaļai. Ja tā ir nepareiza, programma netiks izpildīta.

## Kas ir `main()` metode Java?

Neatkarīgi no tā, kādu projektu vēlaties īstenot ar programmēšanas valodu vai kādu īsu vai plašu kodu izmantojat, Java valodā katra lietojumprogramma sākas ar `main()` metodi. Ja tā nav pieejama, kodu **nevar izpildīt**. Pirms tas tiek nodots `main()`, Java virtuālā mašīna (JVM) tiek ielādēta atmiņā un kods tiek kompilēts. Pēc šo soļu pabeigšanas kods tiek pārbaudīts ar Java `main()` metodi. Tad, cerams, tas tiek izpildīts pareizi. Principā ir iespējams izmantot arī vairākas no šīm metodēm, taču maksimālais skaits ir viena galvenā metode katrai klasei.

## Kāda ir Java metodes `main()` sintakse?

Java `main()` metodes sintakse vienmēr ir vienāda. Tā sastāv no vairākām svarīgām daļām un izskatās šādi:

```java
public static void main(String[] args)
```

Šīs sastāvdaļas pilda šādas funkcijas:

- `public`: Šis komponents nodrošina, ka klasei var piekļūt arī no ārpuses.
- `static`: Šī daļa deklarē metodi kā statisku, kas nozīmē, ka tā var pastāvēt bez iepriekš izveidota konkrētas klases objekta.
- `void`: Tas nodrošina, ka `main()` metode Java nav jāatgriež vērtība. `main`: To Java virtuālā mašīna izmanto, lai identificētu metodi, kad tā izpilda programmu.
- `String[] args`: Tas ir masīvs, kurā tiek saglabāti un saņemti komandrindas argumenti.

## Kāpēc `main()` atsevišķie komponenti ir svarīgi?

Lai labāk izprastu, kā darbojas Java `main()` metode un kāpēc visi komponenti ir tik svarīgi, turpmākajās sadaļās mēs tos apskatīsim atsevišķi. Visvairāk mēs parādīsim, kas notiek, ja **daļa no paraksta trūkst**. Lai to izdarītu, mēs izvēlēsimies ļoti vienkāršu koda piemēru, kuru izvadīsim ar Java komandu `System.out.println`.

```java
public class main {
	public static void main(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
```

Kad izpildīsiet šo kodu, saņemsiet šādu rezultātu:

```java
Here is your sample text.
```

### `public`

`public` darbojas kā piekļuves specifikators un norāda Java virtuālajai mašīnai, **kur tiek izpildīta atbilstošā programma**. Ir arī citi piekļuves modifikatori, piemēram, default, private un protected. Tomēr, ja tos izmantojat kopā ar `main()` metodi Java, saņemsiet kļūdas ziņojumu:

```java
public class main {
	private static void main(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
```

Attiecīgais jautājums ir:

```java
Error: Main method not found in class, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
```

Šis kļūdas ziņojums norāda, ka metode nav publiski pieejama.

### `static`

Atslēgvārds `static` apstiprina, ka izmantotā metode ir statiska. Tas nozīmē, ka to var izmantot **neatkarīgi no klases instancēm**. Ja izdzēsīsiet šo komponenti, kods izskatīsies šādi:

```java
public class main {
	public void main(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
```

Šeit jūs saņemat arī kļūdas ziņojumu:

```java
Error: Main method is not static in class test, please define the main method as:
public static void main(String[] args)
```

### `void`

`void` ir atslēgvārds, kas norāda, ka `main()` metode Java valodā **nedrīkst atgriezt nekādas vērtības**. Tā kā `main()` ir programmas sākuma un beigu punkts Java valodā, renderēšana nav nepieciešama. Šādi izskatās kods bez `void`:

```java
public class main {
	public static main(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
```

Šī ir kļūdas ziņojums, ko saņemat, ja izlaidat `void`:

```java
Error: Main method must return a value of type void in class Main, please define the main method as:
public static void main(String[] args)
```

### `main`

Katrai Java programmai JVM vispirms meklē identifikatoru `main`. Tas norāda, **kur jāuzsāk un jābeidz izpilde**. Tiklīdz Java metode `main()` pabeidz izpildi, programma tiek pārtraukta. Tāpēc paraksts nekad nedrīkst tikt mainīts vai papildināts. Šeit ir piemērs, kā izskatās paraksta izmaiņas:

```java
public class main {
	public static void replacementMain(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
```

Tā kā JVM nevar atrast identifikatoru, tā tieši pārtrauks programmu un izdos šādu kļūdas ziņojumu:

```java
Error: Main method not found in class, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
```

### `String[] args`

`String[] args` masīvs atbilst **java.lang.String** klasei un satur datus, kurus tā glabā kā string vērtības. Ja izlaidīsiet šo specifikāciju, kods izskatīsies šādi:

```java
public class main {
	public static void main() {
		System.out.println("Here is your sample text.");
	}
}
```

Bez argumenta Java `main()` metode nevar tikt izpildīta. Rezultātā jūs atkal saņemsiet šādu kļūdas ziņojumu:

```java
Error: Main method not found in class, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
```

## Kādi ir alternatīvie rakstības veidi?

Šeit parādītais koda piemērs ir rakstīts saskaņā ar visbiežāk lietoto sintaksi. Tomēr jūs to varat viegli pielāgot, lai iegūtu labāku pārskatu. Piemēram, jūs varat ievietot kvadrātiekavas tieši aiz `args`. Tas izskatītos šādi:

```java
public static void main(String args[]) { }
```

Jūs varat arī saglabāt argumentus kā mainīgos argumentus (varargs). Lai to izdarītu, jums ir jāizmanto trīs punkti:

```java
public static void main(String...args) { }
```

Tip Mūsu digitālajā ceļvedī varat atrast virkni citu rakstu par Java. Varat lasīt par [Java un JavaScript salīdzinājumu](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/java-pret-javascript/) vai uzzināt vairāk par Java operatoriem.


This is a markdown version of: [https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/java-metode-main/](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/java-metode-main/) for AI/LLM consumption.