F1 - Introduktion

  • View
    48

  • Download
    0

Embed Size (px)

DESCRIPTION

F1 - Introduktion. ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se. Viktiga resurser. Java Software Solutions, Lewis & Loftus, sjtte eller sjunde upplagan kth.se/social meddelanden, frgor bilda.kth.se inlmningsuppgiften - PowerPoint PPT Presentation

Transcript

ID1004 Objektorienterad programmering

F1 - IntroduktionID1004 Objektorienterad programmeringFredrik Kilander fki@kth.seViktiga resurserJava Software Solutions, Lewis & Loftus, sjtte eller sjunde upplagankth.se/social meddelanden, frgorbilda.kth.se inlmningsuppgiftenDaisy (http://daisy.ict.kth.se) div adm.Kursansvarig: Fredrik Kilander, fki@kth.seBengt Koren (handledning)ProgrammeraGe datorn instruktionerInstruktionerna skrivs i ngot sprkFORTRAN, COBOL, LISP, Haskell, Python, Java, C, C++, Ada, C#, Pascal, PrologInget sprk r bst p alltVal av sprk beror ofta p:vad programmet ska gravad man redan kanvad som finns tillgngligtvad chefen har bestmtOlika programvarukategorierAnvndarprogramMiddleware (frser vissa anvndarprogram med funktionalitet)

Operativsystem (hanterar datorns resurser)Drivrutiner (OS kringutrustning)Supervisor modeUser modeDigitaliserad dataAllting representeras av talLjud samplesBild pixlarText teckenkoderHeltal, flyttal, stora talDigitaliserad signalVarje sample motsvarar ett gonblicks provtagning.Om insignalen r bandbreddsbegrnsad f < S/2 sgr alla frekvenser att fnga och rekonstruera.5425546159127-128Digitaliserad bild0x0010550x0000000x004055Provtagning i tv dimensioner, med tre frgkanaler i varje mtpunkt.Binra talDatorns minne och register hanterar bitarBit = binary digit, 0 eller 1Man har bara tv siffrorDecimaltBinrt00112103114100Antal bitar och ordlngdVarje minnescell eller register i datorn har en begrnsad ordlngd (antal bitar)Ofta delas denna upp i mindre delar, eller kombineras till lngre enheter32 bitar16 bitar16 bitar8 bitar8 bitar8 bitar8 bitar32 bitar32 bitarint, floatchar, shortbytelong, doubleAntalet bitar bestmmer antalet vrdenEtt flt med n bitar, kan representera 2n olika vrden.n2nExempel121=20,1828=256-128 127, 0 25516216=65 5360 65 53532232=4 294 967 2964 GbyteDatorns delarCPUMainmemoryDisc controllerVideo controllerSerial peripheral controllerBusDiscsScreensMouseKeyboardSerial portUSB portsGame controllerMemory stick3G modemVideo cameraCPU och minneCPUCacheCachePhysicalmemoryMemory managerProgrammeringssprket JavaSkapat 1990-1995 vid Sun MicrosystemsVersion 1.0, 1996Version 1.1, 1997Version 1.2, 1998Version 1.3, 2000Version 1.4, 2002Version 5, 2004Version 6, 2006Oracle kper Sun Microsystems, 2009Version 7, Juli 2011Version 8, sommaren 2013Version 9, ?Java programutveckling och exekveringFoo.javaFoo.classjavacodebaseSkriva kllkodKompileraBytekodExekvera bytekodi Java Virtual MachinejavacKodbasen innehller klassersom behvs vid krningen, t exstandardbibliotek.Java vs operativsystem och datorOperativsystemJava Virtual MachineAnpassning till OS och arkitekturBytekodstolkJIT-kompilatorFoo.classFiler, grafik, ljud, m.m.codebaseJava vs operativsystem och datorOperativsystemJava Virtual MachineAnpassning till OS och arkitekturBytekodstolkJIT-kompilatorFoo.classFiler, grafik, ljud, m.m.codebaseJVM implementerar en virtuell (abstrakt) dator som alltid r densamma.Det gr att samma class-filer kan flyttas mellan olika fysiska datorer utan att kompileras om.JIT (just-in-time) verstter automatiskt delar av bytekoden till lokala maskininstruktioner fr snabbare exekvering.Ett enkelt Javaprogram//********************************************************************// Lincoln.java Author: Lewis/Loftus//// Demonstrates the basic structure of a Java application.//********************************************************************

public class Lincoln{ //----------------------------------------------------------------- // Prints a presidential quote. //----------------------------------------------------------------- public static void main (String[] args) { System.out.println ("A quote by Abraham Lincoln:");

System.out.println ("Whatever you are, be a good one."); }}

Ett enkelt Javaprogram//********************************************************************// Lincoln.java Author: Lewis/Loftus//// Demonstrates the basic structure of a Java application.//********************************************************************

