Kursinfo, Ada till Java, OOP intro, Hello world

January 8, 2018 | Author: Anonymous | Category: Engineering & Technology, Datavetenskap, Java Programming
Share Embed Donate


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

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF