Add field to class
Hej!
Uppgiften är:
What would you have to do to add a new field, for example one called `name`, to
a `Circle` object?
Jag antar att de menar att man ska lägga till ett field till en klass och inte till ett redan skapat objekt, så att man kan skapa ett cirkel-objekt med ett name-field.
Men hur gör man det? Går det ens?
Jag tror du har rätt i vad uppgiften menar. Tror frågan vill att man gör en subklass. Om man har en klass Circle. Då kan man göra en subklass till Circle som har ett name-field. Om det inte är det vet jag inte.
Aerius skrev:Jag tror du har rätt i vad uppgiften menar. Tror frågan vill att man gör en subklass. Om man har en klass Circle. Då kan man göra en subklass till Circle som har ett name-field. Om det inte är det vet jag inte.
Ok tack! Så man kan inte ändra koden för klassen?
Om du har klass-filen så du kan öppna den i en editor kan du göra vilka ändringar du vill. Men du kanske inte har klassfilerna, utan bara byte-filerna (de kompilerade java-filerna), då går det inte att ändra i klassfilerna. Om du har klass-filen då kan du skriva en constructor som tar ett name-field. Det känns som constructor alternativet är rätt nu. Annars vet jag inte.
Aerius skrev:Om du har klass-filen så du kan öppna den i en editor kan du göra vilka ändringar du vill. Men du kanske inte har klassfilerna, utan bara byte-filerna (de kompilerade java-filerna), då går det inte att ändra i klassfilerna. Om du har klass-filen då kan du skriva en constructor som tar ett name-field. Det känns som constructor alternativet är rätt nu. Annars vet jag inte.
Ok, men man kan göra en subklass till Circle som har ett name-field utan att ha klassfilerna?
Ja, det kan man göra. Ett sätt är arv, innebär att subklassen ärver klassen Circle. Ett annat sätt är komposition (composition), innebär att subklassen har ett Circle-field att använda när Circle metoderna behövs.