OOP Objekt-orienterad programmering



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

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

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

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

Objektorienterad programmering i Java

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)

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

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

(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

OOP Objekt-orienterad programmering

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

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

OOP Objekt-orienterad programmering

Objektorienterad Programmering (TDDC77)

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

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

SMD 134 Objektorienterad programmering

OOP Objekt-orienterad programmering

SMD 134 Objektorienterad programmering

OOP Objekt-orienterad programmering

OOP Tentamen

Studentportalen UNIX-konton (systemansvariga P4118) Lärare: Tom Smedsaas,

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

F4. programmeringsteknik och Matlab

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 1 & 2 INTRODUKTION

Undervisning. Examination

OOP Omtenta

Editering, Kompilering och Exekvering av Javaprogram

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programutveckling

OOP Omtenta

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1-2 innehåll

Kompilera och exekvera Javakod

Inledande programmering med C# (1DV402) Introduktion till C#

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

Programmering A. Johan Eliasson

Föreläsning 1 & 2 INTRODUKTION

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

Föreläsning 14. Filhantering

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

Undervisning. Examination

Anteckningar 1: Grundläggande saker

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

Tentamen , Introduktion till Java, dtaa98, dtea53

Introduktion till Java

TENTAMEN OOP

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

Tentamen OOP

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

OOP Tentamen

Classes och Interfaces, Objects och References, Initialization

Föreläsning REPETITION & EXTENTA

NetBeans 7. Avsikt. Projektfönster

Objektorienterad Programmering DAT043. Föreläsning 1 15/1-18 Moa Johansson

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.

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

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

Objektorienterad Programmering (TDDC77)

F1 - Introduktion. ID1004 Objektorienterad programmering Fredrik Kilander

Varför ha kännedom om datateknik och programmering?

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.

TDIU01 - Programmering i C++, grundkurs

OOP Tenta

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

Övning2. Variabler. Data typer

OOP Tentamen

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

Personal Objektorienterad programmeringsmetodik 5DV081 5DV109

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

Föreläsningsmaterial (Syntax och variabler)

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

OOP Tenta

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

Att använda Java SE JDK 6

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

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

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

Tentamen. Programmeringsmetodik, KV: Java och OOP. 17 januari 2002

OOP Omtenta

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

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Föreläsning 1: Intro till kursen och programmering

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

OOP Omtenta

JAVAUTVECKLING LEKTION 7

Varför ha kännedom om datateknik och programmering?

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

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

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

OOP Exempel Tentamen 2007

Imperativ programmering. Föreläsning 4

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

Föreläsning 2 - Intro till Java

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Transkript:

OOP Objekt-orienterad programmering OOP F1:1 Delkursansvarig Epost Kursens webbsidor sm@fc.dsv.su.se http://people.dsv.su.se/~sm/oop/ Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första Java-program Input / output Allmänt om programmering se gärna ITP Föreläsning 2: https://video.dsv.su.se/ht10/dvkintro/ OOP F1:2 Central-enhet PM CPU Skivminne Sekundärminnesenheter (SM) CD-läsare Diskett-läsare 1

OOP F1:3 Primär-minne (PM) Processor (CPU) 0 4 8 12 16 20 24 28 11001010 00101101 10101100 10101101 00101101 10101100 10101101 10101010 10101011 01101101 10011100 11010011 00101101 10101100 10101101 11010001 11001010 00101101 10101100 10101101 01011100 01111001 00110100 11101001 10011100 10101011 10101100 10101101 11001010 00101101 10101100 01110001 PM är en vektor av minnesceller 8 bitar = 1 byte, 4 byte = 1 ord t ex 512 MB (megabyte - miljoner byte) I PM finns program-instruktioner & -data R1 R2 Styrenhet Ett antal register... Aritmetisk enhet OOP F1:4 Kod i högnivåspråk måste översättas till maskinkod. Kompilering: Källkod i högnivåspråk Interpretering: Kompilator Olika beroende på datorsystem Maskinkod som kan exekveras i datorsystemet Källkod i högnivåspråk Interpretator Olika beroende på datorsystem Läser en instruktion i taget, översätter till maskinkod och exekverar 2

JAVA "Plattformsoberoende" Källkod kompileras till s.k. "Java bytekod" Java bytekod interpreteras på aktuell dator OOP F1:5 Java källkod Java bytekod Java kompilator Java interpretator Måste finnas på den dator där man vill köra ett Java-program. Finns i de flesta webbläsare Vad är Java? Två logiska delar: OOP F1:6 Språk-kärna API-bibliotek imperativ del datatyper deklarationer programsatser metoder mm, mm OOP-del klasser objekt inkapsling arv polymorfism mm, mm Ett (stort!) antal färdiga klasser som kan användas i olika program. Uppdelat i delbibliotek, t.ex.: java.io java.util javax.swing m.fl, m.fl. Dokumentation på: http://java.sun.com/javase/6/docs/api/ 3

Java är freeware, kan laddas ner från Sun (java.sun.com) OOP F1:7 Olika versioner 1.0 1.1 1.2 1.3 1.4 1.5 1.6 Java SE - JDK 6 (Java Standard Edition version 6) Innehåller det man behöver Kompilator (javac) JVM (Java Virtual Machine), dvs interpretatorn (java) API-biblioteket (plus lite annat...) (på MS Windows måste path-variabeln uppdateras...) Instruktioner och hjälp för installation, se DSV:s webbsidor: http://dsv.su.se/introdator/java/ Kursen OOP OOP F1:8 Läses av flera olika studentgrupper: DSK1:OOP (ID1013) GES:OOP OBS samma kurs med samma innehåll. Kursen är på 7.5 hp, examinationen uppdelad på: Inlämningsuppgift 1, 1.5 hp Inlämningsuppgift 2, 3 hp Tentamen, 3 hp Inlämningsuppgifterna betyg G/U, tentan betyg A-F 4

Kursen OOP OOP F1:9 Innehåll: Litteratur: Java's språkkärna imperativa delen OOP delen Användning av API-biblioteket Konstruktion av mindre program Lewis & Loftus Java Software Solutions, Upplaga 6 (annan bok kan användas) Föreläsningsbilder mm. material Kommunikation: First Class-konferens för inlämning av inlämningsuppgifter samt handledning. Webbplats för material. // Ett första JAVA-program OOP F1:10 class Hello{ public static void main(string[]args){ System.out.println("Hej Världen!"); } } // Resten av raden är en kommentar, ignoreras av kompilatorn { } - start och slut på ett block Case Sensitive (skiftlägeskänsligt) Namngivning mm - följ API-bibliotekets utseende Filnamn - samma som class-namn + suffixet.java Hello.java - kompileras och Hello.class skapas 5

OOP F1:11 Kompilering & Exekvering (interpretering) Källkoden på filen Hello.java Kompilering: >javac Hello.java Ger bytekodsfilen Hello.class Exekvering (egentligen interpretering av bytekoden...): >java Hello Programmering OOP F1:12 Indata Program Utdata Data kan vara av olika typ: "Kalle Nilsson" 2010 73.67 'X' 730512 true "Stockholm" Måste representeras i programmet. 6

Javas enkla (primitiva) datatyper OOP F1:13 Heltalstyper: byte short int long Flyttalstyper: float double Övriga: char boolean 8 bitar 16 bitar 32 bitar 64 bitar 32 bitar 64 bitar Unicode 16 bitar true / false Textsträngar (INTE enkel datatyp): String Output OOP F1:14 Görs via System.out, anropa antingen print eller println: System.out.print("Hej"); System.out.println("Hopp"); System.out.println("Oj"); Värdet av en variabel kan skrivas ut: int x=25; System.out.println(x); Ska flera saker skrivas ut så slås de ihop med operatorn + System.out.println("Resultatet="+x); System.out.println("Namn="+namn+"Åldern="+ålder); 7

Input OOP F1:15 Görs via System.in. Måste filtreras, lämpligen med en Scanner Scanner sc=new Scanner(System.in); String namn=sc.nextline(); Ofta först ställa fråga, sedan läsa in: System.out.print("Vad heter du?"); String namn=sc.nextline(); System.out.print("Hur gammal är du?"); int ålder=sc.nextint(); Klassen Scanner finns i delbiblioteket java.util Måste anges "nånstans" Olika inläsningsmetoder i klass Scanner: sc.nextline() sc.nextint() sc.nextdouble() m.fl. för olika input-varianter Varför behöver inte String och System anges på motsvarande sätt? Output och input med JOptionPane OOP F1:16 Med en biblioteksklass som heter JOptionPane kan man skapa enkla dialogrutor: JOptionPane.showMessageDialog(null, "Meddelande: "); JOptionPane ligger i delbiblioteket javax.swing String namn=joptionpane.showinputdialog("namn:"); OBS endast String kan läsas in, vill man ha annan sort måste man konvertera. String str = JOptionPane.showInputDialog("Hur gammal är du?"); int ålder = Integer.parseInt(str); 8