OppgaveA Klassen Naeringsmiddel skal ha tre objektvariabler for å lagre hhv. antall gram karbohydrater, proteiner og fett i hundre gram av næringsmiddelet. Lag en konstruktør. Lag tre finnmetoder. Eksempel: Et brødobjekts objektvariabler vil inneholde hhv. 60, 8 og 1. class Naeringsmiddel { public static final double kcalPerGramKarbohydrat = 3.75; public static final double kcalPerGramProtein = 4; public static final double kcalPerGramFett = 9; private double karbohydrater; // i gram per 100 gram matvare private double proteiner; // i gram per 100 gram matvare private double fett; // i gram per 100 gram matvare public Naeringsmiddel(double startKarbohydrater, double startProteiner, double startFett) { karbohydrater = startKarbohydrater; proteiner = startProteiner; fett = startFett; } public double finnKarbohydrater() { return karbohydrater; } public double finnProteiner() { return proteiner; } public double finnFett() { return fett; } OPPGAVE B Lag en Naeringsmiddel-metode finnKcalIKarbohydrater() som returnerer antall kcal i karbohydratene i hundre gram av næringsmiddelet. Lag også lignende metoder for proteiner og fett. Eksempel: For brød skal finnKcalIKarbohydrater() returnere 225 kcal fordi 60 * 3,75 = 225 (det er 60 gram karbohydrater i hundre gram brød, og hvert gram karbohydrat inneholder 3,75 kcal). public double finnKcalIKarbohydrater() { return karbohydrater * kcalPerGramKarbohydrat; } public double finnKcalIProteiner() { return proteiner * kcalPerGramProtein; } public double finnKcalIFett() { return fett * kcalPerGramFett; } OPPGAVE C Lag en Naeringsmiddel-metode finnKcalTotalt() som returnerer totalt antall kcal i hundre gram av næringsmiddelet. Eksempel: Hundre gram brød inneholder 266 kcal fordi når vi summerer kcal i hhv. karbohydrater, proteiner og fett får vi 60 * 3,75 + 8 * 4 + 1 * 9 = 225 + 32 + 9 = 266. public double finnKcalTotalt() { return finnKcalIKarbohydrater() + finnKcalIProteiner() + finnKcalIFett(); } } // Naeringsmiddel OPPGAVE D Du skal nå lage en klasse Matrett som skal representere et visst kvantum av et næringsmiddel. F.eks. kan femti gram brød anses som en matrett. Klassen Matrett skal ha to objektvariabler: En objektvariabel av type Naeringsmiddel og en objektvariabel for matrettens vekt (i gram). Lag en Matrett-konstruktør. Lag en finnmetode for vekten. class Matrett { private Naeringsmiddel innhold; private double vekt; // i gram // Velger her at karbohydrater etc. må oppgis for 100 gram av næringsmiddelet public Matrett(double startKarbohydrater, double startProteiner, double startFett, double startVekt) { innhold = new Naeringsmiddel(startKarbohydrater, startProteiner, startFett); vekt = startVekt; } public double finnVekt() { return vekt; } OPPGAVE E Lag en Matrett-metode settVekt() som gjør det mulig å endre matrettens vekt. public void settVekt(double nyVekt) { vekt = nyVekt; } OPPGAVE F Lag en Matrett-metode finnKarbohydrater() som returnerer antall gram karbohydrater i matretten. Tips: Karbohydratinnholdet i hundre gram av næringsmiddelet er kjent, - del denne kjente størrelsen på hundre og gang med vekten; f.eks. er det 30 gram karbohydrater i 50 gram brød - (60 / 100) * 50 = 30. Lag også lignende metoder for proteiner og fett. public double finnKarbohydrater() { return innhold.finnKarbohydrater() / 100 * vekt; } public double finnProteiner() { return innhold.finnProteiner() / 100 * vekt; } public double finnFett() { return innhold.finnFett() / 100 * vekt; } OPPGAVE G Lag en Matrett-metode public Matrett bland(Matrett annen): Ved å blande sammen matretten med den matretten som er representert ved annen-objektet, skal man lage en ny matrett, og denne nye matretten skal returneres. Eksempel: 50 gram brød med 5 gram olivenolje er en ny matrett på 55 gram og med et visst energiinnhold. // Blander sammen to matretter til en ny matrett public Matrett bland(Matrett annen) { double fraNyVektTil100Gram = 100 / (vekt + annen.finnVekt()); double sumKarbohydrater = finnKarbohydrater() + annen.finnKarbohydrater(); double karbohydraterINyttNaeringsmiddel = sumKarbohydrater * fraNyVektTil100Gram; double sumProteiner = finnProteiner() + annen.finnProteiner(); double proteinerINyttNaeringsmiddel = sumProteiner * fraNyVektTil100Gram; double sumFett = finnFett() + annen.finnFett(); double fettINyttNaeringsmiddel = sumFett * fraNyVektTil100Gram; return new Matrett(karbohydraterINyttNaeringsmiddel, proteinerINyttNaeringsmiddel, fettINyttNaeringsmiddel, vekt + annen.finnVekt()); } } // Matrett // Ekstra klasse: class MatrettTest { public static void main(String[] args) { Naeringsmiddel broed100 = new Naeringsmiddel(60, 8, 1); System.out.println("Kcal fra karbohydrater i brød: " + broed100.finnKcalIKarbohydrater()); System.out.println("Kcal fra proteiner i brød: " + broed100.finnKcalIProteiner()); System.out.println("Kcal fra fett i brød: " + broed100.finnKcalIFett()); System.out.println("Kcal totalt i brød: " + broed100.finnKcalTotalt()); System.out.println(); Matrett broed = new Matrett(60, 8, 1, 50); System.out.println("50 gram broed inneholder karbohydrater: " + broed.finnKarbohydrater()); System.out.println("50 gram broed inneholder proteiner: " + broed.finnProteiner()); System.out.println("50 gram broed inneholder fett: " + broed.finnFett()); System.out.println(); Matrett olje = new Matrett(0, 0, 100, 5); System.out.println("5 gram olje inneholder karbohydrater: " + olje.finnKarbohydrater()); System.out.println("5 gram olje inneholder proteiner: " + olje.finnProteiner()); System.out.println("5 gram olje inneholder fett: " + olje.finnFett()); System.out.println(); Matrett bruschetta = broed.bland(olje); System.out.println("Broed med olje veier " + bruschetta.finnVekt()); System.out.println("Broed med olje inneholder karbohydrater: " + bruschetta.finnKarbohydrater()); System.out.println("Broed med olje inneholder proteiner: " + bruschetta.finnProteiner()); System.out.println("Broed med olje inneholder fett: " + bruschetta.finnFett()); } } // MatrettTest