Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.



Relevanta dokument
Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

tentaplugg.nu av studenter för studenter

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll

Metoder (funktioner) Murach s: kap Winstrand Development

Malmö högskola 2007/2008 Teknik och samhälle

PROGRAMMERING-JAVA TENTAMINA

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 3-4 Innehåll

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Övningar Dag 2 En första klass

Tentamen. Lösningsförslag

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

LÖSNINGSFÖRSLAG TENTAMEN

Tentamen OOP

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Grundläggande programmering med C# 7,5 högskolepoäng

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

Objekt och klasser - Introduktion

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Övning. Introduktion och förberedelser

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Java, klasser, objekt (Skansholm: Kapitel 2)

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Objektsamlingar i Java

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

LÖSNINGSFÖRSLAG TENTAMEN

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Typkonvertering. Java versus C

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Objektorienterad programmering i Java

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Chapter 4: Writing Classes/ Att skriva egna klasser.

Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet

OOP Objekt-orienterad programmering

Design av en klass BankAccount som representerar ett bankkonto

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Malmö högskola 2008/2009 CTS

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Del A (obligatorisk för alla)

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

Sammanfattning och repetition utgående från typiska tentamensuppgifter

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Att öva på och förstå ett program med flera samverkande klasser.

Visual Basic, en snabbgenomgång

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

Objektorienterad Programmering DAT043

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Enkla variabler kontra referensvariabel

2 b) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

JAVAUTVECKLING LEKTION 8

Del A (obligatorisk för alla)

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Lite logik. Kap 6: Sid 2

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Malmö högskola 2007/2008 Teknik och samhälle

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Föreläsning 3: Booleans, if, switch

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

2D1342 Programkonstruktion för F1, ht 2006

Lösningsförslag övning 2.

Arrayer (fält)

Objekt och referenser

a. Vilka av följande påståenden är riktiga? Observera att felaktigt valda påståenden ger poängavdrag. (4p)

TENTAMEN OOP

OOP Objekt-orienterad programmering

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

TENTAMEN OOP

Generiska konstruktioner. Kursbokens kapitel 13

Mer om klasser och objekt

Introduktion till Datalogi DD1339. Föreläsning 3 29 sept 2014

TENTAMEN OOP

Transkript:

Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen Bankkonto. Källkoden återfinns även på följande sidor. Efter övning 4 finns en genom gång av klassens innehåll samt av klass- och objektdiagram. Övning 1 Skriv en metod, ändraräntan som tar en parameter nyränta. Parametern är av typen double. När metoden används ska räntan få det värde som bifogas metoden. Bankkonto double saldo double ränta String kontoinnehavare void insättning(double belopp) double getsaldo() boolean uttag(double belopp) void geavkastning() void ändraränta(double nyränta) double getränta() getkontoinnehavare() Ovan visas ett klassdiagram för klassen Bankkonto. Nya fält och metoder som du skall skriva är markerade med kursiv stil. Övning 2 Skriv en metod, geträntan, som returnerar räntan. Övning 3 Namnet på kontoinnehavaren ska höra ihop med kontot. Gör detta på följande sätt. Lägg till ett fält kontoinnehavare. Fältet ska vara av typen String. På samma sätt som fältet ränta får sitt värde via konstruktorn ska det nya fältet kontoinnehavare få sitt värde via konsruktorn. Syntax för flera parametrar i konsruktorn: Bankkonto(datatyp parameterett, datatyp parametertvå) Övning 4 Skriv en metod, getkontoinnehavare som returnerar kontoinnehavarens namn. Teori En klass består av: fält konstruktor metoder Nedan följer en genomgång av klassens olika delar. Nedanför genomgången visas koden för klassen Bankkonto i sin helhet. Fält I koden återfinns fälten saldo och ränta. Fältet saldo deklareras genom att man skriver private double saldo; Ett fält är en plats där man kan spara information. I exemplet ovan kan ett decimaltal (double) sparas i fältet med namnet saldo. En mer detaljerad förklaring följer nedan. 1

