Ορισμός κλάσεις

Φτιάχνουμε το πρώτο μας πρόγραμμα

Ξεκινώντας τη γνωριμία μας με τις αντικειμενοστρεφείς έννοιες και τη γλώσσα προγραμματισμού Java, θα
αναλύσουμε ένα απλό πρόγραμμα.
Το πρόγραμμα λαμβάνει για ένα πλήθος υποθετικών προϊόντων (για όσα θέλει να καταχωρήσει ο
χρήστης), το όνομά τους, την τιμή τους και το σκορ τους, βάσει κάποιας κλίμακας αξιολόγησης. Μετά το
πέρας της καταχώρησης των στοιχείων το πρόγραμμα εκτυπώνει το "βέλτιστο" προϊόν, δηλαδή αυτό που
επιτυγχάνει τον καλύτερο λόγο σκορ/τιμή.
Όλος ο κώδικας του προγράμματος βρίσκεται μέσα στη μέθοδο main, η οποία πρέπει να υφίσταται σε
κάθε πρόγραμμα Java δεδομένου ότι από αυτήν ξεκινά πάντοτε η εκτέλεση του προγράμματος. Η μέθοδος
αυτή είναι στατική (static) και μπορεί να εκτελεστεί χωρίς να δημιουργήσουμε προηγουμένως κάποιο
αντικείμενο της κλάσης που την περιλαμβάνει. Στη συγκεκριμένη περίπτωση, η κλάση TestClass απλά
φιλοξενεί τη μέθοδο main και δεν αποτελεί μια τυπική κλάση που αναπαριστά κάποια κατηγορία
αντικειμένων.
Το πρώτο μας απλό πρόγραμμα (Κώδικας 1.1) , αν και γραμμένο στη γλώσσα προγραμματισμού Java, έχει
ελάχιστα αντικειμενοστρεφή στοιχεία. Όπως βλέπουμε, στο πρόγραμμα αυτό δεν ορίζουμε κάποια νέα
κλάση. Ωστόσο, αξιοποιούμε έτοιμες κλάσεις από τη βιβλιοθήκη της Java:
 Την κλάση String προκειμένου να δηλώσουμε μεταβλητές που δέχονται ως τιμές
αλφαριθμητικά.
 Την κλάση Scanner προκειμένου να δημιουργήσουμε ένα στιγμιότυπο-αντικείμενο που θα
δώσει στον χρήστη του προγράμματος τη δυνατότητα εισαγωγής δεδομένων από το
πληκτρολόγιο.
 Την κλάση System, η οποία περιλαμβάνει αρκετά έτοιμα προς χρήση αντικείμενα (πεδία κλάσης)
και μεθόδους. Μεταξύ αυτών, το προκαθορισμένο ρεύμα εισόδου (System.in) και εξόδου
(System.out) – τυπικά, το πληκτρολόγιο και η οθόνη αντίστοιχα.

 

import java.util.Scanner;
public class TestClass {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String best_name = “”;
double best_price = 1;
int best_score = 0;
boolean more = true;
while(more) {
String next_name;
double next_price;
int next_score;
System.out.println(“Please enter the product name: “);
next_name = input.nextLine();
System.out.println(“Please enter the product price: “);
next_price = input.nextDouble();
System.out.println(“Please enter the product score: “);
next_score = input.nextInt();
if(next_score/next_price > best_score/best_price) {
best_name = next_name;
best_price = next_price;
best_score = next_score;
}
System.out.println(“More data ? (1=YES, 2=NO)”);
int answer = input.nextInt();
if(answer != 1)
more = false;
input.nextLine();
}
System.out.println(“The best product is: “ + best_name);
System.out.println(“The best price is: “ + best_price);
System.out.println(“The best score is: “ + best_score);
}
}