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

Relevanta dokument
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

F4. programmeringsteknik och Matlab

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2

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

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

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)

TDDC77 Objektorienterad Programmering

Språkkonventioner och redigering av tal.

SMD 134 Objektorienterad programmering

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

F1 - Introduktion. ID1004 Objektorienterad programmering Fredrik Kilander

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Programmering A. Johan Eliasson

Objektorienterad Programmering (TDDC77)

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

JAVAUTVECKLING LEKTION 7

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

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

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

OOP Objekt-orienterad programmering

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

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

TDIU01 - Programmering i C++, grundkurs

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

Objektorienterad programmering i Java

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

Enkla datatyper minne

Föreläsning 3-4 Innehåll

Föreläsning 1 & 2 INTRODUKTION

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

(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

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

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

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.

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

JAVA Mer om klasser och objektorientering

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

TENTAMEN OOP

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

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

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

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

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

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

Tentamen OOP

Föreläsning 2 - Intro till Java

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

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

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

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

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

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

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

Objektorienterad Programmering (TDDC77)

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

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

OOP Objekt-orienterad programmering

Övning2. Variabler. Data typer

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 14. Filhantering

Föreläsning 1 & 2 INTRODUKTION

Objektorienterad programmering i Java

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

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Lösningar för tenta 2 DAT043,

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

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

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

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

OOP Objekt-orienterad programmering

Tentamen , Introduktion till Java, dtaa98, dtea53

Föreläsning 5-6 Innehåll

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

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

2 b) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

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

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

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

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

Objektorienterad Programmering (TDDC77)

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

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

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

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

OOP Tenta

Objektorienterad programmering i Java

TENTAMEN OOP

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

Transkript:

Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java Fil med källkod: class Game { } Game.class Fil med byte-kod: W* ±@"I%N&* * µ**» Y Minne med maskinkod: 0110101110101 1010110101110 Kompilering: javac Game.java Tolkning (exekvering): java Game Begin Game 1 2 Programspråket Java Källkodsexempel Som programmerare skriver du ditt program i en eller flera Javafiler, t ex i filen Game.java. Texten i Javafiler kallas källkod. Javaprogram beskrivs alltid med klasser, varpå källkoden i Javafilen får strukturen: class Game // innehåll i klassen: // variabler // metoder() } // Schema.java public class Schema public static void main(string[] args) int startperiod; startperiod = 2; System.out.println("K programmerar under " + "perioderna " + startperiod + " och " + (startperiod + 1) + "!"); } // main() } // Schema datorn> javac Schema.java datorn> java Schema K programmerar under perioderna 2 och 3! datorn> En klass kan innehålla variabler och metoder. 3 4

Källkod i Java En programmerare skriver källkod i Java. Källkoden består av: Kommentarer En kommentar beskriver vad en del i programmet gör. Enradskommentarer: Kommentarer. Reserverade ord. Litteraler. Identifierare. Satser. Klasser. Variabler. Metoder. Java API (Application Programmer Interface). // Detta är en enradskommentar Flerradskommentarer: /* Denna kommentar går över flera rader */ Flerradskommentarer kan utnyttjas för att kommentera bort delar av källkoden som misstänks innehålla fel. Flerradskommentarer för javadoc: /** Denna kommentar går över flera rader och kan utnyttjas av javadoc */ Sådana kommentarer används för att skapa automatisk dokumentation om programmet. 5 6 Reserverade ord Litteraler abstract default (goto) (operator) synchronized boolean do if (outer) this break double implements package throw byte else import private throws En litteral är ett värde som skrivs direkt i källkoden, t ex heltal: 17-42 4711 (byvalue) extends (inner) protected transient case false instanceof public true flyttal: 3.14159-12.5 2.9E-12 (cast) final int (rest) try catch finally interface return (var) tecken: 'A' '?' '8' char float long short void class for native static volatile strängar: "Vad heter du?" (const) (future) new super while continue (generic) null switch logiska: true false 7 8

