Föreläsning 7 Metoder Parametrar Klassmetod.

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

INTRODUKTION TILL PROGRAMMERING
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Funktioner och programorganisation
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Programkodens uppbyggnad
Att programmera i språket Java
Grundläggande programmering
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Alice in Action with Java
i olika programmeringsspråk
Föreläsning 13 Polymorfism, Paket och JAR-filer. Polymorfism Ordet härstammar från grekiskan Poly – många Morf – form Polymorf – många former Någonting.
Föreläsning 11 Arrayer.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Klasser och objekt Klasser, objekt och instansvariabler
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
1 ITK:P1 Föreläsning 7 Algoritmer och datastrukturer DSV Marie Olsson.
Programmeringsteknik för Media1 & K1
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
Modulär programutveckling
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Java paket och jar-filer
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Föreläsning 4 Klasser Och Objekt.
1. Ett problem/uppgift.
Föreläsning 1 Om kursen Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng while-loop do-loop continue, break PROJEKT Föreläsning 5.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Malmö högskola Rolf Axelsson 2003/2004 DA7235, 4 poäng Fält som returvärde Sortera fält Söka i fält Tvådimensionella fält Fält och spelplan Föreläsning.
Malmö högskola Rolf Axelsson 2004/2005 DA7350, 10 poäng Fält - Vektor - Array Deklarera, skapa och använda Fält som parameter Föreläsning 9.
DA7351 Programmering 1 Fält och objekt Tvådimensionella fält Sortera fält Föreläsning 13.
Föreläsning 3 Algoritm Grundstrukturer i en algoritm Sekvens Selektion Iteration Selektion - if-sats Selektion - if-else-sats Selektion - switch-sats jämförelseoperatorer.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Referensvariabel Klass och konstruktorer Klass med set- och get-metoder Klass och fält Fler metoder.
Arv, abstrakta klasser och gränssnitt
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Fält - Vektor - Array Deklarera, skapa och använda Fält som parameter Föreläsning 9.
Malmö högskola Rolf Axelsson 2001/2002 DA7010 Objektorienterad programmering 1, 5 poäng Indentering är viktigt! Efter startparentes, {, ska du indentera.
Malmö högskola Rolf Axelsson 2004/2005 DA7350, 10 poäng char Klassen String Klass och attribut Klass och metoder Föreläsning 30/
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
Föreläsning 3: Booleans, if, switch
Föreläsning 11: Rekursion
Föreläsning 8: Exempel och problemlösning
Föreläsning 12: Exempel och problemlösning
Iteration – Repetitionssats - while
Presentationens avskrift:

Föreläsning 7 Metoder Parametrar Klassmetod

Metoden addera Metodnamn addera Beskrivning: Metoden frågar användaren efter två tal och skriver sedan ut resultatet: A + B = C Parametrar: - Returvärde: -

Metoder ger struktur * * En tabell Kapital1.java 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)); } Kapital1.java * * En tabell

Metoder ger struktur Kapital2.java 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

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

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) { 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

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

Att skriva metoder Metodnamn hundraÅ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

Att skriva metoder Metodnamn hundraÅr2 Beskrivning: Metoden berättar när vederbörande fyller 100 år. Parametrar: ålder (int) Returvärde: - 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 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”); }

Att skriva metoder Metodnamn hundraÅ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

Att skriva metoder Metodnamn biljettPris 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

Att skriva metoder Metodnamn tecken 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) public static char tecken(int tal) { char tkn = ’+’; if(tal<0) tkn = ’-’; else if(tal==0) tkn = ’0’; return tkn; } Hur testar man metoden? if(tal<0) return ’-’; else if(tal==0) return ’0’; else return ’+’;

Att skriva metoder Metodnamn intervall 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 public static boolean intervall(int tal, int min, int max) { if(tal>=min && tal<=max) return true; else return false; } Hur testar man metoden? return (tal>=min && tal<=max);

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

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

Ö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.: int compareTo 2 versioner int indexOf 4 versioner static String valueOf 9 versioner

Ö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: public char tecken(double tal) { char tkn = ’+’; if(tal<0) tkn = ’-’; else if(tal==0) tkn = ’0’; return tkn; }

Metoden F7.pow (upphöjt till) Metodnamn pow (placeras i klassen F7) Beskrivning: Metoden beräknar ax. 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)5 0-5, …, 0-1, 00, 01, …, 05 5-5, …, 5-1, 50, 51, …, 55