Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα παιδιά

 

Θέλω από τη μέθοδο 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*/) );

	}
	
Δημοσ.

Υποθέτω δοκίμασες το προφανές και δεν δούλεψε. Άντε και δεν έκατσες να ψάξεις τι γίνεται με το error που σου έδωσε, τουλάχιστον να μας το έγραφες αντί να μας αφήνεις να μαντέψουμε;

 

Anyway στην προκειμένη είναι προφανές τι συμβαίνει. Γιατί η SinolikoKostos είναι static?

Δημοσ.

Αρχικά πρέπει να αφαιρέσεις το static από την SinolikoKostos(), διότι μια static μεταβλητή, πρέπει να διαχειρίζεται μόνο μια περίπτωση τιμής και αν έχει μεθόδους μέσα, να είναι και αυτές static προφανώς. Έπειτα στην θέση του /*ilikia*/  θα βάλεις το getAge().

 

EDIT:

Υποθέτω δοκίμασες το προφανές και δεν δούλεψε. Άντε και δεν έκατσες να ψάξεις τι γίνεται με το error που σου έδωσε, τουλάχιστον να μας το έγραφες αντί να μας αφήνεις να μαντέψουμε;

 

Anyway στην προκειμένη είναι προφανές τι συμβαίνει. Γιατί η SinolikoKostos είναι static?

Sorry defacer, υποθέτω το γράφαμε μαζί το post.

  • Like 2
Δημοσ.

Υποθέτω δοκίμασες το προφανές και δεν δούλεψε. Άντε και δεν έκατσες να ψάξεις τι γίνεται με το error που σου έδωσε, τουλάχιστον να μας το έγραφες αντί να μας αφήνεις να μαντέψουμε;

 

Anyway στην προκειμένη είναι προφανές τι συμβαίνει. Γιατί η SinolikoKostos είναι static?

 

Σόρρυ αλλά δεν ξέρω τι είναι το προφανές.

Πέρα από αυτό ευχαριστώ που απάντησες, το static δεν το χα πάρει χαμπάρι , εκ παραδρομής το έβαλα, η εκφώνηση δεν έλεγε κάτι για static.

 

Αρχικά πρέπει να αφαιρέσεις το static από την SinolikoKostos(), διότι μια static μεταβλητή, πρέπει να διαχειρίζεται μόνο μια περίπτωση τιμής και αν έχει μεθόδους μέσα, να είναι και αυτές static προφανώς. Έπειτα στην θέση του /*ilikia*/  θα βάλεις το getAge().

 

EDIT:

Sorry defacer, υποθέτω το γράφαμε μαζί το post.

Ναι έχεις δίκιο για το static, καταλάθος το έβαλα. Το δοκίμαζα έτσι και δεν μου το έπαιρνε λόγω αυτού. Σ ευχαριστώ για την απάντηση. :-)

 

  • Like 1
Δημοσ.

Σόρρυ αλλά δεν ξέρω τι είναι το προφανές.

 

Έχεις γράψει μια method που επιστρέφει την ηλικία του κάποιου όταν την καλέσεις. Υποθέτω πριν μάθεις να γράφεις μεθόδους έμαθες πώς να τις καλείς. Το προφανές είναι να την καλέσεις εκεί που χρειάζεσαι την ηλικία του κάποιου. Έχω κάπου άδικο;

  • Like 1
Δημοσ.

        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().
Δημοσ.

        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 δεν  νομίζω να το έπαιρνε. Σε ευχαριστώ για την απάντηση. :-)

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...