# Πώς να χρησιμοποιήσετε τη μέθοδο Java main():

Η μέθοδος `main()` βρίσκεται στην αρχή και στο τέλος κάθε προγράμματος σε Java. Κατά την εκτέλεση λαμβάνονται υπόψη μόνο οι δηλώσεις που βρίσκονται εντός του πεδίου εφαρμογής της. Για αυτό είναι τόσο σημαντικό να δίνετε προσοχή σε κάθε λεπτομέρεια της σύνταξης της μεθόδου. Εάν είναι λανθασμένη, το πρόγραμμα δεν θα εκτελεστεί.

## Τι είναι η μέθοδος `main()` στη Java;

Ανεξάρτητα από το έργο που θέλετε να υλοποιήσετε με τη γλώσσα προγραμματισμού ή από το πόσο συνοπτικό ή εκτενές είναι το κώδικα που χρησιμοποιείτε για αυτό, στη Java, κάθε εφαρμογή ξεκινά με τη μέθοδο `main()`. Εάν δεν είναι διαθέσιμη, ο κώδικας **δεν μπορεί να εκτελεστεί**. Πριν αυτό μεταβιβαστεί στο `main()`, η Java Virtual Machine (JVM) φορτώνεται στη μνήμη και ο κώδικας μεταγλωττίζεται. Μόλις ολοκληρωθούν αυτά τα βήματα, ο κώδικας ελέγχεται με τη μέθοδο Java `main()`. Στη συνέχεια, ελπίζουμε ότι θα εκτελεστεί σωστά. Κατ’ αρχήν, είναι επίσης δυνατό να χρησιμοποιηθούν πολλές από αυτές τις μεθόδους, με μέγιστο όριο μία κύρια μέθοδο ανά κλάση.

## Ποια είναι η σύνταξη της μεθόδου Java `main()`;

Η σύνταξη της μεθόδου `main()` της Java είναι πάντα η ίδια. Αποτελείται από πολλά σημαντικά μέρη και έχει την εξής μορφή:

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

Αυτά τα εξαρτήματα εκπληρώνουν τις ακόλουθες λειτουργίες:

- `public`: Αυτό το στοιχείο εξασφαλίζει ότι μια κλάση είναι προσβάσιμη και από έξω.
- `static`: Αυτό το μέρος δηλώνει τη μέθοδο ως στατική, πράγμα που σημαίνει ότι μπορεί να υπάρχει χωρίς να έχει δημιουργηθεί εκ των προτέρων ένα αντικείμενο μιας συγκεκριμένης κλάσης.
- `void`: Αυτό εξασφαλίζει ότι η μέθοδος `main()` στη Java δεν χρειάζεται να επιστρέψει μια τιμή. `main`: Αυτό χρησιμοποιεί η Java Virtual Machine για να αναγνωρίσει τη μέθοδο όταν εκτελεί ένα πρόγραμμα.
- `String[] args`: Πρόκειται για έναν πίνακα όπου αποθηκεύονται και λαμβάνονται τα επιχειρήματα της γραμμής εντολών.

## Γιατί είναι σημαντικά τα επιμέρους στοιχεία του `main()`;

Για να κατανοήσουμε καλύτερα πώς λειτουργεί η μέθοδος Java `main()` και γιατί όλα τα στοιχεία είναι τόσο σημαντικά, θα τα εξετάσουμε ξεχωριστά στις επόμενες ενότητες. Το πιο σημαντικό είναι ότι θα σας δείξουμε τι συμβαίνει αν **λείπει μέρος της υπογραφής**. Για να το κάνουμε αυτό, θα επιλέξουμε ένα πολύ απλό παράδειγμα κώδικα, το οποίο θα εκτυπώσουμε με την εντολή Java `System.out.println`.

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

Όταν εκτελέσετε αυτόν τον κώδικα, θα λάβετε την ακόλουθη έξοδο:

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

### `public`

`public` λειτουργεί ως προσδιοριστής πρόσβασης και σηματοδοτεί στην εικονική μηχανή Java (Java Virtual Machine) **πού εκτελείται το αντίστοιχο πρόγραμμα**. Υπάρχουν και άλλοι τροποποιητές πρόσβασης, όπως default, private και protected. Ωστόσο, αν τους χρησιμοποιήσετε με τη μέθοδο `main()` στη Java, θα λάβετε ένα μήνυμα σφάλματος:

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

Το αντίστοιχο ζήτημα είναι:

```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
```

Αυτό το μήνυμα σφάλματος υποδεικνύει ότι δεν υπάρχει δημόσια πρόσβαση στη μέθοδο.

### `static`

Η λέξη-κλειδί `static` επιβεβαιώνει ότι η μέθοδος που χρησιμοποιείται είναι στατική. Αυτό σημαίνει ότι μπορεί να χρησιμοποιηθεί **ανεξάρτητα από τις περιπτώσεις της κλάσης**. Εάν αφαιρέσετε αυτό το στοιχείο, ο κώδικας θα έχει την εξής μορφή:

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

Εδώ, λαμβάνετε επίσης ένα μήνυμα σφάλματος:

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

### `void`

`void` είναι μια λέξη-κλειδί που καθορίζει ότι η μέθοδος `main()` στη Java **δεν πρέπει να επιστρέφει καμία τιμή**. Δεδομένου ότι `main()` είναι το σημείο έναρξης και λήξης ενός προγράμματος στη Java, η απόδοση είναι περιττή. Έτσι φαίνεται ο κώδικας χωρίς `void`:

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

Αυτό είναι το μήνυμα σφάλματος που λαμβάνετε αν παραλείψετε το `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`

Για κάθε πρόγραμμα σε Java, η JVM αναζητά πρώτα τον αναγνωριστικό `main`. Αυτός υποδεικνύει **πού πρέπει να ξεκινήσει και να τελειώσει η εκτέλεση**. Μόλις η μέθοδος `main()` σε Java ολοκληρώσει την εκτέλεσή της, το πρόγραμμα τερματίζεται. Αυτός είναι ο λόγος για τον οποίο η υπογραφή δεν πρέπει ποτέ να αλλάξει ή να προστεθεί. Ακολουθεί ένα παράδειγμα για το πώς μοιάζει μια αλλαγή στην υπογραφή:

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

Δεδομένου ότι η JVM δεν μπορεί να βρει τον αναγνωριστικό, θα τερματίσει το πρόγραμμα άμεσα και θα εμφανίσει το ακόλουθο μήνυμα σφάλματος:

```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` αντιστοιχεί στην κλάση **java.lang.String** και περιέχει δεδομένα που αποθηκεύει ως τιμές συμβολοσειράς. Εάν παραλείψετε αυτήν την προδιαγραφή, ο κώδικας θα έχει την εξής μορφή:

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

Χωρίς το όρισμα, η μέθοδος Java `main()` δεν μπορεί να εκτελεστεί. Ως αποτέλεσμα, θα λάβετε ξανά το ακόλουθο μήνυμα σφάλματος:

```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
```

## Ποιες είναι οι εναλλακτικές γραφές;

Το παράδειγμα κώδικα που εμφανίζεται εδώ γράφτηκε σύμφωνα με την πιο συνηθισμένη σύνταξη. Ωστόσο, μπορείτε εύκολα να το προσαρμόσετε για να έχετε καλύτερη εικόνα. Για παράδειγμα, μπορείτε να τοποθετήσετε τις αγκύλες αμέσως μετά `args`. Έτσι θα φαίνεται:

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

Μπορείτε επίσης να αποθηκεύσετε ορίσματα ως μεταβλητά ορίσματα (varargs). Για να το κάνετε αυτό, πρέπει να χρησιμοποιήσετε μια έλλειψη:

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

Tip Μπορείτε να βρείτε μια σειρά από άλλα άρθρα σχετικά με την Java στον Ψηφιακό Οδηγό μας. Μπορείτε να διαβάσετε για [τη σύγκριση μεταξύ Java και JavaScript](https://www.ionos.com/el-gr/digitalguide/istoselides/anaptyxi-istoselidon/java-enanti-javascript/) ή να μάθετε περισσότερα για τους τελεστές Java.


This is a markdown version of: [https://www.ionos.com/el-gr/digitalguide/istoselides/anaptyxi-istoselidon/methodos-java-main/](https://www.ionos.com/el-gr/digitalguide/istoselides/anaptyxi-istoselidon/methodos-java-main/) for AI/LLM consumption.