• No results found

TDDC77 Objektorienterad Programmering

N/A
N/A
Protected

Academic year: 2022

Share "TDDC77 Objektorienterad Programmering"

Copied!
29
0
0

Loading.... (view fulltext now)

Full text

(1)

TDDC77

Objektorienterad Programmering

Föreläsning 2

Sahand Sadjadee

IDA, Linköpings Universitet

Hösttermin 2020

(2)

Outline

● Operatorer

● Java Standard Library

● Inmatning

(3)

Operatorer

(4)

operatorer

En operator är en symbol som gör en viss eller flera operationer.

En operator kan ha en, två eller tre operander.

En operand kan vara en variabel eller en literal.

● Till exempel: 3 + 7, 2 * height //height är en variabel

(5)

operatorer

● Det finns 7 sorters operatorer i Java:

Simple Assignment Operator

Arithmetic Operators

Unary Operators

Equality and Relational Operators

Conditional Operators

Type Comparison Operator (ska tas upp senare i kursen)

Bitwise and Bit Shift Operators ( ingår inte i kursen)

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html

(6)

Single Assignment Operator

● Tilldelar ett värde, variabel/literal, på sin högersida till en variabel på sin vänstersida.

● Har två operander som gör den en binär operator.

● association är från höger till vänster. Det betyder att om det finns flera = i samma instruktion, körs den som ligger på högersidan först.

● Exempel:

○ int a;

○ a = 7;

○ int b = a = 5;

(7)

Task 1 - 3 minuter

● Skapa en mapp som heter lec02. Alla tasks på den här föreläsningen ska lagras i lec02.

● Vad matar följande program ut på skärmen?

int b = 3;

int a = b = 7;

System.out.println(a);

(8)

Uttryck - expressions

● Varje operator med sina operander skapar ett uttryck.

● Ett uttryck ersätts av ett värde efter operationen är klar.

● I Single assignment operatorns fall ersätts uttrycket av värdet som tilldelas till variabeln på vänstersidan.

● Exempel: int b; int a = b = 7;

● I ovanstående exempel är b = 7 ett uttryck som ersätts av 7.

● I resultat körs int a = 7; av virtuella maskinen i nästa steg.

(9)

Arithmetic operators

● + Additive operator (also used for String concatenation)

● - Subtraction operator

● * Multiplication operator

● / Division operator

● % Remainder operator Exempel:

int a = 7;

int b = 8;

int c = a + b;

(10)

Arithmetic expressions

Definierat för heltals och flyttalstyper:

● Addition +, Subtraktion , Multiplikation , Division =, Resten %. t.ex. 18 % 5 ger 3

● Om en eller båda operanderna är ett flyttal, resultatet blir också ett flyttal; t.ex. 7.5 / 3 ger 2.5

● Om en eller båda operanderna är ett flyttal, resultatet blir också ett flyttal; t.ex. 7.5 / 3.0 ger 2.5

● Operanden med största typen, storleksmässigt, bestämmer typen på resultatet mellan flyttalstyperna.

● När det kommer till heltal, bestäms den närmaste typen, storleksmässigt, som kan

lagra resultatet.

(11)

Task 2 - 3 minuter

● Vilka av följande tilldelningar är fel?

int result = 5 + 7;

resultat = 5 + 7.0;

resultat = 5 - 7;

byte result2 = 50 * 50;

float result3 = 5 + 7.0;

(12)

Unary operators

● - Unary minus operator; negates an expression

○ Kommer innan ett heltal/flyttalsvärde.

● ++ Increment operator; increments a value by 1

○ Kommer innan eller efter ett heltal/flyttalsvariabel.

● -- Decrement operator; decrements a value by 1

○ Kommer innan eller efter ett heltal/flyttalsvariabel.

● ! Logical complement operator; inverts the value of a boolean

○ Kommer innan eller efter ett boolskt värde.

(13)

Prioritet

Använd parenteser för att tvinga prioritet!

Alla unära operatorer står här.

(14)

Inkrementera och kombinera tilldelning med en operator

Flera kombinationer är möjliga i Java:

(15)

Task 3 - 3 minuter

Vad är skillnaden mellan följande tilldelningar?

int a = 7;

int b = 3 + 7 * 2 + --a;

int c = (3 + 7) * 2 + --a;

int b = (3 + 7) * 2 + a--;

(16)

Equality and Relational Operators

(17)

Equality and Relational Operators

● Har två operander(binär).

● Operanderna får inte vara av typen boolean.

● Association: från vänster till höger.

● Uttrycket är ALLTID av typen boolean.

(18)

Task 4 - 3 minuter

Skriv ett program som deklarerar två variabler av typen int och initierar dem med valfria värden. Sedan skriver programmet ut resultaten av > och <= jämförelser på dem.

(19)

Conditional Operators

(20)

Conditional Operators

● Har två operander(binär).

Operanderna får BARA vara av typen boolean.

● Association: från vänster till höger.

● Uttrycket är ALLTID av typen boolean.

(21)

Prioritet

Operators Precedence

postfix expr++ expr--

unary ++expr --expr +expr -expr ~ !

multiplicative * / %

additive + -

relational < > <= >= instanceof

equality == !=

logical AND &&

logical OR ||

assignment = += -= *= /= %=

(22)

Java Standard Library

(23)

Java Standard Library

● Innehåller ett tusental klasser som gör olika uppgifter. Till exempel:

● Grafik

● Gränssnitt (GUI)

● Nätverk

● Matematiska beräkningar

● Inmatning/utmatning

● Felhantering

● …

● Standardbiblioteket ingår i JDK.

(24)

JavaSE Javadoc

● Innehåller information om alla klasser som tillhör till Java Standard Bibliotek.

Overview (Java SE 11 & JDK 11 ) - Oracle Docshttps://docs.oracle.com/en/java/javase/11/docs/api/index.html

(25)

Inmatning

(26)

Inmatning med Scanner

● Scanner används vid inmatning från

tangentbord eller en fil

● Bryta ner inputen i en

sekvens av lexikala

element eller “tokens”

(27)

Inmatning med Scanner

● System.in representerar “standard input stream”, här tangentbordet

● Kan också läsa in från en fil (vi tittar på det senare i kursen)

(28)

Task 5 - 3 minuter

Skriv ett program som frågar efter användarens namn och skriver ut “Hello

INMATADE NAMNET”.

(29)

Tack för att du lyssnade!

References

Related documents

En modellklass LifeModel i ett program som kan simulera denna utveckling lagrar den aktuella generationen i en tillståndsvariabel med deklarationen.. private

MEN i fall där objekt av våra egna klasstyper har pekare som datamedlemmar, framförallt pekare till manuellt allokerat minne så kommer vi behöva definera hur detta ska fungera i

Fokus: Lär in rätt sätt, inte fel (svårt att bli av med) Både mindre uppgifter. och ett

I Detta innebär i förlängningen att funktioner deklarerade med static inte kan komma åt variabler deklarerade utan static eftersom det inte är specificerat vilken

Rättigheterna visas (via ls -l) som tre grupper med rwx där r står för läsrättighet, w för skrivrättighet och x för rättigheten att exekvera filen.. Första gruppen

plats för en referens till ett objekt av typen SegelPlan plats för en referens till ett objekt av typen String int length=0; // man kan ange ett initialt värde.

En bokning är möjlig när tidsintervallet inte överlappar tidsintervallet för någon av de redan existerande bokningarna. Klassen ska också ha

• Default genereras om ingen kopieringskonstruktor, operator och destruktor