1Modul 1
Introduktion til Java programmering
IntroduktionKursusintroduktionIntroduktion til programmeringJava og BlueJ, andre IDEOOP i Java
2
Præsentation kursusholdere
Kursusholder:Kis Boisen Hansen, tlf. 72 69 15 69, mail: [email protected] Helmer Nielsen, tlf. 72 69 15 65, mail: [email protected]
Modul 1 3
Kursets indhold Modul 1 ( Ib ):
Introduktion til JavaIntroduktion til platform, programmeringssprog og udviklingsmiljøObjektorienteret programmering i Java. Grundlæggende emner indenfor OOP.
Modul 2 ( Kis ): Objekter. Interaktion mellem objekter.
Modul 3 ( Ib ):Collections af objeket Objektorienteret design og Java. Grundlæggende principper for objektorienteret design.
Modul 1 4
Kursets indholdModul 4 ( Kis ):
Java klasse bibioteker, her introduceres nogle af de vigtigste biblioteker til Java.Udvalgte API’er.
Modul 5 ( Ib ):Arv mellem klasserPolymorfiInterfaceEvaluering
Praktiske oplysninger
Møde tider og skema:Mandag til torsdag:
Vi starter med morgen kaffe 8.30 i lokaletCa. 11.45 er der frokost 15.30 slutter dagens modul
Fredag:Her slutter dagens modul 12.30
Praktiske oplysninger
Kontakt informationer:• Skolen kan kontaktes pr. telefon på 72 69 80 00• Skolens adresse er
Sofiendalsvej 609200 Aalborg SV
• Post sendes til:Postboks 719100 Aalborg
• eller pr. email : [email protected] kan kontaktes via email eller telefon på:
Kis Boisen Hansen, tlf. 72 69 15 69, mail: [email protected] Helmer Nielsen, tlf. 72 69 15 65, mail: [email protected]
Praktiske oplysninger
• Undervisnings materiale kan hentes på adressen: http://public.noea.dk/JavaU49/
• Der er en mappe for hver modul (dag) hvor slides etc. kan finde. Herudover er der også mapper for opgaver, løsninger, src og materiale (litteratur der danner grundlag for moduler)
• Efter hver dag bliver der også lagt en zippet version at modul mappe op (denne er lidt lettere at hente ned), da man så kun skal hente en fil.
Modul 1 8
Struktur af javaU49 mappen
Modul 1
Bog der er anvendt I modul 1 og flere af de efterfølgende.
David J. Barnes & Michael KöllingObjects First with JavaA Practical Introduction using BlueJ4th edition, Pearson Education, 2008ISBN 0-13-606086-2.
Modul 1 10
MODUL 1• Introduktion til Java• Introduktion til platform, programmeringssprog og udviklingsmiljø• Objektorienteret programmering i Java. • Grundlæggende begreber indenfor OOP.
Modul 1 11
Læringsmål for modul 1
Læringsmålet for modul 1 er:• at kursister forståelse for hvad java er og hvordan
kode oversættes og afvikles på en given platform.• at kursisten kan redegøre for den grundlæggende
ide i et objektorienteret programmeringssprog som java.
• at kursisten kan anvende BlueJ som platform ved programmering samt afvikling af simple applikationer.
12
Grundbegreber om programmeringProgram
en utvetydig opskrift på en ”beregning” der kan udføres af en computerProgrammeringssprog
notation til at udtrykke programmerProgrammør
en aktør der konstruerer programmerProcessor
en aktør der udfører et programHardware
det isenkram det benyttes af processoren ved udførelse af programmetData
input, output og mellemresultater ved udførelse af programmer
13Modul 1
Eksempler fra kursetProgram
BlueJ-projekt (katalog med en .java-fil pr. klasse i projektet)BlueJ er en ”høvlbænk”: det sted programmer skabes
ProgrammeringssprogJava (Java-compileren, er selv et program…)
ProgrammørJer!
ProcessorJava VM (Java virtuel maskine, er selv et program...)
HardwareJeres computer
Datavilkårlig information der er repræsenteret digitalttal, tekst, lyd, billeder, video, programmer, ...
Introduktion til Java
BaggrundHvad er Java?Faciliteter i Java
Java’s Historie
1. version af Java blev lavet i 1991af James Gosling ved Sun MicrosystemsOprindeligt ment som et platform uafhængigt sprog til indlejring i forbruger elektronik som køleskabe og vaskemaskinerEt af de første projekter var en fjernkontrolMen da internettet på det tidspunkt var ved komme i gang indså Sun at Java kunne bruges til web programmering
(i parentes bemærket: Det var oprindeligt meningen at JavaScript og Java skulle have været det samme.)
Hvad er Java?
Java er:Et programmeringssprogEt udviklingsmiljøEt miljø for afvikling af applikationerEt deployment miljø
Mottoet for Java er:Compile once, run everywhere
Programmeringssprog
Java er et veludbygget objekt orienteret programmeringssprogKan bruges til alle slags applikationer der kører på platforme fra mobiltelefoner (og mindre) til mainframe computere
Programming Introductory
The AimWell designedWell writtenEasy to maintain
The ProcessWrite the software (implementation)“Translate” the software (compilation)Correct syntax errors
Test the softwareCorrect the logical errors
Modul 1
Programming Introductory
Syntax and Semantics
The man drinks a cold beerThe man drinks a cold beeerThe beer drinks a cold man
Modul 1
Modul 1 20
Java “Versioner”Der findes nogle forskellige “versioner” af Java:• Java CARD = Java applets running on smart card• Java ME = Java Micro Edition• Java SE = Java Standard Edition• Java FX = Rich Internet application, Enterprise client application• Java EE = Java Enterprise EditionJava SE er:• JVM = Java Virtual Machine, som udfører Java byte kode• Java API = et stort bibliotek til almindelig programmering• Java compiler som oversætter fra Java source kode til Java byte kode diverse andre
toolsJava EE er:• Specielle biblioteker til server side. EE består af 5 hoved dele:• Servlets, JSP (Java Server Pages), EJB (Enterprise Java Beans), JCA (Java Connector
Architecture), JSF (Java Server Faces)
Modul 1 21
JRE og JDK
Når man vil downloade JAVA fra: http://www.oracle.com er der to typer af pakker
Modul 1 22
JRE og JDK
JRE står for Java Runtime Envioment, og skal bruges hvis man ønsker, at afvikle java applikationer på sin computer.
JDK står for Java Development Envioment, og indeholder java runtime envioment, en java compiler samt andre værktøjer der skal anvendes, hvis man vil lave java programmer.
Udviklingsmiljø
Indeholder i sig selv en større pakke af værktøjerEn compilerEn fortolker (interpreter)Dokumentations generator (javadoc)Et pakke værktøj (jar filer)Osv.
Man behøver ikke et IDE for at programmere Java(men det hjælper)
Kort om IDE’er
Der findes en del IDE’er til at programmere Java medMen de mest udbredte er:
Eclipse (Open Source, støttes af IBM)NetBEans (Open Source, støttes af Sun)Idea IntelliJ (JetBrains, payware. Har light version i Open Source)
25Modul 1
Et Java-program i BlueJ
Modul 1 26
Installation af IDE
På følgende adresse er der to videoer der demonstrer, hvordan BlueJ og Eclipse installeres på en PC der kører windows 7:
http://public.ucn.dk/JavaU49/Materiale/
Applikations og runtime miljø
Et javaprogram vil normalt kunne afvikles på alle platforme som har Java Runtime Enviroment (JRE) installeretDer er i praksis to måder at få JRE på platformen:
Download den fra java.sun.com (eller IBM, Oracle, ….)Eller få sammen med Java SE sdk’etEller få den gennem browseren, når du kører en applet eller JavaFx application
Virtuel Machine
Er i virkeligheden en emulator. Den sørger for at afvikle Bytecode, som er emulatorens maskinkodeDer skal være implementeret en JVM til platformen for at kunne afvikle JavaJVM kender og tilgår platformens hardware.Applikationen kender ikke det fysiske hardware, kun det virtuelle i JVM
ByteCode:Et specielt maskin sprog som JVM kan afvikleEr uafhængig af hardware uanset hvilken platform programmet var udviklet på
Garbage Collection
Sørger for at deallokere memory, når det kan lade sig gøre. Garbage Collector’en kører automatisk og kan ikke aktiveres af applikationen.Det betyder at programmøren ikke behøver at bekymre sig om at deallokere hukommelseTilgengæld kan du ikke være sikker på hvornår deallokering sker.
Compile og kør et java program
Mit første Java program
public class HelloWorld { /** * Mit første Java program */
// Udskriv Hello World! på skærmen public static void main(String[] args) {
System.out.println("Hello World!"); }}
Lav et Java-program
1. Åben kommando.prompt i et passende bibliotek2. Skriv notepad HelloWorld.java3. Skriv programmet og gem.4. Skriv javac HelloWorld.java og oversæt
programmet(hvis den ikke kan finde javac skal du sætte path til at pege på dit JDK’s bin bibliotek)
5. Kør programmet: java HelloWorld6. Den skriver (forhåbentlig) Hello World!
Fundamental concepts
objectclassmethodparameterdata type
Objects and classes
objectsrepresent ‘things’ from the real world, or from some problem domain (example: “the red car down there in the car park”)
classesrepresent all objects of a kind (example: “car”)
Methods and parameters
Objects have operations which can be invoked (Java calls them methods).Methods may have parameters to pass additional information needed to execute.
Other observations
Many instances can be created from a single class.An object has attributes: values stored in fields.The class defines what fields an object has, but each object stores its own set of values (the state of the object).
Modul 1
State
Modul 1
Two circle objects
Modul 1
Source code
Each class has source code (Java code) associated with it that defines its details (fields and methods).
Modul 1
Return values
Methods may return a result via a return value.
41
BlueJ – The Interactive Java Environment
Demonstration . .
Lav ”Hello World” med BlueJ
Lav programmet ”Hello World” med BlueJ
The Fundamentals of Object-Oriented Programming
ClassesRepresent all objects of a kind (example: “a car”)
ObjectsRepresent specific items from the real world, or from some problem domain (example: “the red car out there in the parking lot”)An object is an instance of a class – arbitrarily instances can be created
AttributesObjects are described by attributes stored in fields
MethodsObjects have “operations” which can be invoked
ParametersMethods may have parameters to pass additional information needed to execute
Return valuesMethods may return values as a result of the operation
Modul 1
The Fundamentals of Object-Oriented Programming
StateThe class defines the fields of an item, but the object is described by it’s own set of attributes
Modul 1
The Fundamentals of Object-Oriented Programming
Modul 1
Two objects are created from the “circle” class with their own state (set of attributes
From Source Code to ExecutableThe class implementation is described by text, written in the given programming language (Java), describing the attributes and methods.
Modul 1
Java bytecode
Machine code
Java compiler
Java interpreter
Java bytecodecompiler
Java source code
OpgaverGrundlæggende opgaver
BlueJ ex. 1.1 – 1.9 (shape example) BlueJ ex. 1.10 – 1.14 (picture example)
Ekstra opgaverBlueJ ex. 1.15 – 1.16 (picture example continued) Extend the picture example: Draw a tree next to the house by applying the elements (circle, square, and triangle).
Andre eksempler:Project: Student – lab classExercise: 1.17 – 1.25
Modul 1