C# COMPLETE COURSE

image description

ΕΝΟΤΗΤΑ 15 - PERFORMING CALCULATIONS WITH OBJECT FIELDS

INTRODUCTION

Σε αυτό το δωρεάν μάθημα C# θα δούμε πως, από την στιγμή που έχουμε δημιουργήσει αντικείμενα, μπορούμε να εκτελέσουμε αριθμητικές πράξεις με τις τιμές που περιέχουν τα fields των αντικειμένων. Αν και η θεωρία σας είναι ήδη γνωστή, εμείς απλά θα την εφαρμόσουμε στο δικό μας πρακτικό παράδειγμα.

RESET ALL PREVIOUS CHANGES

Πριν προχωρήσουμε στην θεωρία του σημερινού μαθήματος, ας αναιρέσουμε όλες εκείνες τις αλλαγές που κάναμε στο solution στην τελευταία ενότητα για να καταλάβουμε τους access modifiers.

Όπως γνωρίζετε ήδη, έχουμε ένα solution το οποίο περιέχει δύο projects. Το ένα project, με όνομα ClassLibrary1, περιέχει την κλάση Product.

Product.cs

Επίσης περιέχει και το project με το όνομα ClassesAndFields μέσα στο οποίο βρίσκεται η class Program από την οποία ξεκινάει η εκτέλεση του προγράμματος μας.

Program.cs

Δωρεάν Μαθήματα C#

Output

Δωρεάν Μαθήματα C#

PERFORMING CALCULATIONS WITH FIELDS

Το κάθε ένα από τα αντικείμενα που έχουμε δημιουργήσει περιγράφει τα χαρακτηριστικά ενός προιόντος. Το αντικείμενο product1 περιγράφει Mobile προιόντα ενώ το product2 περιγράφει Laptops. Ένα από τα χαρακτηριστικά (ή field) των αντικειμένων είναι το quantityInStock που περιγράφει πόσα κομμάτια από το εκάστοτε προιόν υπάρχουν διαθέσιμα ακόμα στην αποθήκη. Στο παράδειγμά μας, το Mobile έχει 1200 κομμάτια ακόμα διαθέσιμα ενώ το Laptop έχει 3400.

Κάποια στιγμή, θα επιθυμούσαμε, εκτός από το να έχουμε πρόσβαση στις τιμές των fields του κάθε αντικειμένου, να μπορούμε να συνδυάσουμε αυτές τις τιμές για να βγάλουμε χρήσιμα συμπεράσματα για την κάτασταση του business που τρέχουμε. Πιο συγκεκριμένα, θα επιθυμούσαμε να γνωρίζουμε πόσα συνολικά κομμάτια από όλα τα προιόντα είναι διαθέσιμα στην αποθήκη μας. Γνωρίζουμε ήδη πόσα κομμάτια έχουμε ανά προιόν αλλά πως μπορούμε να τα προσθέσουμε και να πάρουμε το άθροισμα τους;

Σε αυτό το σημείο αν καταλάβετε τον τρόπο σκέψης που θα αναλύσουμε αμέσως τώρα, τότε στην ουσία έχετε καταλάβει και την βάση του αντικειμενοστραφή προγραμματισμού. Όπως λοιπόν ηδη έχουμε αναφέρει, κάθε field είναι αφιερώμένο σε ένα και μοναδικό αντικείμενο. Το quantityInStock του product1, δεν γνωρίζει ούτε έχει και καμία σχέση με το quantityInStock του product2 αφού ανήκουν σε διαφορετικά αντικείμενα και τα ίδια τα αντικείμενα βρίσκονται σε διαφορετικές τοποθεσίες στην μνήμη. Όμως αυτό που μας ενδιαφέρει είναι να γνωρίζουμε την τιμή που έχει το field σε κάποια χρονική στιγμή. Μπορούμε να πάρουμε πολύ εύκολα αυτή τη πληροφορία από το κάθε αντικείμενο αν γράψουμε το όνομα του αντικειμένου, τελεία, και το όνομα του field. Αυτό που θα λάβουμε πίσω σαν αποτέλεσμα είναι ένας αριθμός αφού το data type του συγκεκριμένου field είναι int με βάση τον ορισμό του στην κλάση Product. Οπότε, σε αυτό το σημείο σκεφτόμαστε λογικά και απλά και ζητάμε να γνωρίζουμε την τιμή του quantityInStock σε κάθε αντικείμενο. Αφού λάβουμε τις τιμές, μπορούμε να τις προσθέσουμε και το αποτέλεσμα να το αναθέσουμε σε μια καινούργια μεταβλητή.

Μπορούμε λοιπόν να προσθέσουμε τις ακόλουθες τρεις γραμμές κώδικα στο τέλος του Program.cs αρχείου

Δωρεάν Μαθήματα C#

Η μεταβλητή totalQuantity δεν ανήκει σε κανένα αντικείμενο, αλλά είναι μια τοπική μεταβλητή που έχει οριστεί μέσα στη μέθοδο Main. Όταν εκτελείται αυτή η γραμμή κώδικα, κάθε field θα αντικατασταθεί με την τιμή την οποία περιέχει και στο τέλος θα γίνει αριθμητική πρόσθεση όλων των τιμών. Αυτή τη λογική και δυνατότητα, όσο και απλή και αν ακούγεται θα την χρησιμοποιούμε συνέχεια στα προγράμματα μας όχι μόνο με fields αλλά και με μεθόδους όπως θα μάθουμε σε μελλοντικό δωρεάν μάθημα C#.

Ο κώδικας της κλάσης Program.cs έχει αλλάξει ως εξής:

Program.cs

Output

Δωρεάν Μαθήματα C#

ΕΙΣΗΓΗΤΗΣ

Merry Jhonson

Μιχάλης Κασάπογλου

Ο Μιχάλης Κασάπογλου, είναι ένας από τους πιο έμπειρους τεχνικούς εκπαιδευτές στον χώρο του προγραμματισμού με πάνω από 20 χρόνια εμπειρία. Έχει εργαστεί σαν IT Operations Manager, Senior Programmer, και Training Team Leader ενώ κατέχει και αρκετές πιστοποιήσεις που καλύπτουν ένα μεγάλο φάσμα τεχνολογιών στο προγραμματισμό, σε βάσεις δεδομένων και cloud. Στον ελεύθερο του χρόνο διατηρεί ένα τεχνολογικό blog στο οποίο θα βρείτε αρκετά δωρεάν μαθήματα προγραμματισμού για αρχάριους.

loader