Föreläsning 15 Ett enkelt java program Deklaration Kommentarer

datae04
2005-01-24
Föreläsning 15
•
•
•
•
•
•
Deklarationer
Kommentarer
Variabler
Operator
Reserverade ord
Flödeskontroll
(while-sats, for-sats,
do-while)
• Utskrift
•
•
•
•
Ett enkelt java program
Inläsning’
Metoder
Konstruktor
Klasser
• Enklaste java program måste man deklarera
en klass.
• För att ha ett körbart program så måste man
ha en main-metod som koden nedan:
public static void main(String[] args){ … }
1
Deklaration
2
Kommentarer
• Dynamisk typning som finns i Python
möjliggör att en variabel ska kunna ha flera
typer under ett program.
• Java stödjer inte dynamisk typning d.v.s.
när man deklarerat en gång så går inte att
deklarera om samma variabeln under senare
delen av programmet.
• En kommentar förklarar vad programmet
gör.
• Enradkommentar
//Detta är en enradskommentar
• Flerradskommentarer
/* Denna kommentar går över
flera rader*/
3
4
Reserverade ord
Variabler
• Följande ord finns definierade i Java:
abstract
boolean
break
byte
byvalue
case
cast
catch
char
class
const
continue
default
do
double
else
extends
false
final
finally
float
for
future
generic
Vahid Mosavat, Nada
goto
if
implements
import
inner
instanceof
int
interface
long
native
new
null
operator
outer
package
private
protected
public
rest
return
short
static
super
switch
synchronized
this
throw
throws
transient
true
try
var
void
volatile
while
5
• En variabel är en identifierare som
representerar ett minnesutrymme för en viss
typ av data
• Variabler måste deklareras innan dom
används
• Exempel:
int antal;
double längd;
6
1
datae04
2005-01-24
Primitiva datatyper
Tilldelning
• Varje värde som lagras i minnet är av en viss
datatyp
• Java har åtta fördefinierade typer som kallas
primitiva datatyper:
byte
float
short
int
long
double
boolean
char
• En variabel kan ges ett nytt värde genom
tilldelning:
x = y + 8;
• I tilldelningssatsens vänsterled står en
variabel
• Högerledet kan vara ett värde, en variabel
eller ett uttryck
7
8
Matematiska operatorer
+
*
/
/
%
Flödeskontroll
2.52 + 19 blir 21.52
4.18 - 0.02 blir 4.16
3.5 * 2 blir 7.0
19 / 4.0 blir 4.75
19 / 4 blir 4
19 % 4 blir 3
% ger resten vid heltalsdivision
if
if-else
for sats
while sats
do-while sats
9
10
if-sats
Exempel
kod i Python :
En if-sats består av följande delar
1.if
2.villkor-sats (Condition)
3.uttryck (statement)
Tex:
if (villkor-sats)
uttryck;
Villkor
if bokPris > 500:
prit ”dyrbok, ingen affär”
falskt
Motsvarande kod i Java:
if ( bokPris > 500 ){
System.out.println(”dyr bok, ingen affär”);
}
sant
Uttryck
OBS! Indentering har inget betydelse för Java, vill man att
flera rader kod ska hänga ihop använder man { }.
Kod efter if satsen...
11
Vahid Mosavat, Nada
12
2
datae04
2005-01-24
for-sats
if-else
for-sats består av följande delar
1.for
2.(A;B;C)
A är oftast deklaraton och initiering av veriabel
B är ett villkor-sats (Condition)
C oftast är en stegning-sats
3. uttryck (statement)
if ( bokPris > 500 )
System.out.println(”dyr bok, ingen affär”);
else
System.out.println(”billig bok, jag köper”);
for ( int i=0 ; i< 10; i++ ) {
System.out.println(”Java är enkelt”);
}
13
14
while-sats
Utskrift
Man kan skriva text på skärmen med
int i=0;
while (i<10) {
System.out.println(”programmering är kul”);
i++;
}
System.out.println(”Hej!”);
Användaren kan få se värdet av en variabel med
int ålder = 21;
System.out.println(”Ålder: ” + ålder);
15
Inläsning
Inläsning av tal
Användaren kan ge en variabel ett nytt värde om programmet läser
in från tangentbordet:
1. Importera bibliotek för att underlätta inläsningen
• Metoden readLine() läser in en sträng. Vid behov
kan man omvandla strängen till ett tal
heltal = Integer.parseInt(rad);
import java.io.*;
2. Se till att eventuella fel skickas vidare
• Inläsning och omvandling kan göras i ett steg:
public static void main ( String [] args)
throws IOException {
heltal =
Integer.parseInt(stdin.readLine());
3. Tala om varifrån inläsningen ska ske
BufferedReader stdin = new BufferedReader
(new InputStreamReader (System.in));
• Och för flyttal:
flyttal =
Double.parseDouble(stdin.readLine());
4. Läs in raden
1. raden = stdin.readLine ();
17
Vahid Mosavat, Nada
16
18
3
datae04
2005-01-24
Metoder i java
Konstruktor
• Det finns två typer av metoder i java
– Klassmetoder: deklareras med nyckelordet static.
– Instansmetoder: deklareras utan nyckelordet static
• Static för java innebär att metoden hör till klassen.
Alltså om man har en metoddeklaration utan static
(instansmetod), kommer java att includera en
kopia av metoden i varje instans av klassen.
• Konstruktor är en speciell typ av metod som
anropas när man skapar en instans av
klassen.
• I deklaration av en konstruktor anger man
inga returtyper.
19
Instansvariabler och instansmetoder
Hur ser klassmetoden ut i java kod?
static String metodnamn( String parameternamn)
Returtyp (utdata typ)
i detta fall String
Indata typ
i detta fall String
De får vi välja hur som helst
21
Vahid Mosavat, Nada
20
Deklaration av
class Person {
Deklaration av
instansvariabler
String name;
konstruktor
byte age;
String mailAddress;
public Person(String n, byte a,String m){
name=n;
age=a;
mailAddress=m ;
}
public String getName(){
return name;
Deklaration av
}
instansmetoder
public byte getAge(){
return age ;
}
public String getMailAddress (){
return mailAddress;
}
}
22
4