sabbacusMedlem sedan juli 2002630 inlägg Tjipp.
Sitter här och knåpar lite och min kompilator klagar just nu bara över en endaste sak och jag går bet på felet. Jag _tror_ att felet är att jag anropar en metod i en instansierad klass på fel sätt, men då jag är nybörjare har jag ingen aning egentlgien. Lite hjälp vore önskvärt.
Kod:
long total_days=0;
// year, month, day är integer
// Instansierar nytt kalenderobjekt
Calendar calendar = new GregorianCalendar(year, month, day);
// Instansierar ett objekt, tror jag iaf
Calendar old_date_calendar = new MyCalendar();
// days_since är en funktion i MyCalendar som returnerar en long
total_days = old_date_calendar.days_since(calendar);
Felet kompilatorn ger mig är "cannot resolve symbol" på days_since. Detta är dock inte det egentlige felet då klassen MyCalendar är prövad och fungerande kod.
Jag anser att felet ligger antignen i
- instansieringen av old_date_calendar, alternativt
- old_date_calendar...
Gissningsvis är detta värsta nybörjarfelet men då det är mitt första objektorienterade program så... ja :-)
Lite hjälp vore önskvärt.
/Magnus
ViktorMedlem sedan aug. 20021 752 inlägg Jag antar att MyCalendar() ärver av Calendar (eller implementerar Calendar), eller?
Calendar old_date_calendar = new MyCalendar();
Här skapar du en ny instans av klassen MyCalendar och konverterar den direkt till klassen Calendar, och klassen Calendar har ingen medlems funktion som heter "days_since()".
För att det ska fungera behöver du arbeta med ett MyCalendar objekt och inte Calendar.
MyCalendar old_date_calendar=new MyCalendar();
ellse kanske (lite osäker om detta fungerar)
Calendar old_date_calendar = new MyCalendar();
total_days = ((MyCalendar)old_date_calendar).days_since(calendar);
dvs här konverterar du tillbaka objektet till att vara ett objekt av typen MyCalendar, och får därigenom tillgång till funktionen days_since.
/Viktor
sabbacusMedlem sedan juli 2002630 inlägg Tjipp
Jag ändrade 'Calendar' i
Calendar old_date_calendar = new MyCalendar();
till 'MyCalendar' vilket således blidde
MyCalendar old_date_calendar=new MyCalendar();
Och då funkade hela programmet hur bra som helst. Och nu när jag vet vad jag gjort för fel så skäms jag nästan lite :-)
Tackar!