Presentation laddar. Vänta.

Presentation laddar. Vänta.

Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Metoder Parametrar Klassmetod Föreläsning 7.

Liknande presentationer


En presentation över ämnet: "Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Metoder Parametrar Klassmetod Föreläsning 7."— Presentationens avskrift:

1 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Metoder Parametrar Klassmetod Föreläsning 7

2 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Metoden addera Metodnamnaddera Beskrivning:Metoden frågar användaren efter två tal och skriver sedan ut resultatet: A + B = C Parametrar:- Returvärde:-

3 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Metoder ger struktur import extra.*; public class Kapital1 { public static void main(String[] args) { double kapital, räntesats; int antalÅr; System.out.print("Ange kapital: "); kapital = Input.readDouble(); System.out.print("Ange räntan i decimalform (3% som 0.03): "); räntesats = Input.readDouble(); System.out.print("Ange antalet år som kapitalet växer: "); antalÅr = Input.readInt(); System.out.println(); System.out.println("Startkapital: "+kapital); System.out.println("År Kapital"); for(int år=1; år<=antalÅr; år++) { kapital = kapital + räntesats*kapital; System.out.println(Output.format(år,2)+Output.format(kapital,10,0)); } * En tabell * Kapital1.java

4 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Metoder ger struktur import extra.*; public class Kapital2 { public static void sammansattRänta(double summa, double räntesats, double antalÅr) { System.out.println("Startkapital: "+summa); System.out.println("År Kapital"); for(int år=1; år<=antalÅr; år++) { summa = summa + räntesats*summa; System.out.println(Output.format(år,2)+Output.format(summa,10,0)); } public static void main(String[] args) { double kapital, räntesats; int antalÅr; System.out.print("Ange kapital: "); kapital = Input.readDouble(); System.out.print("Ange räntan i decimalform (3% som 0.03): "); räntesats = Input.readDouble(); System.out.print("Ange antalet år som kapitalet växer: "); antalÅr = Input.readInt(); System.out.println(); Kapital2.sammansattRänta(kapital,räntesats,antalÅr); } Kapital2.java

5 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Metoder kan vara nyttiga import extra.*; public class Kapital2 { public static void sammansattRänta(double summa, double räntesats, double antalÅr) { System.out.println("Startkapital: "+summa); System.out.println("År Kapital"); for(int år=1; år<=antalÅr; år++) { summa = summa + räntesats*summa; System.out.println(Output.format(år,2)+Output.format(summa,10,0)); } public static void main(String[] args) { double kapital, räntesats; int antalÅr; System.out.print("Ange kapital: "); kapital = Input.readDouble(); System.out.print("Ange räntan i decimalform (3% som 0.03): "); räntesats = Input.readDouble(); System.out.print("Ange antalet år som kapitalet växer: "); antalÅr = Input.readInt(); System.out.println(); Kapital2.sammansattRänta(kapital,räntesats,antalÅr); } Ledtext + Läsa in double Ledtext + Läsa in double Ledtext + Läsa in int

6 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Metoder kan vara nyttiga import extra.*; public class Kapital3 { public static void sammansattRänta(….) { // samma kod som förra sidan } public static double getDouble(String text) { double tal; System.out.print(text); tal = Input.readDouble(); return tal; } public static int getInt(String text) { System.out.print(text); return Input.readInt(); } public static void main(String[] args) { double kapital, räntesats; int antalÅr; kapital = Kapital3.getDouble("Ange kapital: "); räntesats = Kapital3.getDouble("Ange räntan i decimalform (3% som 0.03): "); antalÅr = Kapital3.getInt("Ange antalet år som kapitalet växer: "); System.out.println(); Kapital3.sammansattRänta(kapital,räntesats,antalÅr); } Kapital3.java

7 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Klassmetoder En metod som deklareras som static kallas för en klassmetod. public static void meddelande(String txt) { } En klassmetod anropas med hjälp av klassnamnet följt av en punkt: Output.meddelande(”Hej”); Klassen heter Output och metoden heter meddelande. Det behövs inget objekt av typen Output för att anropa meddelande. Däremot måste programmet ha tillgång till filen Output.class. import extra.*; // Output.class finns i extra-paketet

8 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Att skriva metoder MetodnamnhundraÅr1 Beskrivning:Metoden frågar användaren om åldern år 2002 och berättar när vederbörande fyller 100 år. Parametrar:- Returvärde:- public static void hundraÅr1() { int ålder, årtal; System.out.print(”Ange ålder: ”); ålder = Input.readInt(); årtal = 2002+(100-ålder); System.out.println(”År ”+årtal+” fyller du 100 år”); } Metod1.java

9 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Att skriva metoder MetodnamnhundraÅr2 Beskrivning:Metoden berättar när vederbörande fyller 100 år. Parametrar:ålder (int) Returvärde:- public static void hundraÅr1() { int ålder, årtal; System.out.print(”Ange ålder: ”); ålder = Input.readInt(); årtal = 2002+(100-ålder); System.out.println(”År ”+årtal+” fyller du 100 år”); } public static void hundraÅr2(int ålder) { int årtal = 2002+(100-ålder); System.out.println(”År ”+årtal+” fyller du 100 år”); } Vad är det för skillnad mellan metoderna? Metod2.java Skillnad.java

10 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Att skriva metoder MetodnamnhundraÅr3 Beskrivning:Metoden returnerar det år då personen fyller 100 år Parametrar:ålder (int) Returvärde:årtal (int) public static int hundraÅr3(int ålder) { return (2002+(100-ålder)); } Metod3.java

11 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Att skriva metoder MetodnamnbiljettPris Beskrivning:Metoden returnerar biljettpriset för bifogade personer. Barn: 60 kr, vuxen: 110 kr, pensionär: 80 kr Parametrar:vuxna (int), barn (int), pensionärer (int) Returvärde:biljettpris (long) public static long biljettPris(int vuxna, int barn, int pensionärer) { return vuxna*110+barn*60+pensionärer*80; } Diverse.java

12 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Att skriva metoder Metodnamntecken Beskrivning:Metoden returnerar ’+’ om bifogat tal är positivt, ’0’ om bifogat tal är noll ’-’ om bifogat tal är negativt. Parametrar:tal (int) Returvärde:talets tecken (char) if(tal<0) return ’-’; else if(tal==0) return ’0’; else return ’+’; public static char tecken(int tal) { char tkn = ’+’; if(tal<0) tkn = ’-’; else if(tal==0) tkn = ’0’; return tkn; } Hur testar man metoden?

13 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Att skriva metoder Metodnamnintervall Beskrivning:Metoden returnerar true om ett tal är i ett intervall false om talet är utanför intervallet Parametrar:tal (int), min (int), max (int) Returvärde:boolean return (tal>=min && tal<=max); public static boolean intervall(int tal, int min, int max) { if(tal>=min && tal<=max) return true; else return false; } Hur testar man metoden?

14 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Samla metoder i en klass Metoder som funktionsmässigt hör ihop kan man samla i samma klass. Exempel: I klassen Input finns det metoder för inmatning av variabler och paus-metoder. Man skriver metoderna i samma klass. Glöm inte att klassens namn ska börja med stor bokstav medan metodernas namn ska börja med liten bokstav. Använd endast bokstäverna a-z, A-Z och siffror i klassnamnet. public class Diverse { public static long biljettPris(int vuxna, int barn, int pensionärer ) { return vuxna*110+barn*60+pensionärer*80; } public static char tecken(int tal) { // kod } public static boolean intervall(int tal, int min, int max) { // kod } } Diverse.java

15 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Placera en klass i ett paket När man skrivit in metoderna i en klass är det dags att bestämma var klassen ska lagras. Detta gör man med package-kommandot. Package-kommandot ska inleda java-filen. package diverseInlProg; // börja med liten bokstav Filen ska lagras i en katalog med paketets namn. JB: Denna katalog ska ligga i Source. När du kompilerar java-filen så JDK: placeras class-filen i aktuell katalog JB: placeras class-filen i motsvarande katalog i Output Path (normal classes i projektkatalogen). Placera slutligen paketet i M:\java eller där JBuilder 5 hittar katalogen. Diverse2.java

16 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Överlagrade metoder Ibland är det praktiskt om en metod kan ta emot olika typer av parametrar. Detta har du använt dig av vid utskrifter: System.out.println(); System.out.println(”Hej”); System.out.println(123); println-metoden är definierad för flera variabeltyper. Att deklarera ett antal metoder med samma namn men med olika parameterlistor kallas för att överlagra metoder. Om vi tittar i klassen String så finner vi flera exempel på överlagrade metoder, t.ex.:String int compareTo 2 versioner int indexOf 4 versioner static String valueOf 9 versioner

17 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng public char tecken(double tal) { char tkn = ’+’; if(tal<0) tkn = ’-’; else if(tal==0) tkn = ’0’; return tkn; } Överlagrade metoder Metoden public char tecken(int tal) borde gå att använda även med flyttal. Vi skriver därför en tecken-metod som tar emot en double som parameter:

18 Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Metoden F7.pow (upphöjt till) Metodnamnpow (placeras i klassen F7) Beskrivning:Metoden beräknar a x. Om x<0 så returnerar metoden –1. Parametrar:a (int), x (int) Returvärde:resultatet av beräkningen (long) Testprogram vilket skriver ut resultatet av: (-5) -5, …, (-5) -1, (-5) 0, (-5) 1, …, (-5) , …, 0 -1, 0 0, 0 1, …, , …, 5 -1, 5 0, 5 1, …, 5 5


Ladda ner ppt "Malmö högskola Rolf Axelsson 2002/2003 DA7231 och DA7235, 4 poäng Metoder Parametrar Klassmetod Föreläsning 7."

Liknande presentationer


Google-annonser