Parameteröverföring. Exempel. Exempel. Metodkropp

Relevanta dokument
Klassdeklaration. Metoddeklaration. Parameteröverföring

Programmering A. Johan Eliasson

Java Sommarkurs. Institutionen för datavetenskap. Här sitter vi. Kursen kontaktpersoner utbildningsprogram

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Personal Objektorienterad programmeringsmetodik 5DV081 5DV109

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

TDIU01 - Programmering i C++, grundkurs

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Classes och Interfaces, Objects och References, Initialization

SMD 134 Objektorienterad programmering

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterad programmering Föreläsning 4

Objekt och klasser - Introduktion

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Övningar Dag 2 En första klass

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Föreläsning 2, vecka 8: Repetition

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Programmeringsteknik I

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Objektorienterad Programmering (TDDC77)

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Föreläsning 3-4 Innehåll

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

TDDC77 Objektorienterad Programmering

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Java, klasser, objekt (Skansholm: Kapitel 2)

Programmeringsteknik med C och Matlab

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Föreläsning 3: Booleans, if, switch

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT / 26

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Programmering = modellering

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

F4. programmeringsteknik och Matlab

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Pascal... Pascal. Pascal... Pascal...

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

Övning2. Variabler. Data typer

Kapitel 6. Kapitel 6. Hakparenteser fšr att ange index float[] priser = new float[500]; frekvens[4] boolean[] flaggor;

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Personal. Objektorienterad programmeringsmetodik 5DV133. Kursmål. Här sitter vi MIT-huset våning 4. Examination. Kursens uppläggning.

Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Arrayer. results

Programmering för språkteknologer I, VT2012. Rum

Introduktion till Datalogi DD1339. Föreläsning 3 29 sept 2014

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Tentamen Grundläggande programmering

1 Programmering i Java. Program element - Introduktion. Exempel. Exempel. Kapitel 3:

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

Föreläsning 10. Pekare (Pointers)

Läsanvisning: Dessa OH bilder samt kap 1-3

Tentamen OOP

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

Uttryck och villkor. Föreläsning 2

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

TDDC77 Objektorienterad Programmering

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

Tentamen ID1004 Objektorienterad programmering December 15, 2012

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Exempel på ett litet Ada-program

Enkla datatyper minne

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

Transkript:

Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I Java överförs alla parameter by value Värdet på den aktuella parametern kopieras till den formella parametern (motsvarar tilldelningssats) När en referens överförs blir den formella parametern ett alias för aktuell parameter Return-satsen anger vilket värde som returneras (dvs överförs tillbaka) Överförs också by value Metodkropp Innehåller lokala deklarationer & exekverbara satser Lokala deklarationerna gäller bara internt i metoden De formella parametrar betraktas som lokala deklarationer Om resultattyp är inte void måste minst en return-sats finnas Exempel public float getarea () Lokal variabel { float temp = 0.0; temp = height * width / 2; return temp; } 1

Konstruktordeklaration En konstruktor är en speciell metod Samma namn som klassen Ingen explicit resultattyp Används för att initialisera objektets attribut Får ha parameter, t ex för att påverka initialiseringen Exempel: public Triangle () { } Abstraktion En abstraktion är en förenklad men trogen modell av någonting som kan vara väldigt komplicerat En objekt/klass är abstrakt i den meningen att vi inte behöver känner till alla detaljer för att kunna använda det Vi behöver t ex inte känna till koden till move Information hiding och inkapsling Med information hiding menas att viss information görs oåtkomlig för användaren T ex för att säkerställa att xposition och yposition bara förändras på ett kontrollerad sätt (genom move) Med inkapsling menas att abstraktion och information hiding används för att definierar meningsfulla klasser Abstraktionen görs offentlig (public) Känslig och oväsentlig data görs oåtkomlig (private) Programmeringsfel En dator gör inte det programmeraren menade, den gör precis det ett programs semantik föreskriver. Man kan skiljer tre typer av fel Kompileringsfel När kompilatorn upptäcker att syntaxreglerna ej har följts eller att vissa typer ej är kompatibla (t ex int i = c ;) Run-time fel När programmet kraschar när det körs, t ex pga division med noll eller att typer ej är kompatibla Logiska fel När programmet verkar fungera bra, men levererar fel resultat 2