Nyckelordet private skall alltid användas förs i fältdeklarationen. Det gör att koden vacker och funktionell. Mer om detta vid ett senare tillfälle. Efter nyckelordet private följer datatypen. I detta fallet är datatypen double (ett decimaltal). Sist i fältdeklarationen följer namnet på fältet. I vårt fall saldo. Konstruktor Konstruktorn visas i sin helhet nedan. Konstruktorn anroppas varje gång som ett objekt av klassen skapas. Ett konstruktoranrop ser ut som följer: new Bankkonto(2.3); Ovanstående anrop skapar ett bankkonto med räntan 2,3%. Man skickar alltså med räntan (2,3) när man skapar kontot. (Jämför med matematikens funktioner, f(x), f(2,3).) Nedan visas konstruktorhuvudet. I konstruktorhuvudet är det inuti parentesen som det anges att man ska skicka med räntan. Nyckelordet double anger att det är ett decimaltal som ska skickas med och i parametern (variabeln) nyränta sparas räntan som skickas med i anropet. Resten som händer i konstruktorn visas på raderna nedan. På den översta raden ges fältet saldo värdet 0. På den andra raden får fältet ränta värdet av parametern (variabeln) nyränta. När konstrukoranropet är klart har nedanstående objekt skapats. :Bankkonto saldo ränta 0 2,3 Metoder I koden finns metoderna insättning, getsaldo, uttag och geavkastning. 2

Låt oss gå igenom en metod i taget. Vi börjar med metoden getsaldo. getsaldo Metoden följer i sin helhet nedan. public double getsaldo() Nyckelordet public anger att metoden ska kunna användas utanför klassen. Mer om det vid ett senare tillfälle. Nyckelordet double anger att metoden returnerar ett decimaltal. Raden anger att det är värdet på fältet saldo som returneras. insättning Metoden insättning visas i sin helhet nedan. public void insättning(double belopp) När man sätter in ett belopp ökas kontots saldo med angivet belopp. Nyckelordet void betyder att metoden inte ska returnera något. Den utför något utan att lämna ifrån sig ett resultat. Nyckelordet void kan jämföras med nyckelordet double i metoden getsaldo. Koden är likvärdig med koden saldo = saldo + belopp; geavkastning Metoden geavkastning följer i sin helhet nedan. public void geavkastning() double avkastning; avkastning = saldo ränta / 100; avkastning är en lokal variabel. Variabeln kan spara ett decimaltal (double). På raden avkastning = saldo ränta / 100; får den lokala variabeln avkastning värdet av saldo gånger ränta genom etthundra, d.v.s. avkastningen för ett år. På raden ökas fältet saldo med värdet hos variabeln avkastning. 3

uttag Slutligen följer metoden uttag i sin helhet. public boolean uttag(double belopp) if (saldo >= belopp) //tillräckligt med pengar finns på kontot saldo -= belopp; return true; else //tillräckligt med pengar finns ej på kontot return false; Nyckelordet boolean anger att metoden kommer returnera antingen värdet sant eller falskt. Det som är nytt i denna metod är if-satsen. Ett flödesschema för if-satsen visas nedan. Följ pilarna. Är saldo >= belopp? nej ja saldo minskas med belopp det finns ej tillräcklig med pengar returnerar sant returnerar falskt Nedan följer koden för klassen Bankkonto. Ett bankkonto @author Rikard Karlsson @version 2006-08-24 public class Bankkonto //fält private double saldo; //saldo på kontot private double ränta; //ränta i procent 4

//konstruktor Skapa ett objekt av klassen Bankkonto @param nyränta räntan som kontot ska ge //metoder Sätt in pengar på kontot @param belopp antal kronor som sätts in public void insättning(double belopp) @return saldot på kontot public double getsaldo() Gör ett uttag från kontot @param belopp antal kronor som ska tas ut @return Sant (true) om tillräckligt med pengar för kontot. Falskt (false) om det inte finns tillräckligt med pengar på kontot. public boolean uttag(double belopp) if (saldo >= belopp) //tillräckligt med pengar finns på kontot saldo -= belopp; return true; else //tillräckligt med pengar finns ej på kontot return false; Beräkna den årliga avkastningen i kronor och sätt in den på kontot. public void geavkastning() double avkastning; avkastning = saldo ränta / 100; 5