Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

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

Föreläsning 3-4 Innehåll

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

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

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)

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

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

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

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

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

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

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

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

SMD 134 Objektorienterad programmering

Objektorienterad Programmering (TDDC77)

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

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

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Anteckningar 1: Grundläggande saker

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

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

2D1342 Programkonstruktion för F1, ht 2006

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

OOP Objekt-orienterad programmering

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

Typkonvertering. Java versus C

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

TDIU01 - Programmering i C++, grundkurs

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

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

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

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

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

Tentamen i Objektorienterad programmering

(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

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Tentamen FYTA11 Javaprogrammering

OOP Objekt-orienterad programmering

Del A (obligatorisk för alla)

Objektsamlingar i Java

2D1339 Programkonstruktion för F1, ht 2003

Java, klasser, objekt (Skansholm: Kapitel 2)

Tentamen. Lösningsförslag

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

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

Programmeringsteknik I

Tentamen OOP

Laboration A Objektsamlingar

tentaplugg.nu av studenter för studenter

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

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

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

Objektorienterad programmering i Java

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]

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

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.

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

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

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

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

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

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

F4. programmeringsteknik och Matlab

Programmering A. Johan Eliasson

Föreläsning 1 & 2 INTRODUKTION

TUTORIAL: KLASSER & OBJEKT

Klassdeklaration. Metoddeklaration. Parameteröverföring

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

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

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

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

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

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Översikt. Skriva och läsa data. Kontrollflöde. Två sorters loopar. For-loop. For-loop

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

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

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

Programmeringsteknik med C och Matlab

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

Tentamen ID1004 Objektorienterad programmering May 29, 2012

TENTAMEN OOP

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.

TDIU01 - Programmering i C++, grundkurs

Parameteröverföring. Exempel. Exempel. Metodkropp

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

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

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

Objektorientering: Lagring, räckvidd och livstid

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

Funktioner. Programmering. Egendefinierade funktioner i Java. En Java-funktions anatomi. hh.se/db2004. Statiska metoder. Funktioner. resultatvärde.

Objektorienterad Programmering (TDDC77)

Uppgift: Algoritm för att beräkna kontrollsiffran i ett personnummer givet de 9 första siffrorna. Torrsimning av algoritm för personnummer

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

Objektorienterad Programmering (TDDC77)

DD1342 Programkonstruktion för F1,

OOP Objekt-orienterad programmering

Transkript:

Översikt Uttryck i tilldelningssatser Typer och typomvandling Klasser Metoder Konstanter Eclipse-tips MERA JAVA OCH ECLIPSE Institutionen för datavetenskap Programmering 1 Rita Kovordányi 2 public class Test1 { public class Test2 { double esttime; double planningfactor; double deliverytime; double esttime; int planningfactor; double deliverytime; esttime = 10.5; // estimated time in hours planningfactor = 3.14; // the famous pi deliverytime = esttime * planningfactor; System.out.println(deliveryTime); Programmering 1 Rita Kovordányi 3 esttime = 10.5; // estimated time in hours planningfactor = 3; // you know how it is ;) deliverytime = esttime * planningfactor; System.out.println(deliveryTime); Programmering 1 Rita Kovordányi 4 public class Test3 { Vad kommer att hända? double centralrate; // styrränta double bankadjust; // bank nivåjustering double intrrate; // resulterande ränta Programmering 1 Rita Kovordányi 5 centralrate = 0.35; bankadjust = 0.01; intrrate = centralrate * bankadjust; Programmering 1 Rita Kovordányi 6 1

Deklaration och tilldelning i ett steg Från högre till lägre precision public class Test4 { public class Test5 { double centralrate = 0.35; double bankadjust = 0.01; double intrrate = centralrate * bankadjust; double centralrate = 0.35; double bankadjust = 0.01; int intrrate = centralrate * bankadjust; Fel: Type mismatch: Cannot convert from double to int Programmering 1 Rita Kovordányi 7 Programmering 1 Rita Kovordányi 8 Från högre till lägre precision Fält (array) som variabeltyp public class Test6 { public class Test7 { double centralrate = 0.35; double bankadjust = 0.01; int intrrate = (int) (centralrate * bankadjust); Jag typomvandlar själv (type casting) double[] rainfall = new double[2]; double totalrainfall; rainfall[0] = 0.35; rainfall[1] = 0.2; Allokera (reservera) utrymme för två element totalrainfall = rainfall[0] + rainfall[1]; System.out.println(totalRainfall); Programmering 1 Rita Kovordányi 9 Programmering 1 Rita Kovordányi 10 Fält som variabeltyp public class Test7 { double[] rainfall = {0.35, 0.2, 0.12; double totalrainfall = rainfall[0] + rainfall[1] + rainfall[2]; System.out.println(totalRainfall); Operatorer Programmering 1 Rita Kovordányi 11 2

Exempel på operatorer De vanliga matematiska operatorerna +,, *, / Logiska operatorer &&,,! Jämförelseoperatorer <= ==!= Användning av logiska operatorer public class Test { boolean filefound = false; boolean fileread = false; // andra beräkningar boolean fileok = filefound && FileRead; Programmering 1 Rita Kovordányi 13 Programmering 1 Rita Kovordányi 14 Användning av logiska operatorer Jämförelser public class Test { boolean fileok = filefound && FileRead; if (!fileok) { System.out.println( Problem med att läsa filen ); Returnerar boolean (true eller false) double balance = 10000 // money in the account int minamount = 10000; // SEK boolean qualifiesforbonus = (balance >= minamount); if (qualifiesforbonus) { <...> // give bonus to this customer Programmering 1 Rita Kovordányi 15 Programmering 1 Rita Kovordányi 16 Jämförelser Returnerar boolean (sant eller falskt) Metoder double balance = 10000; int minamount = 10000; // money in the account // SEK if (balance >= minamount) { // qualifies for bonus <...> // give bonus to this customer Programmering 1 Rita Kovordányi 17 3

Återanvändning av kod Återanvändning av kod Vad göra om man behöver beräkna samma sak gång på gång? T.ex. beräkna variansen i flera datasets? Måste man skriva om samma rader kod flera gånger? Samla satserna i en metod Metoden namnges Kan sedan anropa metoden genom att använda dess namn Kan anropa från alla de ställen i koden där man vill göra den här beräkningen Programmering 1 Rita Kovordányi 19 Programmering 1 Rita Kovordányi 20 Metod En rad satser som ska återanvändas flera gånger T.ex. beräkna snittet av en veckas nederbörd Vill göra samma sak för andra veckor Veckans data skickas med som argument: meanweek1 = mean(1,5,4,2,7,2,5); meanweek2 = mean(7,15,42,23,4,6,12); Ut: Resultat av anropet In: Argument Exempel public class Statistics { Klass-metod Returtyp static double mean(double day1,...) { <beräkna snitt, returnera en double> Läggs i en egen fil som heter Statistics.java Anropas genom Statistics.mean(1, 45, 21, ) Parameterlista med typ och namn på varje parameter Programmering 1 Rita Kovordányi 21 Programmering 1 Rita Kovordányi 22 Exempel på anrop public class Test8 { double day1 = 23.1; // mm rainfall... Klasser avgrainfall = Statistics.mean(day1,...); System.out.println(avgRainfall); Programmering 1 Rita Kovordányi 23 4

Sätt att gruppera/paketera kod T.ex. vår Statistics klass Kan innehålla flera metoder Variansberäkning Standardavvikelse Etc. Klasser som variabeltyp Klasser kan utgöra en variabeltyp String name; I den här kursen kommer vi inte använda klasser som variabeltyper (förutom inbyggda klasser som String) Programmering 1 Rita Kovordányi 25 Programmering 1 Rita Kovordányi 26 Konstanter Vill förenkla för andra T.ex. genom att definiera PI Programmering 1 Rita Kovordányi 28 Vill se till att andra inte är beroende av min kod T.ex. har skrivit kod för en hiss, som kan åka upp eller ner Anropas genom Elevator.move(1); // go up Elevator.move(2); // go down Jag kommer två veckor senare på att det skulle vara bättre att koda ner som -1 och upp som 1 Förenklar mina beräkningar Anrop som Elevator.move(1); Elevator.move(2); // go up // go down kommer inte längre att fungera Ska andra behöva ändra i sin kod!? Programmering 1 Rita Kovordányi 29 Programmering 1 Rita Kovordányi 30 5

Elevator Bättre att definiera två konstanter i Elevator: static final int UP = 1; static final int DOWN = 2; public class Elevator { static final int UP = 1; static final int DOWN = 2; Tillhör klassen, dvs kan anropas genom <klassnamn>.up <klassnamn>.down static void move(int dir) { <min kod för att flytta hissens position> Programmering 1 Rita Kovordányi 31 Programmering 1 Rita Kovordányi 32 Anrop Nu är det lätt att ändra Konstanten UP i Anropas genom: klassen Elevator Elevator.move(Elevator.UP); Elevator.move(Elevator.DOWN); Metoden move i klassen Elevator Om jag vill ändra upp och ner till 1, och -1 Enkelt att definiera om konstanterna: static final int UP = 1; static final int DOWN = -1; Programmering 1 Rita Kovordányi 33 Programmering 1 Rita Kovordányi 34 Anropande kod påverkas inte Anropas fortfarande genom: Elevator.move(Elevator.UP); Elevator.move(Elevator.DOWN); Konstanter Deklareras som final Konvention Stora bokstäver samt _ mellan ord static final int UP = 1; static final int DOWN = 2; Programmering 1 Rita Kovordányi 35 Programmering 1 Rita Kovordányi 36 6

Arbeta i Eclipse Programmering 1 Rita Kovordányi 38 Programmering 1 Rita Kovordányi 39 Programmering 1 Rita Kovordányi 40 Kortkommandon i Eclipse Alt-Shift-X, J Kompilera och kör programmet Ctrl-Shift-M Importera rätt paket (markören ska stå på den klass som ska importerass) Ctrl-Shift-/ Kommentera bort dessa rader (eller ta bort kommentar, dvs. toggle) Kortkommandon i Eclipse Ctrl-Shift-F Formattera koden Alt-Shift-J Skapa Javadoc kommentar F3 Visa källkod till biblioteksklasser Om detta inte funkar första gången Ställ markören på klassen ifråga Tryck på Ctrl-tangenten (Eclipse letar upp källkoden) Shift F2 Visa Javadoc Ctrl-Mellanslag Fyll i kod åt mig (avsluta variabelnamn, etc.) Programmering 1 Rita Kovordányi 41 Programmering 1 Rita Kovordányi 42 7