Java II - 1
0HUDRPJUlQVVQLWW
(WWJUlQVVQLWWJDUDQWHUDUHQYLVV
IXQNWLRQDOLWHWPRWGHVVRPJLYQLQJ
*UlQVVQLWW
(WWUHDOLVWLVNWH[HPSHOJava II - 2
6RUWHULQJ
(QVRUWHULQJVDOJRULWPNDQLQWHVMlOY
DYJ|UDYLONHWNULWHULHVRPHQPlQJGVND
VRUWHUDVHIWHU
*UlQVVQLWW
2EMHNW
,PSOHPHQWDWLRQ
DY JUlQVVQLWWHW
(WWDYREMHNWHQ
VRPVNDVRUWHUDV
,PSOHPHQWDWLRQ
DY JUlQVVQLWWHW
6RUWHUD HIWHU
YLNW L IDOODQGH
RUGQLQJ
'LVWULEXHUDW
V\VWHP
)|QVWHU
V\VWHP
1nJRQDQQDQW\S
DYWLOOlPSQLQJ
6RUWHULQJV
DOJRULWP
1
.ODVVI|UDWWWHVWD
VRUWHULQJVDOJRULWPHQ
Java II - 3
6RUWHULQJVDOJRULWPHQ
(QVRUWHULQJVDOJRULWP
//-Fil:Sortera.java--------------------------------------class Sortera
{
public static void bubbel(Sorteringsbar[] element)
{
boolean klart = false; //Sant när allt är sorterat
Java II - 4
(IWHUYLONDHJHQVNDSHUVNDREMHNWHQ
VRUWHUDV"
public final class Test
{
public static void main(String[] argument)
{
Arbetare[] anställd = new Arbetare[5];
while (!klart)
{
klart = true;
anställd[0]
anställd[1]
anställd[2]
anställd[3]
anställd[4]
for (int i=0; i<element.length - 1; i++)
{
Sorteringsbar temp = element[i];
=
=
=
=
=
new
new
new
new
new
Arbetare("Gustaf", 203000);
Arbetare("Kajsa", 197000);
Arbetare("Lotta", 356000);
Arbetare("Fredrik", 245000);
Arbetare("Lars", 321000);
Sortera.bubbel(anställd);
for (int i=0; i<anställd.length; i++)
anställd[i].print();
if (temp.mindre(element[i+1]))
{
element[i] = element[i+1];
element[i+1] = temp;
klart = false;
}
Student[] elev = new Student[4];
elev[0]
elev[1]
elev[2]
elev[3]
}
}
}
}
//--------------------------------------------------------
=
=
=
=
new
new
new
new
Student("Erik", "spelar jazz.");
Student("Karl", ӌker skidor.");
Student("Stina", "läser böcker.");
Student("Karin", "reser mycket.");
Sortera.bubbel(elev);
for (int i=0; i<elev.length; i++)
elev[i].print();
}
}
2
6XSHUNODVVHQRFK
JUlQVVQLWWHW
.ODVVWLOOREMHNWVRP
VNDVRUWHUDV
Java II - 5
Java II - 6
6WXGHQW RFK $UEHWDUH lUYHU DY 3HUVRQ
$UEHWDUH LPSOHPHQWHUDU JUlQVVQLWWHW RFK WDODU
GlUPHG RP KXU REMHNW DY $UEHWDUH VND VRUWHUDV
//-Fil:Person.java---------------------------------------public class Person
{
protected String name;
//-Fil:Arbetare.java-------------------------------------public class Arbetare extends Person
implements Sorteringsbar
{
private int inkomst;
Person(String namn)
{
name = namn;
}
public void print()
{
System.out.println("Person: " + name);
}
}
//--------------------------------------------------------
*UlQVVQLWW VRP JDUDQWHUDU HQ HJHQVNDS DWW
VRUWHUD HIWHU
Arbetare(String namn, int inkomst)
{
super(namn); //M†ste skrivas p† f”rsta raden!
this.inkomst = inkomst;
}
public void print()
{
super.print();
System.out.println("Inkomst: " + inkomst + " kr\n");
}
public boolean mindre(Sorteringsbar element)
{
Arbetare jobbare = (Arbetare)element;
return inkomst < jobbare.inkomst;
//-Fil: Sorteringsbar.java--------------------------------
interface Sorteringsbar
{
public boolean mindre(Sorteringsbar element);
}
}
}
//--------------------------------------------------------
//--------------------------------------------------------
3
(QDQQDQNODVVWLOOREMHNW
VRPVNDVRUWHUDV
Java II - 7
6WXGHQW LPSOHPHQWHUDU JUlQVVQLWWHW RFK WDODU
GlUPHG RP KXU REMHNW DY 6WXGHQW VND VRUWHUDV
//-Fil:Student.java--------------------------------------public class Student extends Person
implements Sorteringsbar
{
private String hobby;
Student(String namn, String hobby)
{
super(namn);
this.hobby = hobby;
}
public void print()
{
super.print();
System.out.println("Hobby: " + hobby + "\n");
}
public boolean mindre(Sorteringsbar element)
{
Student elev = (Student)element;
if (name.compareTo(elev.name) < 0)
return true;
else
return false;
}
}
//--------------------------------------------------------
Java II - 8
*UlQVVQLWWH[HPSHO
Utskrift
Person: Lotta
Inkomst: 356000 kr
Person: Lars
Inkomst: 321000 kr
Person: Fredrik
Inkomst: 245000 kr
Person: Gustaf
Inkomst: 203000 kr
Person: Kajsa
Inkomst: 197000 kr
Person: Stina
Hobby: läser böcker
Person: Karl
Hobby: åker skidor
Person: Karin
Hobby: reser mycket
Person: Erik
Hobby: spelar jazz
4
Java II - 9
Java II - 10
5HGLJHULQJDYWDO
,PSRUWHUD SDNHWHW
java.text.*;
6NDSD HQ LQVWDQV DY HQ UHGLJHUDUH
5HGLJHULQJDYWDO
(WW H[HPSHO
import java.text.*;
NumberFormat r = NumberFormat.getInstance();
$QURSD PHWRGHQ IRUPDW I|U DWW RPYDQGOD HWW WDO
µ[µ WLOO WH[W
r.format(x);
class Tid
{
private int timmar = 3;
private int minuter = 24;
private int sekunder = 7;
public String toString()
{
NumberFormat nf =
NumberFormat.getInstance();
5HGLJHULQJVHJHQVNDSHU VlWWV PHG PHWRGHUQD
r.setMaximumFractionDigits(n); //högst n decimaler
r.setMaximumIntegerDigits(n); //högst n heltalssiffror
r.setMinimumFractionDigits(n); //minst n decimaler
r.setMinimumIntegerDigits(n); //minst n heltalssiffror
r.setGroupingUsed(true);
//siffrorna ska grupperas
r.setGroupingUsed(true); //siffrorna ska inte grupperas
nf.setMinimumIntegerDigits(2);
String tid = nf.format(timmar) + ”:”
+ nf.format(minuter) + ”:”
+ nf.format(sekunder);
return tid;
}
}
Ger följande sträng
03:24:07
5
Java II - 11
Java II - 12
/lVQLQJRFKVNULYQLQJ
9LG OlVQLQJ RFK VNULYQLQJ DQYlQGV QnJRW VRP NDOODV
8WVNULIW
6\VWHPRXWKDUI|OMDQGHPHWRGHU
VWU|PPDU
0HWRGHU VRP VNULYHU HWW REMHNW HOOHU YDULDEHO DY
(Q VWU|P lU HWW IO|GH DY GDWD VRP VWU|PPDU LQ
DQJLYHQ W\S WLOO XWVWU|PPHQ
HOOHU XW IUnQ HWW SURJUDP
print(Object), print(String),
print(char[]), print(char), print(int),
print(long), print(float), print(double),
print(bolean)
0DQ VNLOMHU Sn LQVWU|PPDU RFK XWVWU|PPDU
.ODVVHQ 6\VWHP L SDNHWHW
java.lang
LQQHKnOOHU
0HWRGHU VRP VNULYHU HWW REMHNW HOOHU YDULDEHO DY
WUH ROLND VWU|PPDU GHILQHUDGH VRP
DQJLYHQ W\S WLOO XWVWU|PPHQ RFK DYVOXWDU PHG HWW
NODVVYDULDEOHU
Q\UDGVWHFNHQ
System.in
System.out
System.err
println(Object), println(String),
println(char[]), println(char),
println(int), println(long),
println(float), println(double),
println(bolean)
• System.in lU HWW
InputStream.
VWDWLVNW REMHNW DY NODVVHQ
• System.out RFK System.err
DY NODVVHQ PrintStream
lU VWDWLVND REMHNW
%nGH
System.out
NRSSODGH PRW
System.err EUXNDU YDUD
VNlUPHQ PHGDQ System.in EUXNDU
RFK
YDUD NRSSODG PRW WDQJHQWERUGHW
([HPSHO
System.out.print(”Vad heter du: ”);
System.out.flush();
6WUlQJHQ VNULYV LQWH XW GLUHNW XWDQ PHOODQODJUDV L
HQ XWGDWDEXIIHUW %XIIHUWHQ NDQ W|PPDV PHG
KMlOS DY PHWRGHQ
flush
)XQNWLRQHQ
println
IOXVKDU EXIIHUWHQ DXWRPDWLVNW
6
Java II - 14
(WWH[HPSHOSn
LQOlVQLQJDYHQKHOUDG
Java II - 13
,QOlVQLQJ
'DWD VRP VNULYV Sn WDQJHQWERUGHW KDPQDU L
import java.io.*;
VWU|PPHQ 6\VWHPLQ VRP lU HWW REMHNW DY
InputStream
L SDNHWHW
java.io
'HW JnU LQWH DWW GLUHNW OlVD IUnQ 6\VWHPLQ XWDQ
GHQ VWU|PPHQ PnVWH NRSSODV WLOO HQ DQQDQ VWU|P
System.in
(InputStream) (InputStreamReader)
MinaInData
(BufferedReader)
public class Rad
{
public static void main(String[] argument)
throws IOException
{
BufferedReader MinaInData = new
BufferedReader(new
InputStreamReader(System.in));
String namnet;
System.out.print("Vad heter du: ");
System.out.flush();
BufferedReader MinaInData =
new BufferedReader(
new InputStreamReader(System.in));
namnet = MinaInData.readLine();
System.out.println("Hej, " + namnet + "!");
, NODVVHQ %XIIHUHG5HDGHU ILQQV HQ PHWRGHQ
}
readLine
}
Exempel på exekvering
==> java Rad
Vad heter du: Hans-Edy Mårtensson
Hej, Hans-Edy Mårtensson!
==>
7
(WWH[HPSHOSn
LQOlVQLQJDYWDO
Java II - 15
,QOlVQLQJDYWDO
7\YlUU Vn LQQHKnOOHU LQWH NODVVHQ %XIIHUHG5HDGHU
LQJD PHWRGHU I|U DWW RPYDQGOD WLOO VWUlQJDU WLOO
QXPHULVND GDWD
'HW ILQQV IOHUD ROLND WHNQLNHU I|U DWW RPYDQGOD HQ
VWUlQJ WLOO HWW WDO (WW VlWW EHVNULYV KlU QHGDQ
2PYDQGOLQJHQ NDQ VNH PHG KMlOS DY GH SULPLWLYD
import java.io.*;
public class Tal
{
public static void main(String[] argument)
throws IOException
{
BufferedReader MinaInData =
new BufferedReader(
new InputStreamReader(System.in));
GDWDW\SHUQDV RPVODJVNODVVHU ZUDSSHUV
System.out.print("Skriv ett heltal: ");
System.out.flush();
String textRad = MinaInData.readLine();
textRad = textRad.trim(); //Rensar bort blanktecken
String textRad = minaInData.readLine();
int mittHeltal = Integer.parseInt(textRad);
, GHW RYDQVWnHQGH H[HPSOHW DQYlQGV PHWRGHQ
int helTalet = Integer.parseInt(textRad);
System.out.println("Heltalet „r: " + helTalet);
parseInt L RPVODJVNODVVHQ Integer I|U DWW
RPYDQGOD VWUlQJHQ textRad WLOO PRWVYDUDQGH
System.out.print("Skriv ett decimaltal: ");
System.out.flush();
textRad = MinaInData.readLine();
textRad = textRad.trim();
KHOWDO
Java II - 16
)|U DWW RPYDQGOD HWW VWUlQJ WLOO PRWVYDUDQGH
GHFLPDOWDO PnVWH PDQ Jn WLOOYlJD Sn HWW QnJRW
DQQRUOXQGD VlWW
double decimalTalet =
Double.valueOf(textRad).doubleValue();
String textRad = minaInData.readLine();
int mittDecimaltal =
Double.valueOf(textRad).doubleValue();
System.out.println("Decimaltalet „r: " +
decimalTalet);
}
}
8
-DYDLRNODVVHUVRP
OlVHUE\WHVWU|PPDU
Java II - 17
-DYDLRNODVVHUVRP Java II - 18
VNULYHUE\WHVWU|PPDU
InputStream
OutputStream
SequenceInputStream
FileInputStream
PipedInputStream
ByteArrayInputStream
FileOutputStream
PipedOutputStream
FilterInputStream
DataInputStream
FilterOutputStream
PushBackInputStream
BufferedInputStream
ByteArrayOutputStream
DataOutputStream
PrintStream
BufferedOutputStream
9
-DYDLRNODVVHUVRP Java II - 19
OlVHUWHFNHQVWU|PPDU
-DYDLRNODVVHUVRP
VNULYHUWHFNHQVWU|PPDU
Reader
Writer
PipedReader
InputStreamReader
OutputStreamWriter
BufferedWriter
CharArrayReader
FileReader
BufferedReader
Java II - 20
FileWriter
FilterReader
PipedWriter
StringReader
LineNumberReader
PushbackReader
FilterWriter
CharArrayWriter
PrintWriter
StringWriter
1
Java II - 21
7H[WILOHU
)|U DWW OlVD HOOHU VNULYD HQ ILO VNDOO PDQ L -DYD NRSSOD
(WWH[HPSHOSnDFFHVVJava II - 22
DYWH[WILOHUGHO
import java.io.*;
HQ VWU|P WLOO ILOHQ
2P PDQ VNDOO KDQWHUD ELQlUD GDWD Vn YlOMHU PDQ
OlPSOLJD VXENODVVHU IUnQ VXSHUNODVVHQD
HOOHU
2P PDQ VNDOO KDQWHUD WHFNHQ Vn YlOMHU PDQ OlPSOLJD
VXENODVVHU IUnQ VXSHUNODVVHQD
FileReader
HOOHU
FileWriter
, SURJUDPPHW E|U PDQ LQWH OlVD GLUHNW IUnQ HQ VWU|P
FileReader XWDQ
BufferedReader
DY NODVVHQ
Reader HOOHU Writer
2P PDQ YLOO NRSSOD HQ ILO WLOO HQ WHFNHQVWU|P NDQ PDQ
DQYlQGD NODVVHUQD
InputStream
OutputStream
L VWlOOHW YLD
3n OLNQDGH VlWW DQYlQGHU PDQ NODVVHUQD
BufferedWriter RFK FileWriter YLG VNULYQLQJ WLOO HQ
WH[WILO
)|U DWW In WLOOJnQJ WLOO PHWRGHUQD
print RFK println
Vn NDQ PDQ I|UVW OnWD VLQ WHFNHQVWU|P SDVVHUD
PrintWriter
public class Kopiera
{
public static void main(String[] argument)
throws IOException, FileNotFoundException
{
//Vi skapar en indataström från tangentbordet
BufferedReader inStrom =
new BufferedReader(
new InputStreamReader(System.in));
//Vi skapar en teckenström från den fil som ska
//kopieras
System.out.print("Infilens namn? : ");
System.out.flush();
String filNamnet = inStrom.readLine();
BufferedReader inFil =
new BufferedReader(new FileReader(filNamnet));
//Vi skapar en teckenström till den nya kopian
System.out.print("Utfilens namn? : ");
System.out.flush();
filNamnet = inStrom.readLine();
PrintWriter utFil =
new PrintWriter(
new BufferedWriter(new FileWriter(filNamnet)));
//Programmet forsätter på nästa sida
1
(WWH[HPSHOSnDFFHVVJava II - 23
DYWH[WILOHUGHO
//Och nu kopierar vi den ena filen till den andra
int n = 0;
while (true)
{
String rad = inFil.readLine();
if (rad == null) break;
utFil.println(rad);
n++;
}
utFil.close();
inFil.close();
System.out.println(n + " rader kopierade");
}
}
1