public class Lincoln{ //----------------------------------------------------------------- // Prints a presidential quote. //----------------------------------------------------------------- public static void main (String[] args) { System.out.println ("A quote by Abraham Lincoln:");

System.out.println ("Whatever you are, be a good one."); }}

KommentarerEtt enkelt Javaprogram//********************************************************************// Lincoln.java Author: Lewis/Loftus//// Demonstrates the basic structure of a Java application.//********************************************************************

public class Lincoln{ //----------------------------------------------------------------- // Prints a presidential quote. //----------------------------------------------------------------- public static void main (String[] args) { System.out.println ("A quote by Abraham Lincoln:");

System.out.println ("Whatever you are, be a good one."); }}

Klassen och kllkodsfilen har samma namn!Ett enkelt Javaprogram//********************************************************************// Lincoln.java Author: Lewis/Loftus//// Demonstrates the basic structure of a Java application.//********************************************************************

public class Lincoln{ //----------------------------------------------------------------- // Prints a presidential quote. //----------------------------------------------------------------- public static void main (String[] args) { System.out.println ("A quote by Abraham Lincoln:");

System.out.println ("Whatever you are, be a good one."); }}

Reserverade ord (kan inte anvndas till annat)Ett enkelt Javaprogram//********************************************************************// Lincoln.java Author: Lewis/Loftus//// Demonstrates the basic structure of a Java application.//********************************************************************

public class Lincoln{ //----------------------------------------------------------------- // Prints a presidential quote. //----------------------------------------------------------------- public static void main (String[] args) { System.out.println ("A quote by Abraham Lincoln:");

System.out.println ("Whatever you are, be a good one."); }}

Identifierare valda av programmerarenEtt enkelt Javaprogram//********************************************************************// Lincoln.java Author: Lewis/Loftus//// Demonstrates the basic structure of a Java application.//********************************************************************

public class Lincoln{ //----------------------------------------------------------------- // Prints a presidential quote. //----------------------------------------------------------------- public static void main (String[] args) { System.out.println ("A quote by Abraham Lincoln:");

System.out.println ("Whatever you are, be a good one."); }}

Klass, variabel och metod ur standardbiblioteketEtt enkelt Javaprogram//********************************************************************// Lincoln.java Author: Lewis/Loftus//// Demonstrates the basic structure of a Java application.//********************************************************************

public class Lincoln{ //----------------------------------------------------------------- // Prints a presidential quote. //----------------------------------------------------------------- public static void main (String[] args) { System.out.println ("A quote by Abraham Lincoln:");

System.out.println ("Whatever you are, be a good one."); }}

Programmet startar alltid i metoden main.Kommentarer/* Kommentarstext p flera rader *//* * Kommentarstext p flera rader *//* Kommentar mitt i en rad */// Kommentar till slutet av radenDessa r syntaktiskt identiska/** * JavaDoc-kommentar */JavaDoc r ett verktyg fr att generera dokumentation direkt ur kllkoden. Kommentaren str alltid omedelbart fre det som kommenteras.Lgg mrke till dubbelasterisken!KommentarerKommentarer i kllkod r precis lika viktiga som koden.Kommentera syfte, avsikt, funktion, mening,anvndning.Kommentarer och indentering r fr mnniskorKommentarer gr koden mer frstelig fr mnniskorIndentering (formatering) av koden gr den mer lslig fr mnniskorKompilatorn bryr sig inte om kommentarer och tomrum.public class Lincoln{public static void main(String[] args){System.out.println("A quote by Abraham Lincoln:"); System.out.println("Whatever you are, be a good one.");}}

Kommentarer och indenteringSkriv kllkod som om den vore ett exempel

Lita inte p det egna minnet

Nr koden ndras, ndra kommentarerna med!KommentarernofItem = scan.nextInt(); // Ls en intscan.nextLine(); // Ls radennofItems = scan.nextInt(); // Ls nskat antalscan.nextLine(); // Hoppa ver resten av radenABVilket exempel r bst? Varfr?Kommentarer och identifierarepublic int bestest (int a, int b) {return (a>b)?a:b;}/** * Returns the higher of two integer values. * @param a The first value * @param b The second value * @return The greater of the two values. */public int max (int a, int b) { return (a > b) ? a : b;}Kommentarer och identifierarepublic int bestest (int a, int b) {return (a>b)?a:b;}/** * Returns the higher of two integer values. * @param a The first value * @param b The second value * @return The greater of the two values. */public int max (int a, int b) { return (a > b) ? a : b;}Luddigt valt namnIdentifierareIdentifierare anvnds fr att ge namn t klasser, variabler och metoderReserverade ord kan inte anvndas som identifierareStor och liten bokstav r OLIKA