Primitiva datatyper: Hel- och flyttal De olika heltals och flyttals typerna har olika storlek Typ byte short int long float double Storlek 8 bits 16 bits 32 bits 64 bits 32 bits 64 bits Minimum -128-32,768-2,147,483,648 < -9 x 10 18 +/- 3.4 x 10 38 +/- 1.7 x 10 308 Maximum 127 32,767 2,147,483,647 > 9 x 10 18 med 7 signifikanta siffror med 15 signifikanta siffror Primitiva datatyper: Tecken En variabel av datatypen char sparar precis ett s k Unicode tecken Värdemängden är en ordnad uppräkning av tecken Det finns 65,536 unika Unicode tecken (16 bit) med tecken och symboler från olika språk, t ex 'å' och 'ö' Alla tecken är ordnade och varje tecken motsvarar en siffra (detta underlättar att kolla om ett tecken ligger t ex mellan 'a' och 'z') Se t.ex. http://www.unicode.org/ för detaljer Primitiva datatyper: Boolean En variabel av datatypen boolean innehåller antingen värdet eller värdet Används ofta för att definiera villkor logik Det finns tre logiska operatorer i Java inte (!), och (&&) och eller ( ) a!a a b a && b a b Konstanter Variabler som får inte ändras Markeras med reserverade ordet final Guideline: Använd bara stora bokstäver Exempel: final double PI = 3.14159; final char NEWLINE = \n ; Fördelar Vettiga namn istället för konstiga siffror eller tecken Lättare att förstå koden Enklare att uppdatera 3

Uttryck 1 Ett uttryck är en programkonstruktion som producerar (evalueras till) ett resultatvärde av en viss datatyp. Ett uttryck kan (bl a) vara: Ett primitivt värde (literal) -5, 1.23e2, c, En variabel smallbluerectangle, PI En metodanrop atriangle.changesize(50, 100); En tilldelning height = newheight Uttryck 2 Ett uttryck är en syntaktiskt korrekt kombination av literaler, variabler, metodanrop, tilldelningar och operatorer. Typiska exempel på operatorer: Aritmetiska, t ex +, -, *, /, Logiska:!, &&, Relationala, t ex ==,!=, <, >=, Uttryck kan vara komplexa Priotitetsordning för att bestämma hur det ska evalueras Se http://java.sun.com/docs/books/tutorial/java/nutsandbolts/expressions. html för en fullständig lista Relations operatorer == Identiskt lika!= Inte identiskt lika < Mindre än <= Mindre än eller lika med > Större än >= Större än eller lika med Prioritetsordning Operatorer med högre prioritet evalueras först Vid samma prioritet avgör associativiteten hos operatorerna (vänster-höger / höger-vänster) Uttryck: Evalueringsordning: Resultat: 5 + 12 / 5-10 % 3 6 3 1 4 2 Använd parenteser för att vara på säkra sidan (5 + (12 / 5)) - (10 % 3) 4

Exempel Uttryck 2 + 3 * 4 / 2 3 * 13 + 2 (3 * 13) + 2 3 * (13 + 2) 4 * (11-6) * (-8 + 10) (5 * (4-1)) / 2 Resultat 8 41 41 45 40 7 Uttryck 3 Resultatvärdets datatyp hos ett uttryck beror på operatorn och datatyperna hos operanderna. Uttryck 17 / 5 17.0 / 5 17 / 5.0 9 / 12 9 / 12.0 6 % 2 7 % 2.5-7 % 2.5 Resultat 3 3.4 3.4 0 0.75 0 2.0-2.0 int dollar = 25; float money; money = dollar; // OK, money blir 25.0 dollar = money; // FEL, typerna är // icke kompatibla 5