Φωτογραφία ΑΛΕΞΑΝΔΡΟΣ ΜΩΡΑΙΤΗΣ
ασκηση 3
από ΑΛΕΞΑΝΔΡΟΣ ΜΩΡΑΙΤΗΣ - Tuesday, 1 May 2012, 7:42 PM
 
Η ερωτηση ειναι στην ουσια θα κανουμε σε μια αλλη κλαση

class propertiesDate
{
private int month;
public propertiesDate(int mm)
{
month = mm;

}
public int Month{
get
{
return month;
}

set
{
month = value;
}
}
}

και ο ελεγχος των τιμων?
 
Φωτογραφία Βασίλης Κόλιας
Απάντηση: ασκηση 3
από Βασίλης Κόλιας - Tuesday, 1 May 2012, 8:02 PM
 
Ναι στην ουσία έχεις υλοποιήσει το σκελετό παραπάνω.
Πρέπει να υλοποιήσεις τον constructor. Εδώ θέλει προσοχή γιατί η εκφώνηση λέει με δυο προαιρετικές παραμέτρους, τι σημαίνει αυτο;;;
Μέσα στον constructor πρέπει να κάνεις ελέγχους τιμών.

Επισης ζητούνται properties για κάθε πεδίο. Στα set θα πρέπει να γίνονται οι ίδιοι έλεγχοι με τον κατασκευαστή.

Θέλει και μια μέθοδο που απλώς θα τυπώνει τα τρια πεδια με συγκεκριμένο τρόπο.

Τέλος θα πρέπει να χρησιμοποιήσεις την κλάση μέσα από τη main. Θα πρέπει να φτιάξεις ένα αντικείμενό της, να θέσεις τιμές στα πεδία μέσα από τα properties και να τα εκτυπώσεις αμέσως μετα με τη μεθοδο.


Φωτογραφία ΑΛΕΞΑΝΔΡΟΣ ΜΩΡΑΙΤΗΣ
Απάντηση: ασκηση 3
από ΑΛΕΞΑΝΔΡΟΣ ΜΩΡΑΙΤΗΣ - Tuesday, 1 May 2012, 8:17 PM
 
1) 2 παραμετρους? αρα το ενα (year)θα ειναι αρχικοποιημενο απο τον κατασκευαστη?

2)Μεθοδο δεν χρειαζετε αφου θα τυπωνονται απο την αλλη κλαση στην main σωστα?
Φωτογραφία Βασίλης Κόλιας
Απάντηση: ασκηση 3
από Βασίλης Κόλιας - Tuesday, 1 May 2012, 8:19 PM
 
1) έχουμε 3 πεδία, μπορείς να φτιαξεις έναν κατασκευαστή με οποιοδήποτε συνδυασμό παραμέτρων που να ικανοποιεί την προδιαγραφή οι 2 παράμετροι να είναι προαιρετικές. Η λέξη προαιρετικές τι σημαίνει;;

2) Αφού το ζητάει η προδιαγραφή της κλάσης, γιατί να μην την υλοποίσεις;;;

3) Φυσικά και θα κάνεις ελέγχους
Φωτογραφία Δημήτρης Ντούσκας
Απάντηση: ασκηση 3
από Δημήτρης Ντούσκας - Wednesday, 2 May 2012, 3:44 PM
 
Καλησπέρα αν γίνεται θα ήθελα λίγη βοήθεια για την άσκηση. Μέχρι στιγμής έχω δημιουργήσει 3 prvate πεδία(day,month,year) μέσα στην κλάση, έναν κατασκευαστή με 3 παραμέτρους(day=1,month=1 και year) ο οποίος αρχικοποιεί τα day,month,year. Μετά έφτιαξα properties με get{return day}set{day=1} , get{return month}set{month=1} και get{return year}set{year=value} .Mετά έχω κολλήσει,δεν ξέρω τι κάνω. Έχω φτιάξει 3 μεθόδους με το ίδιο όνομα που επιστρεφουν τις τιμές(το οποίο μάλλον είναι λάθος)...δεν ξέρω τι κάνω μετά
Φωτογραφία Βασίλης Κόλιας
Απάντηση: ασκηση 3
από Βασίλης Κόλιας - Wednesday, 2 May 2012, 4:02 PM
 
Αφού έχεις φτιαξει τον κατασκευαστή και τις ιδιότητες σου μένει μια μέθοδος (και όχι 3) που απλώς θα εκτυπώνει τις τιμες των πεδίων. Μετά θα φτιαξεις μια main μεθοδο θα ορισεις ενα αντικειμενο της κλάσης που εφτιαξες και θα καλεσεις ότι μπορεί να καλεστει. Αυτό ήταν.
Φωτογραφία Δημήτρης Ντούσκας
Απάντηση: ασκηση 3
από Δημήτρης Ντούσκας - Wednesday, 2 May 2012, 4:24 PM
 
Έκανα αυτό και μου εμφανίζει λάθος:(η κλάση μου έχει όνομa Date)
void PrintDate()
{
Console.WriteLine(day + "/" + month + "/" + year);
}
static void Main(string[] args)
{
Date Hmeromhnia = new Date();
Hmeromhnia.PrintDate();
}
Mου εμφανίζει αυτό το σφάλμα στο new Date():
'Example.Date' does not contain a constructor that takes 0 arguments

Φωτογραφία Βασίλης Κόλιας
Απάντηση: ασκηση 3
από Βασίλης Κόλιας - Wednesday, 2 May 2012, 4:29 PM
 
Το μήνυμα του σφάλματος είναι περιγραφικό... Έχεις δηλώσει constructor χωρίς παραμέτρους; Αν δεν έχεις γιατί τον καλείς; Ποιον constructor έχεις δηλώσει και πως μπορείς να τον καλέσεις;
Φωτογραφία Δημήτρης Ντούσκας
Απάντηση: ασκηση 3
από Δημήτρης Ντούσκας - Wednesday, 2 May 2012, 4:32 PM
 
public Date(int newYear, int newMonth = 1, int newDay = 1)
{
month = newMonth;
day = newDay;
year = newYear;
}
αυτόν τον constructor δήλωσα(έβαλα προαιρετικό παράμετρο το DAy kai to Month με τισ μικρότερεσ τιμές που μπορούν να πάρουν)
Φωτογραφία Βασίλης Κόλιας
Απάντηση: ασκηση 3
από Βασίλης Κόλιας - Wednesday, 2 May 2012, 4:41 PM
 
Ωραία. Χρησιμοποίησέ τον.
Φωτογραφία Δημήτρης Ντούσκας
Απάντηση: ασκηση 3
από Δημήτρης Ντούσκας - Wednesday, 2 May 2012, 4:59 PM
 
Σωστά..Aπλά έπρεπε να βάλω τιμή/τιμές...Ευχαριστώ