1 / 12

Föreläsning 4

Föreläsning 4. Metoder Metodexempel: slumptal med Math.random() konvertering mellan olika typer Konvertering med cast. Metoder.

shiro
Download Presentation

Föreläsning 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Föreläsning 4 • Metoder • Metodexempel: slumptal med Math.random() konvertering mellan olika typer • Konvertering med cast

  2. Metoder • Vissa beräkningar behöver man göra ofta i ett program. Istället för att skriva satserna som utför beräkningen flera gånger kan man definiera en metod som gör beräkningen. • En metod känner man igen på att den har parenteser efter namnet (t ex println(), sin(0.58)). • Tillhör alltid en klass.

  3. Hur fungerar metoder? • Är som ett recept eller en funktion • Satserna i metoden utförs bara då metoden anropas • Inparametrar – indata, information som behövs i metoden • Returvärde – utdata, metodens resultat

  4. Hur skriver man en metod? • Returvärdets typ/klass • Primitiv typ t ex int, double • Klass t ex String, Color • void om metoden inte returnerar något • Metodens namn • Formella parametrars typ och namn • Skrivs inom parentes • Satser • Retursats (krävs bara för metod som returnerar något) • Det värde som returneras måste vara av samma typ som angavs i början av metoddefinitionen

  5. Att anropa metoder • En metod gör något med objektet. • För att anropa en metod måste man både tala om vilket objekt och vilken metod det gäller. Exempel: bred.grow(8,0); • Mellan objektet (egentligen variabeln som refererar till objektet) och metoden skrivs en punkt. • Metoder skrivs alltid med parenteser i slutet.

  6. Parametrar • När en anropsparameter skickas med vid ett metodanrop kopieras dess värde till den formella parametern. • Kan ett metodanrop ändra på anropsparametern? • Om den är av primitiv datatyp: VÄRDET KAN INTE ÄNDRAS • Om den är en referens till ett objekt: VÄRDEN INUTI OBJEKTET KAN ÄNDRAS • Om den är en referens till en sträng: STRÄNGEN KAN INTE ÄNDRAS

  7. Olika metoder anrop av void-metod med parameter: sparkonto.uttag(100.0); double-metod utan parameter: double s = sparkonto.visaSaldo(); boolean-metod: if(str1.equals(str2)) ... static-metod: double x = Math.random(); anrop av metod i samma klass: double u = uttagsavgift(belopp);

  8. Metodexempel: slumptal • I klassen Math finns en metod, random(), som ger slumptal. • Metoden är static så man behöver inte skapa ett objekt av typen Math för att anropa den: double x = Math.random() ; • Varje anrop ger ett nytt slumptal i intervallet 0<= x <1.

  9. Slumptal i program // Slumpar ett myntkast class Mynt { public static void main(String[] args){ double x = Math.random(); if (x<0.5) System.out.println("KRONA"); else System.out.println("KLAVE"); } //main } // class Mynt

  10. Metodexempel: konvertering • Sträng till heltal int heltal = Integer.parseInt(rad); • Sträng till tecken char tecken = rad.charAt(0);

  11. Typkonvertering (cast) • Används när man explicit vill ändra typen av ett uttryck. • Exempel: double x = 2.75; int i = (int) x; • i får här värdet 2 • Fungerar bara för rimliga konverteringar.

  12. Typkonvertering - exempel class Yatzykast { public static void main(String[] args) { for(int i=0;i<5;i++) { double x = 6*Math.random();//0<=x<6.0 int n = 1 + (int)x; //ett till sex System.out.print(n+" "); } //for System.out.println(); } //main } //class Yatzykast

More Related