Title: Ingen bildrubrik
1OOP Objekt-orienterad programmering Föreläsning
2 Deklaration och tilldelning Programsatser
Tilldelning Input/Output Selektion
2Deklaration och tilldelning int x double
d char ch boolean ok x23 d45.97 ch'A' ok
true int tal10 int summa summaxtal int
sumxtal double d1, d2, d3
Prefixet final ger konstant, kan ej
förändras final int MAX100 Konstanter brukar
skrivas med versaler
3Enkel datatyp kontra objekt int tal1,
tal2 tal135 tal2112 tal1tal2 String s1,
s2 s1new String("Hej") s2new
String("Hopp") s1s2
Kan skrivas som s1"Hej" s2"Hopp"
Hur fungerar operatorn ? int
sumtal1tal2 String nys1s2
4Programsatser Tilldelning ltvariabelgt
ltvärde/uttryckgt Output System.out.print Syste
m.out.println Input Via ett Scanner-objekt som
skapas med Scanner scnew Scanner(System.in)
(alternativt input/output med JOptionPane) Select
ion if-satsen switch-satsen Iteration while-loo
pen do while-loopen for-loopen
5Flödesstyrning Sekvens Flera saker skall
göras. Många programsatser i rad. Inbördes
ordning viktig. Selection Ibland skall man göra
en sak, ibland inte. T.ex. om det är skottår så
finns 29 februari, annars inte. Om det regnar
ute så ta med ett paraply. Iteration Något
skall göras flera gånger. Fråga efter alla
personernas namn, tills alla svarat. Knäck åtta
ägg och lägg innehållet i en bunke.
6if-satsen if (ltvillkorgt)
ltprogramsatsgt if (ltvillkorgt)
ltprogramsats1gt else ltprogramsats2gt Scan
ner scnew Scanner(System.in) System.out.print("T
emperatur? ") int tempsc.nextInt() Om
temperaturen är under 5 grader så skriv "Kallt"
annars skriv "Varmt"
Vad är ett villkor?
Om fler än en programsats? Om fler än två olika
alternativ?
7Villkor (booleska uttryck) Jämförelse-operatorer
lt lt gt gt ! (operanderna enkla
datatyper) int x17 if (xgt10) ... if
(x25) ... Logiska operatorer !
if (xgt10 xlt20) ... Stringar jämförs INTE
med dessa operatorer. String namn1"Hasse"
String namn2"Hasse" if (
namn1.equals(namn2) ) ... //equals blir
true om INNEHÅLLET i namn1 och namn2 är lika
8switch-satsen switch (ltuttryckgt) case
ltvärdegt ltprogramsatsergt case
ltvärdegt ltprogramsatsergt default
ltprogramsatsergt Uttryck och värde
måste vara av heltalstyp eller char Hoppar
till den case som matchar uttrycket.
Exekverar resten av programsatserna. break-satsen
bryter switch break
System.out.print("Månad? ") int
månadsc.nextInt() switch(månad) case 1
System.out.println("Januari) case 2
System.out.println("Februari") case 3
System.out.println("Mars") case 4
System.out.println("April") default
System.out.println("Annan")
9System.out.print("Månad? ") int
månadsc.nextInt() switch(månad) case 1
System.out.println("Januari) break case 2
System.out.println("Februari") break case
3 System.out.println("Mars") break case
4 System.out.println("April")
break default System.out.println("Annan")
10I vissa länder, t.ex. USA, används Fahrenheit
istället för Celsius för temperatur. Kan vara
förvirrande. Omräkning enligt fahrenheit 9/5
celsius 32
import java.util.Scanner class Convert
public static void main(String args)
Scanner scnew Scanner(System.in)
System.out.print("Temperatur i celsius ")
int celssc.nextInt() int
fahr9/5cels32 System.out.println("Temper
atur i fahrenheit "fahr)
11Operatorer Prioritetsordning Operatorer 1 .
(metod anrop) -- 2 -- -
! 3 new (cast) 4 / 5 - 6 ltlt gtgt
gtgtgt 7 lt lt gt gt instanceof 8
! 9 10 11 12 13 14 ? 15
- /
12Ta fram en del av ett heltal, t.ex. ett
datum. System.out.print("Ange datum ") int
datum scan.nextInt() Anta att datum t.ex.
innehåller 20101118 int år datum/10000 int
dag datum100 int månad datum/100100 Koll
a om året är ett skottår if (år40)
System.out.println("Skottår")
13Flera variabler av samma sort - arrayer Varje
variabel som deklareras får ett utrymme i
primärminnet. int tal double d tal43 d7.85
En array deklareras som lttypgt int
arr arr (inget utrymme finns...) Utrymmet
måste skapas, görs med new arr new
int5 arr028 arr arr143 arr21
2 arr319 arr4193
43
7.85
tal
d
28
43
12
19
193
0 1 2 3
4
14Array Deklaration int arr int
arr //Alternativ deklarering Skapas med
new arrnew int25 //Alltid index från 0 och
uppåt Indexering med ltindexgt arr312 Längd
en kan kollas med length int maxarr.length //ma
x får värdet 25