SMD 134 Objektorienterad programmering



Relevanta dokument
Programmering A. Johan Eliasson

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

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

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

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

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

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

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

SMD 134 Objektorienterad programmering

Programmeringsteknik med C och Matlab

Tentamen OOP

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

Övning2. Variabler. Data typer

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

OOP Objekt-orienterad programmering

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

Objektorienterad programmering i Java

F4. programmeringsteknik och Matlab

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

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Grundläggande programmering med C# 7,5 högskolepoäng

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

Objektorienterad Programmering (TDDC77)

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

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

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterad Programmering (TDDC77)

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

Föreläsning 1 & 2 INTRODUKTION

Tentamen , Introduktion till Java, dtaa98, dtea53

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

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

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

"if"-satsen. Inledande programmering med C# (1DV402)

TDDC77 Objektorienterad Programmering

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

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

Parameteröverföring. Exempel. Exempel. Metodkropp

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Att skriva till och läsa från terminalfönstret

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

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

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

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

Lösningsförslag: Instuderingsfrågor, del A

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

OOP Objekt-orienterad programmering

Chapter 3: Using Classes and Objects

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 3-4 Innehåll

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

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

Typkonvertering. Java versus C

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

OOP Objekt-orienterad programmering

Hur ser ett Java-program ut?

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

OOP Objekt-orienterad programmering

Programmering för språkteknologer II, HT2011. Rum

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

Objektorienterad programmering Föreläsning 4

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Tentamen ID1004 Objektorienterad programmering May 29, 2012

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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.

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

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

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

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

TDDC77 Objektorienterad Programmering

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

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

Objektorienterad programmering D2

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004

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

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Programmering för språkteknologer II, HT2014. Rum

Föreläsning REPETITION & EXTENTA

Enkla datatyper minne

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

Tentamen ID1004 Objektorienterad programmering December 15, 2012

OOP Omtenta

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

DELPROV 1 I DATAVETENSKAP

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

Introduk+on +ll programmering i JavaScript

Innehållsförteckning

Föreläsning 10. ADT:er och datastrukturer

Transkript:

SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning och flyttalsräkning. Schematiskt Javaprogram public class KlassNamn{ public static void main (String[] argv){ // Här står vad som skall göras när // programmet exekveras (En sekvens av // programsatser) // Efter definitionen av main kan det följa // definitioner av andra metoder Hanteringen av referenstyper i Java Användningen av = för att göra tilldelningar av värden till variabler och av == och equals för att jämföra värden Tre sätt att få in data till ett Javaprogram: hårdlödning, inmatning vid programstart, inhämtning under programexekvering. Kommentarer i Java /** * Detta är ett sätt att skriva en kommentar * som går över flera rader */ /* Detta är ett annat sätt att skriva en kommentar som går över flera rader */ // Detta är en enradskommentar Programsats Ett kommando till datorn Måste ha en sidoeffekt annars är kommandot överflödigt Exempel på programsatser: pi = 3.141593; namn = ; System.out.println( Hello, World! ); Felaktig programsats: 7+5; hejsan;

Block Ett block omges av { och Markerar att ett antal programsatser hör ihop int x = 5; // Exempel på ett block while(x <= 5){ x--; // Samma som x-1 System.out.print("x= "); System.out.println(x); Block hjälper till att indentera koden som skrivs Indentering nödvändig för att kunna läsa och förstå större program Block & Variabler Det kan vara bra att sätta in en variabel i ett block för att kunna använda namnet på variabeln igen int x = 1; int y = 0; { int a = 3; x = 5; y = a + x; // Skulle y = a + y fungera? y = y + x; System.out.println(y); // Vad skrivs ut? Ett programexempel Variabler Man kan skapa hur djupa block man vill i Java /** * Detta program hälsar på både * engelska och svenska */ public class Hejsan{ {{{{ // engelsk hälsning System.out.println("Hello, World!"); {{{{ // svensk hälsning System.out.println("Hej, världen!"); En variabel är ett namngivet utrymme i datorns minne som kan innhålla ett värde av en viss typ En variabel måste deklareras innan den kan användas // deklarering int heltal ; float reellt_heltal; char tecken; // tilldelning heltal = 10; reellt_heltal = 25.98; tecken = X ;

Tilldelningssats Variabelnamn (Identifierare) Allmän form <typ> <variabelnamn> = <uttryck> Variabeln av en viss typ till höger om = tilldelas värdet av yttryck Kan göras direkt vid deklarationen, kallas initiering av variabeln Får bestå av bokstäver (inkl åäöåäö,_$) samt siffror Första tecknet måste vara en bokstav,_ eller $ Ej reserverade ord int antalhundar = 25; int x = 325+175; char tecken = R ; boolean b = true; double abc = 1.125; Giltiga heltal _lame4u_ $dollar dettaärenränare Ogiltiga hel.tal 2lame4u uro boolean Namnkonventioner Primitiva datatyper Använd tydliga namn så alla kan förstå Typ Storlek Tydligare variabelnamn ju längre ifrån deklarationen de skall användas Bra Variabelnamn Mindre bra antalbilar gnorf counter kalle rad x årtal blarf Börja alltid med liten bokstav Vid sammansatta ord börjar alltid det andra ordet med stor bokstav byte 8 bitar short 16 bitar int 32 bitar long 64 bitar float 32 bitar double 64 bitar char 16 bitar boolean 8 bitar ettriktigtlångtvariabelnamn boolean har bara 2 värden, true eller false

Konstanter Några problem Heltalskonstanter Teckenkonstanter 0 a 124 A -3456789 @ Flyttalskonstanter Booleska konstanter 12.50 true 3.141592654 false 0.00025-1.125 Teckenkonstanter, se unicode tabell http://thomas.prydslauritsen.dk/nyttigt/ascii-table.html OBS, alltid decimalpunkt i flyttal, inte komma Vad kommer att hända? int x = 1000000 * 1000000; Java svarar: -727379968 Vad kommer att hända? int x = 100000; int y = x*x/x; Java svarar: 14100 Vad kommer att hända? int x = 10; int y = x/3; int z = y*3; Java svarar: 9 Är inte z = x = 10? Arrayer Arrayer fortsättning Ett antal variabler av samma typ lagrade i samma enhet Om en array har längden k, så är första minnesplatsen i arrayen 0 och sista k-1 Notation för array, antag att vi skapat en array av storleken k och tilldelat den namnet a Första platsen Andra platsen Tredje platsen... Sista platsen a[0] a[1] a[2] a[k-1] Att deklarera en arrayvariabel av typen int int [] a; Att skapa en array av storleken 5 och knyta a till den a = new int[5]; Värdet av a är inte ett värde utan en referens till arrayen som skapats i datorns minne Att ge den andra platsen i arrayen ett värde a[1] = 25; Att direkt deklarera och initialiseras en array variabel. int [] a = new int[10]

Strängar Strängar fortsättning En sträng är en ändlig följd av tecken En sträng är oförändrelig Strängar i Java representeras av klassen String, här finns en stor mängd metoder för att manipulera med strängar Strängkonstanter: Kalle Anka smd134 12345 --{---@ Att konkatenera en sträng, att slå ihop 2 strängar till en görs med operatorn + Exempel 1: Kalle + och + Kajsa + Anka ; Blir: Kalle och Kajsa Anka Exempel 2: Svaret + är +(100-25); Blir: Svaret är 75 Att skapa en sträng: String namn = Kalle Anka ; Aritmetiska operatorer Aritmetiska operatorer forts.. +, - och * används som i matematiken / ska man vara lite försiktig med 9.0 / 5.0 = 1.8 men 9 / 5 = 1 % modulo, heltalsrest 9 / 5 = 1 men 9 % 5 = 4 resten vid heltalsdivision = är en tilldelning, x = 9.0 / 5.0 innebär att x tilldelas vädet 1.8 int x = 3; int y = 6: int z; z = y x + x * y + y / x; Java kommer att tilldela z = 23 De matematiska precedensreglerna gäller, om osäker använd paranteser z = y x + (x * y) + (y / x)

++ och -- ++ och fortsättning Ärvda från programmeringsspråket C Kan användas före eller efter en uppräkningsbar variabel int x = 5; int y; y = x++; //motsvarar y = x, x = x + 1 Y = ++x; //motsvarar x = x + 1, y = x Mycket användbara Kort skrivsätt Lätt att missbruka int x = 0; int y = 0; y = ++x + ++x; // y får här värdet 3 // x får värdet 2 Villkor och villkorsoperatorn Ett sätt att ta reda på om något är sant eller falsk, true eller false x == y x lika med y? x!= y x inte lika med y? x < y x mindre än y? x > y x större än y? x <= y x mindre eller lika med y? x >= y x större eller lika med y? public class BoolTest{ int a=10; int b=11; System.out.println(a==b); Java svarar: false Hårdlödning Ett sätt att få in data till ett java program Ej speciellt användbart Exempel 1 public class Räkna{ int x=1; int y=2; System.out.println(x+y); Exempel 2 public class KalleAnka{ System.out.println( Kalle + Anka );

Torkels LasIn program Inläsning under programexekvering Finns länk på hemsidan (uppdateras under em) Mycket bra sätt att läsa in heltal, flyttal och strängar Metoder i Torkels program för att läsa in data till ett program, läsheltal,läsflyttal och lässträng Exempel public class MataIn{ int test; test=lasin.läsheltal("test :"); System.out.print( Test är nu: +test); Inläsning vid programstart java <klassnamn> <data> Klassen Integer Java API JDK 1.3.1 metoden man använder är parseint(string s) Samma för double, klassen Double metoden är parsedouble(string s) Exempel public class DataDirekt{ int indata=integer.parseint(argv[0]); int x = 10; System.out.println(indata+x); >java DataDirekt 25 35 Ett snyggt sätt import java.io.*; public class TestaLäsaIn { public static void main(string[] argv) throws Exception { int tal; //------ Input from keyboard-------// InputStreamReader isr; BufferedReader keyb; String instring; isr = new InputStreamReader(System.in); keyb = new BufferedReader(isr); //--------------------------------- // Nästa föreläsning if satser, for satser, while satser introduktion av algoritmer genom sökning och sortering av arrayer användning av for, if och while för att implementera algoritmer strukturerad programmering booleska operatorer System.out.print("Skriv ett tal: "); instring = keyb.readline(); tal=integer.valueof(instring).intvalue(); System.out.println("Du skrev: "+tal ); Läs gärna: JFG kap 11-12, 14-16 JSS kap 3.2, 3.4-3.6, 3.7, 6.2