Identifierare Identifierare är namn på klasser, variabler och metoder som du själv inför i din källkod. Kan bestå avbokstäver, siffror, _ och $. Får inte börja med en siffra. Java skiljer på STORA och små tecken. Tex är Bil och bil två olika identifierare. En klass börjar med stor bokstav, t ex Game. En variabel börjar med liten bokstav, t ex hastighet. En metod börjar med liten bokstav och har metodparenteser, t ex main() eller starta(). Satser En sats är den minsta körbara delen i ett Javaprogram. En sats avslutas alltid med ; (semikolon). Undantag: block. En sats skrivs ofta på en egen rad. Exempel med kommentarer: // Deklaration av ett flyttal double x; // Tilldelningar (OBS! Högerled körs först!) x = 3.14; y = (x + 1.57) / 6.28; z = Math.sin(1.5 * x); // Med metodanrop svar = indata.readline(); // Med metodanrop // if-sats if (z < 0.0) z = -z; // Metodanrop System.out.println("Slumpade: " + Math.cos(Math.random())); 9 10 Klasser En klass är något som kan innehålla variabler och metoder. En klass kan ha två innebörder: En klass samlar ihop bra-att-ha -saker. Innehåll: Föregås av ordet static. Finns alltid i endast en uppsättning. Exempel på variabel: PI i klassen Math. Exempel på metoder: sin() i klassen Math, main() i de flesta huvudklasser. En klass beskriver ett föremål (objekt). Innehåll: Föregås ej av ordet static. Finns i en uppsättning för varje skapat objekt. Objekt skapas med new. Exempel på variabel: hastighet hos ett Bilobjekt. Exempel på metod: starta() hos ett Bilobjekt. Variabler En variabel är en identifierare som representerar ett litet minnesutrymme för en viss typ av data. En variabel behövs för att datorn ska kunna komma ihåg data. Variabler ritar vi som en liten låda. En variabel består av tre delar: en datatyp, ett namn och ett värde. datatyp namn = värde; namn datatyp värde Variabler måste deklareras innan de används. Deklarationsexempel: int x; int x Användningsexempel (tilldelning): x = 3; int x 3 11 12

Metoder Vanliga datatyper En metod används för att gömma detaljer om hur något löses. En metod kan ses från två olika sidor: deklarationssidan och anropssidan. Innehåll Datatyp Användningsexempel Heltal int int i = 3; Flyttal double double d = 3.14; Logiska boolean boolean b = true; Tecken char char c = 'A'; Sträng/text String String s = "Pelle"; Deklarationssidan ses från konstruktören som skriver källkoden till metoden. Konstruktören känner till alla detaljer. Anropssidan eller användarsidan ses från den som vill utnyttja en skriven metod. Användaren är inte intresserad av detaljer. Användningsexempel: utskrift med hjälp av metoden println() hos datorsystemets utmatningsenhet System.out: System.out.println("Hej"); System.out är ett PrintStream-objekt med metoder som alltså underlättar utskrifter. 13 14 Metodens huvud Java API API står för Application Programmer Interface. Då en metod kan ses från två olika sidor behövs något som länkar ihop dessa. Detta gör metodens deklarationshuvud. Deklarationshuvudet beskriver metodens namn (som också antyder vad metoden gör), vilka typer av värden som kan skickas till metoden samt vilken typ av värde som kommer tillbaka från metoden. Exempel på deklarationshuvud: metoden println() hos ett PrintStream-objekt: public void println(string x) En samling klasser (redan skriven och kompilerad källkod) med variabler och metoder som man kan använda vid behov. Klasserna med tillhörande variabler och metoder finns beskrivna på webben. Kan användas efter de importerats med import. import måste stå ibörjan av Javafilen. Exempel: import java.io.*; som importerar alla klasser i paketet java.io. Se även klassen PrintStream i Java API. Observera att alla klasser i paketet java.lang importeras automatiskt till alla Javaprogram. 15 16

Java API: Exempel In- och utmatning Då inmatning från tangentbordet är ganska knöligt utnyttjas hjälpobjektet BufferedReader. Detta görs genom att skapa och lagra BufferedReaderobjektet i variabeln indata: BufferedReader indata = new BufferedReader(new InputStreamReader(System.in)); Med indata ovan kan nu en hel rad enkelt läsas in och lagras i variabeln svar: String svar = indata.readline(); och tex göras om till ett heltal: int tal = Integer.parseInt(svar); Inmatning kan ge upphov till fel, IOException, vilket Java kräver att programmeraren tar hand om alternativt påpekar att det kan inträffa. Utmatning till skärmen är enklare och utnyttjar System.out som är ett PrintStream-objekt. I likhet med indata kan man lagra PrintStream-objektet i variabeln utdata: PrintStream utdata = System.out; Med utdata blir utskrift en enkel match: utdata.println("du svarade: " + tal); 17 18 In- och utmatningsexempel // InOchUtmatning.java // Klasserna BufferedReader och PrintStream // ligger i paketet java.io import java.io.*; public class InOchUtmatning /* main() är huvudmetoden som körs (exekveras). I main() kan in- och utmatningsfel (IOException) inträffa vilket java kräver att programmet tar hand om. */ public static void main(string[] args) throws IOException // indata är hjälpobjektet för inmatning BufferedReader indata = new BufferedReader(new InputStreamReader(System.in)); // utdata är hjälpobjektet för utmatning PrintStream utdata = System.out; utdata.print("ange ett tal: "); String svar = indata.readline(); int tal = Integer.parseInt(svar); utdata.println("du svarade: " + tal); } // main() } // InOchUtmatning datorn> javac InOchUtmatning.java datorn> java InOchUtmatning Ange ett tal: -17 Du svarade: -17 datorn> 19