Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
prog1_12 [2020-05-18 19:25] Daniel Viström |
prog1_12 [2020-05-18 20:09] Daniel Viström |
||
---|---|---|---|
Line 12: | Line 12: | ||
1. | 1. | ||
- | I denna uppgift ska du skapa en klass **Calculator** som räknar med **positiva tal** samt ett huvudprogram som testar klassen. | + | I denna uppgift ska du skapa en klass **Calculator** som räknar med **positiva tal** samt ett huvudprogram som testar klassen.\\ \\ |
- | Klassen Calculator ska ha: | + | Klassen |
+ | * Ett **attribut** som håller reda på värdet. Det ska inte ska gå att komma åt värdet utifrån. | ||
+ | * En **konstruktor** som tar ett startvärde som parameter och sätter värdet som startvärdet. \\ Om parametern är negativ ska startvärdet bli noll. | ||
+ | * En metod **add($tal)** som adderar ett positivt tal till värdet. \\ Om talet är negativt ska värdet inte förändras. | ||
+ | * En metod **subtract($tal)** som drar bort ett positivt tal från värdet. \\ Resultatet ska bli noll om man försöker dra bort mer än vad som finns i attributet. \\ Om talet är negativt ska värdet inte förändras. | ||
+ | * En metod **getNumber()** som returnerar värdet på attributet. | ||
+ | \\ | ||
+ | **Huvudprogrammet: | ||
+ | - Skapa en Calculator med startvärdet -12. | ||
+ | - Skriv ut värdet.\\ \\ | ||
+ | - Skapa en ny Calculator med startvärdet 9. | ||
+ | - Skriv ut värdet på ny rad. | ||
+ | - Lägg till 4 till värdet på kalkylatorn. | ||
+ | - Skriv ut värdet på ny rad. | ||
+ | - Lägg till -3 till värdet på kalkylatorn. | ||
+ | - Skriv ut värdet på ny rad. | ||
+ | - Subtrahera 10 från värdet på kalkylatorn. | ||
+ | - Skriv ut värdet på ny rad. | ||
+ | - Subtrahera -3 från värdet på kalkylatorn. | ||
+ | - Skriv ut värdet på ny rad. | ||
+ | - Subtrahera 20 från värdet på kalkylatorn. | ||
+ | - Skriv ut värdet på ny rad. | ||
- | -Ett **attribut** som håller reda på värdet. Det ska inte ska gå att komma åt värdet utifrån.\\ | + | Om du gjort rätt borde svaret bli så här: |
- | * En **konstruktor** som tar ett startvärde som parameter och sätter värdet som startvärdet. | + | {{: |
- | Om parametern är negativ ska startvärdet bli noll.\\ | + | \\ |
- | * En metod **add($tal)** som adderar ett tal till värdet.\\ | + | 2. |
- | * En metod **subtract($tal)** som drar bort ett tal från värdet. Resultatet ska bli noll om | + | I denna uppgift ska du skapa en klass **Bensintank** som kan innehålla |
- | man försöker dra bort mer än vad som finns i attributet.\\ | + | |
- | * En metod **getNumber()** | + | |
- | **Huvudprogrammet:** | + | Klassen |
- | 1. Skapa en Calculator med startvärdet -12. | + | |
- | 2. Skriv ut värdet. | + | * Ett **attribut** som håller reda på det maximala antalet liter som ryms i tanken. Det ska inte gå att komma åt värdet utifrån. |
+ | * En **konstruktor** som tar en parameter. Denna anger antal liter som maximalt ryms i tanken. \\ Om parametern är negativ ska maximalt antal liter bli noll. \\ Antal liter bensin i tanken ska från början vara noll. | ||
+ | * En metod **tanka($liter)**som lägger till ett antal liter bensin i tanken. \\ Om det blir mer i tanken än det maximala så ska tanken innehålla maximala antalet liter. \\ Om $liter är negativ ska innehållet i tanken inte förändras. | ||
+ | * En metod **forbruka($liter)** som drar bort ett antal liter bensin från tanken. \\ Resultatet ska bli noll om man försöker dra bort mer än vad som finns i tanken. \\ Om $liter är negativ ska innehållet i tanken inte förändras. | ||
+ | * En metod **getLiter()** som returnerar antal liter i tanken. | ||
\\ | \\ | ||
- | 3. Skapa en ny Calculator med startvärdet 9. | + | **Huvudprogrammet: |
- | 4. Skriv ut värdet på ny rad. | + | - Skapa en Bensintank som maximalt rymmer 55 liter. |
- | 5. Lägg till 4 till värdet på kalkylatorn. | + | - Skriv ut antal liter bensin i tanken. |
- | 6. Skriv ut värdet på ny rad. | + | - Tanka 20 liter bensin. |
- | 7. Subtrahera 20 från värdet på kalkylatorn. | + | - Skriv ut antal liter bensin i tanken. |
- | 8. Skriv ut värdet på ny rad. | + | - Tanka -2 (minus två) liter bensin. |
- | + | - Skriv ut antal liter bensin i tanken. | |
- | + | - Förbruka | |
- | 2. | + | - Skriv ut antal liter bensin i tanken. |
+ | - Tanka 50 liter bensin. | ||
+ | - Skriv ut antal liter bensin i tanken. | ||
+ | - Förbruka -4 (minus fyra) liter bensin. | ||
+ | - Skriv ut antal liter bensin i tanken. | ||
+ | - Förbruka 70 liter bensin. | ||
+ | - Skriv ut antal liter bensin i tanken. \\ \\ | ||
+ | - Skapa en ny Bensintank med parametern -10 (minus tio). | ||
+ | - Tanka 12 liter bensin. | ||
+ | - Skriv ut antal liter bensin i tanken. | ||
+ | Om du gjort rätt borde svaret bli så här: | ||
+ | {{: | ||
+ | \\ | ||
+ | 3. | ||
+ | I denna uppgift ska du testa arv. | ||
+ | * Du skall med hjälp av din kunskap om klasser göra en klass **Fordon**. Tänk noga igenom namngivning av klasser, metoder och attribut. | ||
+ | * Klassen skall ha minst **3 attribut** (vikt, topphastighet och registreringsId) som är protected. | ||
+ | * Klassen **Fordon** skall ha en **konstruktor** som tar startvärden för attributen som parametrar. | ||
+ | * Man skall kunna hämta och ändra klassens attribut via publika metoder. OBS! två metoder per attribut. | ||
+ | * Klassen **Fordon** skall ha en metod **getInfo()** som returnerar information om objektet. \\ \\ | ||
+ | * Du skall från klassen **Fordon** ärva minst 3 olika typer av fordon. Välj själv vilka. | ||
+ | * Varje klass som ärvs skall ha minst ett eget attribut som man kan hämta och ändra via publika metoder. | ||
+ | * Varje klass som ärvs av **Fordon** skall " | ||
+ | * Gör ett **huvudprogram** som testar klasserna du gjort. | ||
+ | \\ \\ | ||
===== Inlämningsuppgift ===== | ===== Inlämningsuppgift ===== | ||
Line 66: | Line 113: | ||
* **remove_die**, | * **remove_die**, | ||
* **print_cup**, | * **print_cup**, | ||
- | |||
- | |||
- | ===== Arv ===== | ||
- | |||
- | - Du skall med hjälp av din kunskap av klasser göra en klass //Fordon//. Tänk noga igenom namngivning av klasser, metoder och attribut. | ||
- | * Klassen //Fordon// skall ha en metod getInfo() som returnerar information om objektet. | ||
- | * Klassen skall ha minst 3 attribut (vikt, topphastighet och registreringsId) som är protected. | ||
- | * Klassen //Fordon// skall ha en konstruktor som sätter minst registreringsId, | ||
- | * Man skall kunna hämta och ändra klassens attribut via publika metoder. OBS! två metoder per attribut. \\ \\ | ||
- | - Du skall från klassen //Fordon// ärva minst 3 olika typer av fordon | ||
- | * Varje klass som ärvs skall ha minst ett eget attribut som man kan hämta och ändra via publika metoder. | ||
- | * Varje klass som ärvs av //Fordon// skall " | ||