Sobes.tech
Junior

Τι σημαίνει ο όρος 'στατικός';

sobes.tech AI

Απάντηση από AI

Στον προγραμματισμό, ο όρος "στατικός" μπορεί να αναφέρεται σε διάφορες έννοιες, αλλά συχνότερα σημαίνει κάτι που σχετίζεται με τον χρόνο μεταγλώττισης ή την ανήκει σε μια κλάση, και όχι σε ένα συγκεκριμένο αντίγραφο αντικειμένου.

  • Στατική Δέσμευση (Static Binding): Ο ορισμός της καλούμενης λειτουργίας γίνεται κατά τη διάρκεια της μεταγλώττισης, όχι κατά την εκτέλεση. Αυτό είναι το αντίθετο της δυναμικής δέσμευσης.
  • Στατικές Μεταβλητές/Πεδία (Static Variables/Fields): Μεταβλητές που ανήκουν στην κλάση, όχι σε ένα συγκεκριμένο αντικείμενο αυτής. Όλα τα αντικείμενα μιας ίδιας κλάσης μοιράζονται την ίδια στατική μεταβλητή. Εγκαθίστανται κατά τη φόρτωση της κλάσης και υπάρχουν σε ένα μόνο αντίγραφο.
  • Στατικές Μέθοδοι (Static Methods): Μέθοδοι που ανήκουν στην κλάση, όχι σε ένα συγκεκριμένο αντικείμενο. Μπορούν να καλούνται άμεσα μέσω του ονόματος της κλάσης χωρίς να δημιουργηθεί ένα αντίγραφο. Οι στατικές μέθοδοι δεν έχουν πρόσβαση σε μη-στατικά πεδία της κλάσης, καθώς δεν σχετίζονται με ένα συγκεκριμένο αντίγραφο.
  • Στατική Ανάλυση Κώδικα (Static Code Analysis): Ανάλυση του πηγαίου κώδικα του προγράμματος χωρίς να το εκτελέσετε. Χρησιμοποιείται για την ανίχνευση πιθανών σφαλμάτων, ευπάθειας ή παραβιάσεων των προτύπων κωδικοποίησης σε πρώιμο στάδιο ανάπτυξης.

Στο πλαίσιο του QA, η στατική ανάλυση και οι δοκιμές κώδικα αποτελούν σημαντικό μέρος της διαδικασίας, βοηθώντας στη βελτίωση της ποιότητας πριν από το στάδιο των δυναμικών δοκιμών και εκτέλεσης του κώδικα.

Παράδειγμα στατικού πεδίου και μεθόδου σε Java:

class Counter {
    static int count = 0; // Στατικό πεδίο

    Counter() {
        count++;
    }

    static void displayCount() { // Στατική μέθοδος
        System.out.println("Αριθμός περιπτώσεων: " + count);
    }
}

// Χρήση
// Counter obj1 = new Counter();
// Counter obj2 = new Counter();
// Counter.displayCount(); // Κλήση της στατικής μεθόδου μέσω του ονόματος της κλάσης