Kursinfo, Ada till Java, OOP intro, Hello world
Short Description
Download Kursinfo, Ada till Java, OOP intro, Hello world...
Description
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: • Kursinformation • Imperativa delen av Java • Introduktion till objektorientering • Hello World!
1
Kurspersonal • Kursledare: Erik Nilsson • Examinator: Torbjörn Jonsson • • • • • •
Labbhandledare : Rebecka Geijer Michaeli (I, Ii) Labbhandledare : Magnus Nielsen (SVP) Labbhandledare : Christopher Omberg (SVP) Labbhandledare : Sam Le (I, Ii) Labbhandledare : Johan Frimodig (I, Ii) Labbhandledare :Tore Risinger (I, Ii)
• Kursadministratör: Madeleine Häger Dahlkvist 2
Kursinnehåll • • • •
(ca) 11 Föreläsningar (22h) 5 Lektioner (10h) 5 Laborationer (52h) Datortentamen..
Datastrukturer och algoritmer Java
24h + 10h + 52h = 86h schemalagd tid
Kurslitteratur Data Structures and Algorithms in Java av Michael T. Goodrich och Roberto Tamassia Java Direkt med Swing av Jan Skansholm 3
725G82 (SVP) • 2 HP Extra! • => Problemlösning med Java, intro nu i början av kursen • 3 Föreläsningar/Lektioner • (ca) 10 laborationer • Obligatorisk dugga (minst 3 tillfällen, start v. 5) • Eventuellt kommer det gå att dugga tidigare • Omtenta i annan kurs krockar med labpass för grupp B (4/3) => välj grupp A i första hand.
Innan vi börjar..
5
Labbarbetet 2014:
Innan vi börjar..
Labbarbetet 2015:
6
Varde Java!
• • • •
Ett objektorienterat språk Ett av världens mest använda Senaste version 1.8 (vi kommer använda 1.7) Körs av Java Virtual Machine ”JVM”, ej av operativsystemet • + Samma program kan köras på Windows, Mac, UNIX.. • - Lite långsammare än jämförbara språk
7
Imperativa delen av Java(1) Kodskelett i Ada
procedure My_Program is begin -- Code goes here end My_Program;
Kodskelett i Java
public class MyProgram { public static void main(String[] args) { // Code goes here } }
8
Imperativa delen av Java(3) Deklaration och tilldelning i Ada
procedure My_Program is x : Integer; y : Character := 'c'; z : array(1..5 ) of Integer; s : String(1..5) := "hello"; begin x := 7; end My_Program;
Deklaration och tilldelning i Java
public class MyProgram { public static void main(String[] args) { // Variables may be declared // (almost) anywhere in the code int x; char y = 'c'; int[] a = new int[5]; // 0..4 String s = ”hello"; x = 7; } }
9
Imperativa delen av Java(2) Primitiva datatyper Datatyp
Storlek(bits)
Största negativa värde
Största positiva värde
byte
8
-128
127
short
16
-32,768
32,767
int
32
-2,147,483,648
2,147,483,647
long
64
-9,223,372,036, 854,775,808
9,223,372,036,854, 775,808
Datatyp
Storlek(bits)
Minsta värde
Största värde
float
32
+- 3.403823e-45
+-3.403823e+38
double
64
+-4.940655e-324
+-4.940655e+308
Datatyp
Storlek(bits)
Minsta värde
Största värde
char
16 (!)
0
65,536
boolean (1) false Notera: String finns inbyggt in Java, men är inte en primitiv
true
10
Imperativa delen av Java(5) Villkorssatser i Ada
if a = 4 and b /= 3 and not Some_Bool_Func(c) then Do_Something; elsif a = 0 then Do_Something_Else; end if;
Villkorssatser i Java
if (a == 4 && b != 3 && !someBooleanMethod(c)) { doSomething(); } else if (a == 0) { doSomethingElse(); } 11
Imperativa delen av Java(4) Operatorer Operator
Betydelse
&&
Logiskt AND
||
Logiskt OR
!
Logiskt NOT
+, -, *, /
Aritmetiska operatorer
%
Rest vid heltalsdivision (eng. Remainder)
Jämförelseoperatorer
++x, x++, --i, i--
Pre- och postinkrementering/dekrementering
Operator
Betydelse
|, &, ^
Binär OR, AND och XOR
>
Binär högerskift
12
Imperativa delen av Java(6) Upprepning i Ada
Upprepning i Java
while i < 10 loop i := Do_Something; end loop;
while (i < 10) { i = doSomething(); }
loop i := Do_Something; exit when i > 10; end loop;
do { i = doSomething(); } while (i 10) { break; } går också bra
13
Imperativa delen av Java(7) Funktioner och procedurer i Ada
function Sum(a, b : in Integer) return Integer is begin return a + b; end Sum;
Metoder i Java
int sum(int a, int b) { return a+b; }
procedure Print(text : in String) is void print(String text) { begin System.out.println(text); Put_Line(text); } end Print;
14
Imperativa delen av Java(8) Exceptions i Ada raise Exception_Name; begin --code that raises exception --here exception when Exception_Name1 => Do_Something; when Exception_Name2 => Do_Something_Else; end
Exceptions i Java
throw new ExceptionName(); throw new ExceptionName("message"); try { // Code that throws exceptions here } catch (ExceptionName1 e) { doSomething(); } catch (ExceptionName2 e) { doSomethingElse(); }
15
Imperativa delen av Java(9) Paket i Ada
Paket i Java
package body Package_Name is
package packagename;
--... end Package_Name;
//...
16
Objektorienterad programmering
17
Introduktion till OOP(1) Fallstudie: Boll
Slutsatser: • Attribut (en. field) Information/egenskaper • Metoder (en. method) Vad den kan göra
18
Introduktion till OOP(2) Fallstudie: DVD-spelare
Slutsatser: • Attribut (en. field) Information/egenskaper • Metoder (en. method) Vad den kan göra • Objekt kapslar in sin implementation, visar upp ett gränssnitt 19
Introduktion till OOP(3) Fallstudie: DVD-spelare + TV
Visa upp den här filmen!
Slutsatser: • Attribut (en. field) Information/egenskaper • Metoder (en. method) Vad den kan göra • Objekt kapslar in sin implementation, visar upp ett gränssnitt
• Objekt samarbetar!
20
Introduktion till OOP(4) Fallstudie: Kia Cee’d SW många objekt
Slutsatser: • Objekt kan vara lika varandra, men är ändå inte samma objekt • Objekt som verkar vara likadana hör ändå ihop på något sätt.. 21
Klasser • Beskriver en typ av objekt class KiaCeedSW{ Color color; int modelYear; String licensePlate; boolean isBeingRepaired; ... boolean canDrive() { if (isBeingRepaired) { return false; } else { return true; } } }
Klass
Beskrivs av
Instantierar
Objekt 22
Hello World! Ett komplett, objektorienterat program skrivet i Java class Human { int age = 20; void sayHello() { System.out.println(”Hello world!"); } public static void main(String[] args) { Human david = new Human(); david.sayHello(); }
}
23
I know Java!
Show me!
24
View more...
Comments