CrisCrisCris Δημοσ. 15 Μαΐου 2016 Δημοσ. 15 Μαΐου 2016 Καλησπέρα παιδιά Θέλω από τη μέθοδο getAge η οποία υπολογίζει την ηλικία κάποιου να την βάλω στη μέθοδο SinolikoKostos ώστε να υπολογίζω το κόστος μιας υπηρεσίας ανάλογα με την ηλικία κάποιου * 2 συν το σταθερό κόστος που είναι 50. Έχω φάει αρκετό καιρό αλλά δεν μπορώ να βρώ πως θα βγάλω το αποτέλεσμα από την getAge για να μπορεί να εμφανιστεί στη SinolikoKostos. Μήπως μπορείται να βοηθήσετε; public int getAge(){ Calendar now = Calendar.getInstance(); return (now.get(Calendar.YEAR) - etos_gennisis); } public static int SinolikoKostos(){ return (50 + (2 *(/*ilikia*/) ); }
defacer Δημοσ. 15 Μαΐου 2016 Δημοσ. 15 Μαΐου 2016 Υποθέτω δοκίμασες το προφανές και δεν δούλεψε. Άντε και δεν έκατσες να ψάξεις τι γίνεται με το error που σου έδωσε, τουλάχιστον να μας το έγραφες αντί να μας αφήνεις να μαντέψουμε; Anyway στην προκειμένη είναι προφανές τι συμβαίνει. Γιατί η SinolikoKostos είναι static?
stavrosyomafias Δημοσ. 15 Μαΐου 2016 Δημοσ. 15 Μαΐου 2016 Αρχικά πρέπει να αφαιρέσεις το static από την SinolikoKostos(), διότι μια static μεταβλητή, πρέπει να διαχειρίζεται μόνο μια περίπτωση τιμής και αν έχει μεθόδους μέσα, να είναι και αυτές static προφανώς. Έπειτα στην θέση του /*ilikia*/ θα βάλεις το getAge(). EDIT: Υποθέτω δοκίμασες το προφανές και δεν δούλεψε. Άντε και δεν έκατσες να ψάξεις τι γίνεται με το error που σου έδωσε, τουλάχιστον να μας το έγραφες αντί να μας αφήνεις να μαντέψουμε; Anyway στην προκειμένη είναι προφανές τι συμβαίνει. Γιατί η SinolikoKostos είναι static? Sorry defacer, υποθέτω το γράφαμε μαζί το post. 2
CrisCrisCris Δημοσ. 15 Μαΐου 2016 Μέλος Δημοσ. 15 Μαΐου 2016 Υποθέτω δοκίμασες το προφανές και δεν δούλεψε. Άντε και δεν έκατσες να ψάξεις τι γίνεται με το error που σου έδωσε, τουλάχιστον να μας το έγραφες αντί να μας αφήνεις να μαντέψουμε; Anyway στην προκειμένη είναι προφανές τι συμβαίνει. Γιατί η SinolikoKostos είναι static? Σόρρυ αλλά δεν ξέρω τι είναι το προφανές. Πέρα από αυτό ευχαριστώ που απάντησες, το static δεν το χα πάρει χαμπάρι , εκ παραδρομής το έβαλα, η εκφώνηση δεν έλεγε κάτι για static. Αρχικά πρέπει να αφαιρέσεις το static από την SinolikoKostos(), διότι μια static μεταβλητή, πρέπει να διαχειρίζεται μόνο μια περίπτωση τιμής και αν έχει μεθόδους μέσα, να είναι και αυτές static προφανώς. Έπειτα στην θέση του /*ilikia*/ θα βάλεις το getAge(). EDIT: Sorry defacer, υποθέτω το γράφαμε μαζί το post. Ναι έχεις δίκιο για το static, καταλάθος το έβαλα. Το δοκίμαζα έτσι και δεν μου το έπαιρνε λόγω αυτού. Σ ευχαριστώ για την απάντηση. 1
defacer Δημοσ. 15 Μαΐου 2016 Δημοσ. 15 Μαΐου 2016 Σόρρυ αλλά δεν ξέρω τι είναι το προφανές. Έχεις γράψει μια method που επιστρέφει την ηλικία του κάποιου όταν την καλέσεις. Υποθέτω πριν μάθεις να γράφεις μεθόδους έμαθες πώς να τις καλείς. Το προφανές είναι να την καλέσεις εκεί που χρειάζεσαι την ηλικία του κάποιου. Έχω κάπου άδικο; 1
Alithinos Δημοσ. 15 Μαΐου 2016 Δημοσ. 15 Μαΐου 2016 public int SinolikoKostos() { int ilikia = getAge(); return (50 + (2 * ilikia ); } ή public int SinolikoKostos() { return (50 + (2 * getAge() ); } ή ακόμα public int SinolikoKostos(int ilikia) { return (50 + (2 * ilikia ); } όπου καλείς την SinolikoKostos σε μια τρίτη μέθοδο (πχ Main) και της περνάς ως argument την ηλικία. πχ public void ThirdMethod() { int age = getAge(); SinolikoKostos(age); } αλλά εδώ που τα λέμε, στη τρίτη μέθοδο θα μπορούσες να γράψεις και τούτο: public void ThirdMethod() { SinolikoKostos(getAge()); } Αυτό που είπε ο defacer Το προφανές είναι να την καλέσεις εκεί που χρειάζεσαι την ηλικία του κάποιου. και ο stavrosyomafias Έπειτα στην θέση του /*ilikia*/ θα βάλεις το getAge().
CrisCrisCris Δημοσ. 16 Μαΐου 2016 Μέλος Δημοσ. 16 Μαΐου 2016 public int SinolikoKostos() { int ilikia = getAge(); return (50 + (2 * ilikia ); } ή public int SinolikoKostos() { return (50 + (2 * getAge() ); } ή ακόμα public int SinolikoKostos(int ilikia) { return (50 + (2 * ilikia ); } όπου καλείς την SinolikoKostos σε μια τρίτη μέθοδο (πχ Main) και της περνάς ως argument την ηλικία. πχ public void ThirdMethod() { int age = getAge(); SinolikoKostos(age); } αλλά εδώ που τα λέμε, στη τρίτη μέθοδο θα μπορούσες να γράψεις και τούτο: public void ThirdMethod() { SinolikoKostos(getAge()); } Αυτό που είπε ο defacer και ο stavrosyomafias Έπειτα στην θέση του /*ilikia*/ θα βάλεις το getAge(). Είχα δοκιμάσει να την περάσω σαν argument αλλά και να βάλω απλά την μέθοδο getAge() κατευθείαν.Να σου πω την αλήθεια αν και μου πέρασε από το μυαλό δεν δοκίμασα με τρίτη μέθοδο αλλά με την SinolikoKostos να είναι static δεν νομίζω να το έπαιρνε. Σε ευχαριστώ για την απάντηση.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα