Vägledning till BlueJ

Relevanta dokument
Michael Kölling översättning Set Lonnert PLATSHÅLLARE ERSÄTT FÖRSTA SIDAN MED ORGINAL

Vägledning till BlueJ

Lšneadministration Handbok

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Objekt och klasser - Introduktion. Objekt. Spar_Konto 2. Spar_Konto 1. Konton. Ett objekt har: Ett bankkonto. public void uttag(double belopp)

Kapitel 6. Kapitel 6. Hakparenteser fšr att ange index float[] priser = new float[500]; frekvens[4] boolean[] flaggor;

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

DatortillŠmpningar. Det har hšnt nœgot!

Social kompetens/všrdegrund

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

Classes och Interfaces, Objects och References, Initialization

Samband mellan resurser och resultat

Editering, Kompilering och Exekvering av Javaprogram

Newtons metod i en och flera variabler

ELEKTRONISKA MNESGUIDER

Att använda Java SE JDK 6

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

NetBeans 5.5. Avsikt. Projektfönster

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

F R O R D. Stockholm i december Katja KerŠnen. E-post: katja.keranen@swipnet.se

First Office. Redovisning. Ekonomisystem fšr Macintosh och Windows

Fakturering Kund & Leverantšrsreskontra. Handbok

Personuppgifter pœ Internet. Undantag frœn fšrbudet i 33 personuppgiftslagen

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

MILJ BALKENS EFTERBEHANDLINGSANSVAR FASTIGHETS GARE

NetBeans 7. Avsikt. Projektfönster

Kort om klasser och objekt En introduktion till GUI-programmering i Java

not notismœl NUTEK NŠrings- och teknikutvecklingsverket prop proposition ref referat

Mobilister och nallar i forskningens tjšnst Jan Einarsson

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

Svenska. AnvŠndarhandbok. FŠrgskanner. Tryckt på återvunnet papper

dess fšrhœllande till konkurrensrštten

Enkšping-HŒbo TrŠdgŒrdssŠllskap Hšsten 2013 PROGRAM H STEN Enkšping-HŒbo TrŠdgŒrdssŠllskap

Kopiering av objekt i Java

a. didoner b. ellipstecken c. gif d. kapitšler e. pica f. rastertšthet g. serif h. spšrra i. stycketecken

Barnets ršttigheter utifrœn barnets rštt att komma till tals

L SNINGSF RSLAG TILL TENTAMEN PROGRAMMERING I JAVA, 5P

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

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

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

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Eclipse en handledning

Jan Einarsson, Offentlig privathet i nšrradion denna version 2000, Studentlitteratur och fšrfattaren. Offentlig privathet i nšrradion Jan Einarsson

L SNINGSF RSLAG TILL TENTAMEN PROGRAMMERING I JAVA, 5P

kylskåp BRUKSANVISNING ERM

SYSTEMUTVECKLING. - en jšmfšrelse mellan teoretiska modeller och ett praktikfall

(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

Swe intro /10/99 12:11 pm Page i

Kan man lita pœ fšrvaltningsbeslut?

Objektorienterad programmering i Java I

1 Inledning 2 2 Aktieboken 3

ISO/IEC Riktlinje 22 och EN Owa 3-chome, Suwa-shi, Nagano-ken 392- Japan

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Utbildning via Internet

Logikprogrammering. KŠnnetecken. Exempel pœ relation. Relationer. Varianter. KŠnnetecken och fšrutsšttningar Prolog

Swe intro /10/99 10:23 am Page i

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

F RMEDLARANSVAR INTERNET

Störningsupplevelse av buller i klassrum

Friskrivningsklausuler En jšmfšrelse av svensk och italiensk rštt

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

Principskiss av vingbalk

EgenmŠktighet med barn

Konkursbos ansvar fšr konkursgšldenšrens miljšfarliga verksamhet

1 Programmering i Java. Program element - Introduktion. Exempel. Exempel. Kapitel 3:

Laboration 10 - NetBeans

Auktioner pœ Internet

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Java, klasser, objekt (Skansholm: Kapitel 2)

2 Eclipse en handledning

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

WIPO:s tvistlšsningssystem fšr tvister gšllande

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

Hinder och ŒtgŠrder fšr kvinnans tillgœng till ršttssystemet

StrategifšrŠndring vid en bšrsintroduktion

Lennart Carlssons svenska šversšttning av. Material fšr arbetsseminariet i Stockholm samt

Lšnekostnader i fœmansfšretag

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

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

Rehabmodul AB. Bruksanvisning. SvensksprŒkiga versionen

Föreläsning 5-6 Innehåll

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

GrŠnsdragningen mellan ršnta och kapitalvinst Mot bakgrund av R 1995 ref 71 och R 1997 ref 44 Per-Arvid Gustafsson

PROGRAMMERINGSTEKNIK TIN212

Eclipse en handledning

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Öka säkerheten med hjälp av olycksfall

Varfšr ett profilprogram?

SKADEST ND ENLIGT LAG OM OFFENTLIG UPPHANDLING

Informationsförsörjning för nya högskolor

TESAURUSKONSTRUKTION I ÄMNET LANDSKAPSPLANERING

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

Svenska. Tryckt på återvunnet papper

Maj Sofia Kolmodin

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Laboration 10 - Eclipse

I vems intresse? Programmet fšr Juris kandidat-examen/ Fšretags- och Fšrvaltningsjuridisk linje. TillŠmpade studier 10 p.

R 1998 ref 58 I-III ršrande finansiell leasing Ð en analys och kommentar ur inkomstskatteršttsligt perspektiv

Transkript:

Vägledning till BlueJ Version 1.2 för BlueJ Version 1.x.x Michael Kölling School of Network Computing Monash University Översatt från engelska av Set Lonnert

1 Fšrord 4 1.1 Om BlueJ...4 1.2 RŠckvidd och lšsare...4 1.3 Copyright, licensering och distribution...4 1.4 terkoppling...5 2 Att sštta igœng 6 2.1 Installation...6 2.2 Att starta BlueJ...7 2.3 ppna ett projekt...7 3 Grunderna Ð redigera / kompilera / exekvera 8 3.1 Skapa objekt...8 3.2 Exekvering... 10 3.3 Redigera en klass... 12 3.4 Kompilering... 13 3.5 HjŠlp med kompileringsfel... 14 4 Att gšra lite mer... 15 4.1 Inspektion... 15 4.2 Komposition... 18 5 Skapa nytt projekt 19 5.1 Skapa ett bibliotek fšr projektet... 19 5.2 Skapa klasser... 19 5.3 Skapa beroenden... 20 5.4 Ta bort element... 20 6 Avlusning 21 6.1 SŠtta brytpunkter... 21 6.2 Stega igenom kod... 23 6.3 Inspektera variabler... 23 6.4 Stanna och avsluta... 24 7 Att skapa fristœende tillšmpningar 25 8 Skapa appletprogram 26 2

InnehŒllsfšrteckning 8.1 Kšra en applet... 26 8.2 Att skapa en applet... 27 8.3 Testa appletprogram... 27 9 Andra operationer 28 9.1 ppna icke-bluej paket i BlueJ... 28 9.2 LŠgga till existerande klasser till ditt projekt... 28 9.3 Anropa main och andra statiska metoder... 28 9.4 Arbeta med bibliotek... 29 10 Endast summeringar 30 3

1 Förord 1.1 Om BlueJ Denna všgledning Šr en introduktion fšr att anvšnda programmeringsmiljšn BlueJ. BlueJ Šr en utvecklingsmiljš fšr Javaª speciellt designad fšr undervisning pœ en introducerande nivœ. Den Šr utvecklad och implementerad av teamet fšr BlueJ vid Monash University, Melbourne, Australien. Mer information om BlueJ finns pœ http://bluej.monash.edu. 1.2 Räckvidd och läsare Denna všgledning Šr avsedd fšr de som vill bekanta sig med mšjligheterna hos miljšn. Den fšrklarar inte designbeslut eller de forskningsfrœgor som finns bakom miljšn. Det fšrutsštts att lšsaren Šr bekant med programmeringssprœket Java Ð inget fšrsšk gšrs att ge en introduktion till Java i denna všgledning. Detta Šr ingen fullstšndig referensmanual till miljšn. MŒnga detaljer har utelšmnats Ð betoningen ligger pœ en kort och koncis introduktion, snarare Šn en komplett fšrteckning av funktioner. De flesta avsnitt slutar med en summerande slutsats fšr avsnittet. Avsnitt 10 repeterar alla summeringar som snabbreferens. 1.3 Copyright, licensering och distribution Systemet BlueJ och denna všgledning Šr fritt tillgšngliga utan kostnad fšr vilken som helst anvšndning. Systemet och dess dokumentation kan distribueras fritt. Ingen del av systemet BlueJ eller dess dokumentation fœr sšljas fšr vinstintressen eller inkluderas i paket som sšljs fšr vinst, utan skriftligt godkšnnande frœn fšrfattarna. Copyright fšr BlueJ innehas av M. Kšlling och J. Rosenberg. 4

Fšrord 1.4 Återkoppling Kommentarer, frœgor, korrigeringar, kritik och annan typ av Œterkoppling gšllande systemet BlueJ eller denna všgledning Šr varmt všlkomna och uppmuntras aktivt. VŠnligen skicka epost till Michael Kšlling (mik@monash.edu.au). 5

2 Att sätta igång 2.1 Installation BlueJ distribueras som ett arkiv av Javaklasser i ÒjarÓ format. Installering Šr ganska lštt. FšrutsŠttningar Du mœste ha JDK 1.2.2 eller senare installerat pœ ditt system fšr att anvšnda BlueJ. Vissa delar fungerar bšttre med JDK 1.3, sœ det Šr všrt att hšmta eller uppdatera till senaste utgœvan av JDK. Om du inte har JDK installerat kan du ladda ner det ifrœn Suns webbplats http://java.sun.com/j2se/. Att hšmta BlueJ BlueJ distribueras som fil kallad bluej-xxx.jar, dšr xxx Šr versionsnummer. Till exempel har BlueJ version 1.1.1 distributionsnamnet bluej-111.jar. Du kan fœ denna fil via diskett eller ladda ner det frœn webbplatsen fšr BlueJ http://bluej.monash.edu. Om SDK, JDK och JRE Ibland finns fšrvirring šver olika distributioner av Java: SDK, JDK och JRE paketen. Du bšr installera senaste versionen av Java 2 SDK (Software Development Kit). Termen JDK (Java Development Kit) Šr ett Šldre namn fšr samma sak. Sun har Šndrat namnkonventionen vid ett tillfšlle, men ibland anvšnds fortfarande det Šldre namnet (JDK). Till exempel, nšr du installerar Java 2 SDK v. 1.3, sœ kommer standardinstallationen att medfšra biblioteksnamnet jdk1.3. JRE (Java Runtime Enviroment) Šr annorlunda: Det Šr en delmšngd av SDK fšr kšrning av Java. Fšr BlueJ ršcker inte detta. Vi behšver SDK dšrfšr att det inkluderar nœgra utvecklingsverktyg som BlueJ behšver. JRE installeras automatiskt som del av installationen av SDK. Installation Windows: Dubbelklicka pœ installationsfilen (bluej-xxx.jar). Om ditt system inte Šr konfigurerat fšr exekverbara jar-filer, kanske inte dubbelklickandet fungerar. Om det Šr sœ, šppna en fšnster MS-DOS Prompt och fšlj instruktionerna fšr Unix. Unix: 6

Att sštta igœng Kšr installeraren genom att exekvera fšljande kommando. OBS: Fšr detta exempel anvšnder jag distributionen i filen bluej-111.jar Ð du behšver anvšnda namnet pœ den fil du har (med det rštta versionsnumret). <jdk-sökväg>/bin/java -jar bluej-111.jar <jdk-sškvšg> Šr den katalog dšr JDK har installerats. Ett fšnster kommer att dyka upp som lœter dig všlja katalogen dšr BlueJ installeras och den version av JDK som kommer att kšras ihop med BlueJ. Viktigt: SškvŠgen till BlueJ (dvs. vilken som helst av fšršldrakatalogerna) fœr inte innehœlla mellanslag (t.ex. "Program Files")! Klicka pœ Install. Efter avslutning kommer BlueJ vara installerat. Om du har problem, se den FAQ som finns pœ webbstšllet fšr BlueJ. 2.2 Att starta BlueJ Installationen av BlueJ installerar ett skript bluej i installationsbiblioteket. FrŒn en GUI-miljš kan du bara dubbelklicka filen. FrŒn kommandoraden (t.ex. Unix eller DOS), kan du starta BlueJ med eller utan ett projekt som argument: $ bluej eller $ bluej examples/people 2.3 Öppna ett projekt Projekten i BlueJ Šr liksom standardpaketen i Java, bibliotek som innehœller filerna i projektet. Om du startar BlueJ frœn kommandoraden och ger ett projekt som argument, kommer det att šppnas automatiskt. Om du startar BlueJ utan argument, anvšnder du Paket Ð ppna... i menyn fšr att všlja och šppna projektet. 7

3 Grunderna redigera / kompilera / exekvera Fšr detta handboksavsnitt, šppnar du projektet people som Šr inkluderat i distributionen av BlueJ. Du kan hitta det i biblioteket examples i hembiblioteket fšr BlueJ. Efter šppnandet av paketet bšr du se nœgot liknande det fšnster du ser i Figur 1. Fšnstret behšver inte se exakt likadant ut som pœ ditt system, men skillnaderna bšr vara smœ. Figur 1: Huvudfšnstret i BlueJ 3.1 Skapa objekt En av de fundamentala egenskaperna fšr BlueJ Šr att du inte bara kan kšra hela tillšmpningar, men ocksœ direkt interagera med enskilda objekt frœn vilken som helst klass och kšra deras publika metoder. En exekvering i BlueJ gšrs vanligtvis genom att skapa ett objekt och sedan anropa en av objektets metoder. Detta Šr mycket anvšndbart under utveckling av en tillšmpning Ð du kan testa klasserna individuellt omedelbart efter de har skrivits. Hela tillšmpningen behšver inte skrivas fšrst. 8

Grunderna Ð redigera / kompilera / exekvera Not: Statiska metoder kan exekveras direkt utan att skapa objektet fšrst. En av de statiska metoderna kan vara ÒmainÓ, sœ vi kan gšra samma sak som hšnder i vanliga JavatillŠmpningar Ð starta en tillšmpning bara genom att exekvera en statisk main-metod. Vi kommer att Œterkomma till detta senare. Men vi kommer att gšra en del intressantare saker fšrst, som inte vanligtvis kan gšras i Javamiljšer. Rutorna som du ser i mitten av huvudfšnstret (kallad Database, Person, Staff och Student) Šr ikoner representerande klasser i denna tillšmpning. Du kan fœ en meny med operationer tillšmpbara pœ klassen genom att hšgerklicka pœ klassikonen (Figur 2). Operationerna som visas Šr new operationer fšr varje konstruktor definierad fšr denna klass (fšrst) fšljt av nœgra operationer givna av omgivningen. Figur 2: Klassoperationer (popupmeny) Vi vill skapa ett objekt frœn Staff (anstšlld), sœ du bšr hšgerklicka pœ ikonen Staff (sœ poppar menyn upp som visas i Figur 2). Menyn visar tvœ konstruktorer fšr att skapa ett objekt av Staff, en med parametrar och en utan. VŠlj fšrst konstruktorn utan parametrar. Dialogen i Figur 3 visas. Figur 3: Skapandet av objekt utan parametrar 9

Grunderna Ð redigera / kompilera / exekvera Dialogen frœgar efter ett namn fšr det objekt som skall skapas. Samtidigt fšreslœs ett namn (staff_1). Det ršcker gott med standardnamnet fšr tillfšllet, sœ klicka bara OK. Ett objekt frœn Staff kommer att skapas. Sedan objektet har skapats placeras det pœ objektbšnken (Figur 4). Detta Šr allt som behšvs fšr objektskapande: všlj en konstruktor frœn klassmenyn, exekvera den och du har ett objekt placerat pœ objektbšnken. Figur 4: Ett objekt pœ objektbšnken Du har kanske lagt mšrke till att klassen Person Šr etiketterat <<abstract>> (det Šr en abstrakt klass). Du kommer att mšrka (om du pršvar) att du inte kan skapa objekt frœn abstrakta klasser (som specifikationen fšr Java definierar). Summering: Fšr att skapa ett objekt, všlj en konstruktor frœn klassens popupmeny. 3.2 Exekvering NŠr du nu har skapat ett objekt, kan du exekvera dess publika operationer. Hšgerklicka pœ objektet och en meny med objektoperationer kommer att poppa upp (Figure 5). Menyn visar tillgšngliga metoder fšr detta objekt och tvœ speciella operationer givna av omgivningen (Inspektera och Ta bort). Vi kommer att diskutera dessa senare. LŒt oss fšrst koncentrera oss pœ metoder. Figure 5: Objektmenyn Du ser att det finns metoderna getroom och setroom vilka sštter och returnerar rummets nummer fšr de anstšllda (staff). Fšrsšk anropa getroom. VŠlj det frœn objektmenyn sœ kommer det exekveras. En dialog uppenbaras som visar dig resultatet av anropet (Figur 6). I detta fall sšger namnet Ò(unknown room)ó, okšnt rum, dšrfšr att vi aldrig specificerade rummet fšr denna person. 10

Grunderna Ð redigera / kompilera / exekvera Figur 6: Visande av funktionens resultat Metoder som Šrvs frœn en superklass Šr tillgšngliga genom en undermeny. Vid toppen av objektets popupmeny finns tvœ undermenyer, en fšr metoder som Šrvs frœn Object och en frœn Person (Figur 6). Du kan anropa metoderna i Person (som getname) genom att všlja dom frœn undermenyn. Fšrsšk. Du kommer att se att svaret Šr lika vagt: det sšger Ò(unknown name)ó, okšnt namn, dšrfšr att vi har inte angivit vœr persons namn. Fšrsšk nu att specificera ett namn pœ ett rum. Detta kommer att visa hur anrop med parametrar sker. (Anropen till getroom och getname hade returvšrden, men inga parametrar.) Anropa funktionen setroom genom att všlja den frœn menyn. En dialog framtršder och ber dig skriva in parametrarna (Figur 7). Figur 7: Dialog fšr funktionsanrop med parametrar LŠngst upp i dialogen visas gršnssnittet fšr en metod som anropas (inklusive kommentarer och signatur). Nedanfšr finns textinmatningsfšlt dšr du kan skriva in parametrar. Signaturen šverst talar om fšr oss att en parameter av typen String všntas. Skriv in det nya namnet pœ en stršng (inklusive citattecken) i textfšltet och klicka pœ OK. Det Šr allt Ð eftersom denna metod inte returnerar en parameter, sœ finns ingen resultatdialog. Anropa getname igen fšr att kontrollera att namnet verkligen har Šndrats. Lek med att skapa objekt och anropa metoder ett slag. Fšrsšk skapa en konstruktor med argument och anropa flera metoder tills du kšnner dig bekant med dessa operationer. Summering: Fšr att exekvera en metod, všlj den frœn popupmenyn fšr objekt. 11

Grunderna Ð redigera / kompilera / exekvera 3.3 Redigera en klass n sœ lšnge har vi endast sett pœ objektens gršnssnitt. Nu Šr det tid att se inuti. Du kan se implementationen av en klass genom att všlja Editera Implementationen frœn klassoperationerna. (Kom ihœg: hšgerklickande pœ klassikonen visar klassoperationerna.) Dubbelklickande pœ en klassikon Šr en genvšg fšr samma funktion. Editorn beskrivs inte i detalj i denna všgledning, men bšr vara enkel att anvšnda. Detaljer om editorn kommer att beskrivas separat senare. Fšr tillfšllet, šppna implementationen av klassen Staff. Sšk efter implementationen av metoden getroom. Om den returnerar, som namnet antyder, Šr det rumsnumret fšr den anstšllde (staff). LŒt oss byta metoden genom att lšgga till prefixet ÒroomÓ, rum, till funktionen resultat (sœ att metoden returnerar, lœt sšga Òroom C.5.10Ó istšllet fšr bara ÒC.5.10Ó). Vi kan gšra det genom att Šndra raden return room; till return "room " + room; BlueJ stšder den fullstšndiga omodifierade Java, sœ det Šr ingenting speciellt med hur du implementerar dina klasser. Summering: Fšr att redigera kšllkoden till en klass, dubbelklicka dess klassikon. 3.4 Kompilering Efter att du satt in text (innan du gšr nœgot annat), kontrollera projektšversikten (huvudfšnstret). Du kommer att se att klassikonen fšr Staff har fšršndrats: det Šr nu streckat. Dess streckade utseende markerar att klassen inte har kompilerats sedan den Šndrades sist. Tillbaka till editorn. Not: Du kanske undrar varfšr klassens ikon var streckad nšr du fšrst šppnad projektet. Det beror pœ att klasserna i projektet people redan var kompilerade i distributionen. Ofta Šr paketen med BlueJ inte kompilerade, sœ du kan všnta dig att se de flesta klassikoner med streck nšr du šppnar projekt frœn och med nu. I knappraden hšgst upp pœ editorn finns nœgra funktioner som anvšnds speciellt mycket. En av dessa Šr Kompilera. Denna funktion lœter dig kompilera en klass direkt inifrœn editorn. Klicka nu pœ Kompilera. Har du inte har gjort nœgra misstag, kommer ett meddelande visa sig i informationsrutan lšngst ned pœ editorn som talar om att klassen har kompilerats. Om du har gjort misstag som lett till syntaxfel, kommer raden att markeras och ett felmeddelande visas i informationsutrymmet. (Om din kompilering fungerade fšrsta gœngen, fšrsšk dœ att lšgga in ett syntaxfel Ð som ett uteblivet semikolon Ð och kompilera igen, bara fšr att se vad som hšnder.) StŠng editorn efter att du lyckats kompilera klassen. 12

Grunderna Ð redigera / kompilera / exekvera Not: KŠllkoden behšver inte sparas explicit. KŠllkoden sparas automatiskt nšrhelst det Šr lšmpligt (t.ex. nšr editorn stšngs eller fšre det en klass kompileras). Du kan explicit spara om du vill (det finns en funktion i editorns meny Klass), men det behšvs endast om ditt system Šr instabilt, kraschar regelbundet och du Šr ršdd att fšrlora ditt arbete. Verktygsraden fšr projektfšnstret har ocksœ en knapp Kompilera. Denna kompileringsoperation kompilerar hela projektet. (I sjšlva verket bestšmmer den vilka klasser som behšver omkompileras och omkompilerar dessa i rštt ordning.) Prova detta genom att Šndra tvœ eller flera klasser (sœ att tvœ eller flera klasser fœr streck i klassdiagrammet) och klicka sedan knappen Kompilera. Om ett fel upptšcks i en av de kompilerade klasserna, kommer editorn att šppnas och det stšlle dšr felet finns visas samt felmeddelande. Kanske har du upptšckt att objektbšnken Šr tom igen. Objekt tas bort varje gœng implementationen fšršndas. Summering: Fšr att kompilera en klass, klicka pœ knappen Kompilera i editorn. Fšr att kompilera ett paket, klicka pœ knappen Kompilera i paketfšnstret. 3.5 Hjälp med kompileringsfel Mycket ofta har nybšrjare svœrt att fšrstœ felmeddelanden frœn kompilatorn. Vi skall fšrsška ge lite hjšlp. ppna editorn igen, sštt in ett fel i kšllkoden och kompilera. Ett felmeddelande bšr visa sig i editorns informationsutrymme. Till hšger om informationsutrymmet visas ett frœgetecken som du kan klicka pœ fšr att fœ mer information om den hšr typen av fel (Figur 8). Figur 8: Ett kompileringsfel och knappen fšr HjŠlp Vid detta tillfšlle finns inte hjšlptexter tillgšngliga fšr alla fel. NŒgra hjšlptexter mœste skrivas. Men det kan vara všrt att fšrsška Ð mœnga fel finns redan fšrklarade. De ŒterstŒende kommer att skrivas och inkluderas i framtida utgœvor av BlueJ. Summering: Fšr att fœ hjšlp med ett felmeddelande frœn kompilering, klicka pœ frœgetecknet intill felmeddelandet. 13

4 Att göra lite mer... I detta kapitel kommer vi att gœ igenom nœgra saker du kan gšra i miljšn. Saker som inte Šr essentiella men mycket vanliga. 4.1 Inspektion NŠr du exekverar metoder hos ett objekt, kan du upptšckt operationen Inspektera som finns tillgšnglig fšr objekt jšmte de anvšndardefinierade metoderna (Figure 5). Denna operation tillœter kontroll av tillstœndet hos instansvariabler (ÒfŠltÓ) hos objekt. Fšrsšk skapa ett objekt med nœgra anvšndardefinierade variabler (exempelvis ett objekt Staff med konstruktorn som tar parametrar). VŠlj sedan Inspektera frœn objektmenyn. En dialog uppenbaras, visande objektfšlten, deras typer och deras všrden (Figur 9). Figur 9: Inspektionsdialogen Inspektion Šr anvšndbart fšr att snabbt kontrollera hurvida en muteringsoperation (en operation som Šndrar tillstœndet hos objektet) exekverades korrekt. AlltsŒ, inspektion Šr ett enkelt avlusningsverktyg. I exemplet med Staff Šr alla fšlt av enkel typ (antingen icke-objekt typer eller stršngar). VŠrdet hos dessa typer kan visas direkt. Du kan omedelbart se om konstruktorn har gjort de rštta tilldelningarna. I mer komplicerade fall kan všrdena hos fšlt vara referenser till anvšndardefinierade objekt. Fšr att se ett sœdant exempel anvšnder vi ett annat projekt. ppna projektet people2 som ocksœ inkluderas i standarddistributionen av BlueJ. Diagrammet fšr people2, visas i Figur 10. Som du kan se har detta andra exempel ytterligare en klass Address, fšrutom de klasser som visades tidigare. Ett av fšlten i klassen Person Šr av den anvšndardefinierade typen Address. 14

Att gšra lite mer... Figur 10: Diagram av paketet people2 Fšr nšsta sak vi vill pršva ut Ð inspektion av objektfšlt Ð skapa ett objekt av Staff och anropa sedan metoden setaddress hos det objektet (som du finner i undermenyn till Person). Mata in en adress. Internt kommer Staff skapa ett objekt av klassen Address och lagra det i sitt fšlt address. Inspektera nu objektet frœn Staff. Den resulterande inspektionsdialogen visas i Figur 11. FŠlten inom objektet frœn Staff inkluderar nu address. Som du kan se visas dess všrde som <object reference> Ð eftersom det Šr ett komplext anvšndardefinierat objekt, kan inte dess všrde visas direkt i denna lista. Fšr att undersška adressen nšrmare, všlj fšltet address i listan och klicka pœ knappen Inspektera i dialogen. (Du kan ocksœ dubbelklicka fšltet address.) Ett annat inspektionsfšnster šppnas i sin tur visande detaljerna hos objektet frœn Address (Figur 12). Figur 11: Inspektion med objektreferens Figur 12: Inspektion av interna objekt Om det valda fšltet Šr publikt sœ istšllet fšr klicka Inspektera, kan du ocksœ všlja fšltet address och klicka pœ knappen Ta fram. Denna operation placerar det utvalda objektet pœ objektbšnken. DŠr kan du utforska det vidare genom att anropa dess metoder. Summering: Objektinspektion tillœter enkel avlusning genom att visa ett objekts interna tillstœnd. 15

Att gšra lite mer... 4.2 Komposition Termen ÒkompositionÓ refererar till mšjligheten att skicka objekt som parametrar till andra objekt. LŒt oss fšrsška pœ ett exempel. Skapa ett objekt av klassen Database. (Du kommer att se att Database har bara en konstruktor som inte tar nœgra parametrar, sœ bildandet av objekt Šr enkelt.) Objektet frœn Database har mšjlighet att innehœlla en lista av personer. Det har operationer fšr att addera objekt av personer och visa alla de personer som finns inlagda. (Att kalla det fšr Database, databas, Šr egentligen en liten šverdrift!) Om du inte redan har ett objekt frœn Staff eller Student pœ objektbšnken, skapa en av dessa ocksœ. Fšr det fšljande behšver du ett objekt av Database samt dessutom samtidigt ett objekt frœn Staff eller Student pœ objektbšnken. Anropa nu metoden addperson hos ett objekt frœn Database. Signaturen talar om att en parameter av typen Person všntas. (Kom ihœg: klassen Person Šr abstrakt, sœ det finns inga objekt som Šr direkt av typen Person. Men genom subtypning kan objekt frœn Student och Staff substitueras fšr personobjekt. SŒ det Šr tillœtet att skicka Student eller Staff dšr en Person všntas.) Fšr att skicka ett objekt som du har pœ din objektbšnk som parameter till det anrop du gšr, kan du skriva in namnet pœ det i parameterfšltet eller som genvšg bara klicka pœ objektet. Detta sšnder dess namn till metodanropsdialogen. Klicka OK och anropet gšrs. Eftersom det inte finns en returmetod fšr denna metod, ser vi inget omedelbart resultat. Du kan anropa metoden listall i objektet frœn Database fšr att kontrollera att operationen verkligen genomfšrdes. Operationen listall skriver ut informationer om personer till standardutmatningen. Du kommer att se en terminal som automatiskt šppnas fšr att visa texten. Fšrsšk igen med fler Šn en person i ÒdatabasenÓ. Summering: Ett objekt kan skickas som parameter till ett metodanrop genom att klicka pœ objektikonen. 16

5 Skapa nytt projekt Detta kapitel tar dig ut pœ en snabbtur hur du sštter upp nytt projekt. 5.1 Skapa ett bibliotek för projektet Fšr att skapa ett nytt paket, všlj Paket Ð Nytt... frœn menyn. En fildialog šppnas som lœter dig specificera namn och plats fšr ett nytt projekt. Fšrsšk det nu. Du kan všlja vilket som helst namn fšr ditt projekt. Efter du har klickat pœ OK, kommer ett bibliotek skapas med det namn du valde och huvudfšnstret visar det nya tomma projektet. Summering: Fšr att skapa ett projekt všlj Nytt... frœn menyn Paket. 5.2 Skapa klasser Du kan nu skapa klasser genom att klicka pœ knappen Ny KlassÉ pœ verktygsraden. Du kommer att fœ fylla i namnet pœ en klass Ð detta mœste vara en giltig identifierare i Java. Du kan ocksœ všlja frœn fyra typer av klasser: abstrakt (abstract), gršnssnitt (interface), appletprogram (applet) eller ÒstandardÓ. Detta val avgšr vilken sorts skelett som kommer att initialt genereras fšr din klass. Du kan senare Šndra typ av klass genom att Šndra kšllkoden (t.ex. genom att i koden lšgga till nyckelordet ÒabstractÓ). Efter skapandet av en klass representeras den genom en ikon i diagrammet. Olika fšrger identifierar olika typer av klasser, till exempel blœ fšr normala klasser, ljusblœ fšr abstrakta klasser, gršnt fšr gršnssnitt. NŠr du šppnar en editor fšr en ny klass kommer du att mšrka att ett standardskelett har skapats Ð detta borde gšra det lštt att bšrja. Standardkoden Šr syntaktiskt korrekt. Den kan kompileras men den gšr inte mycket. Fšrsšk skapa en del klasser och kompilera dessa. Summering: Fšr att skapa en klass klickar du pœ knappen Ny KlassÉ och specificerar klassnamnet. 17

Skapa nytt paket 5.3 Skapa beroenden Klassdiagrammet visar beroenden mellan klasser i form av pilar. Arvsrelationer (ÒextendsÓ eller ÒimplementsÓ) visas som dubbla pilar, relationen ÒanvŠnderÓ visas som enkla pilar. Du kan lšgga till beroenden antingen grafiskt (direkt i diagrammet) eller via text i kšllkoden. Om du adderar en pil grafiskt kommer kšllkoden automatiskt uppdateras; om du lšgger till i kšllkoden uppdateras diagrammet. Fšr att lšgga till en pil grafiskt klickar du pœ den lšmpliga pilknappen (dubbla pilar fšr ÒextendsÓ eller ÒimplementsÓ, enkla pilar fšr ÒanvŠnderÓ) och dra pilen frœn en klass till den andra. Att lšgga till pil fšr arv sštter in definitionerna ÒextendsÓ eller ÒimplementsÓ i kšllkoden (beroende pœ om mœlet var en klass eller ett gršnssnitt). Att lšgga till en pil fšr ÒanvŠnderÓ fšršndrar inte omedelbart koden (om inte mœlet Šr en klass frœn ett annat paket. I det fallet genereras en sats ÒimportÓ, vilket vi Šnnu inte sett i vœra exempel). Att ha en pil fšr anvšnder i ett diagram pekandes pœ en klass som egentligen inte anvšnds i kšllan, kommer att generera en varning senare som talar om att ÒanvŠnderÓ deklarerades men att klassen aldrig anvšnds. Att lšgga till pilar som text Šr enkelt: skriv bara in koden som du normalt skulle gšra det. SŒ fort som klassen sparas, sœ uppdateras diagrammet. (Kom ihœg: stšngs editorn, sparas koden automatiskt.) Summering: Fšr att skapa en pil klickar du pœ pilknappen och drar pilen i diagrammet, eller skriver i editorns kšllkodsfšnster. 5.4 Ta bort element Fšr att ta bort en klass frœn diagrammet všljer du klassen och sedan Ta Bort Klass frœn menyn Redigera. Du kan ocksœ všlja Ta Bort frœn klassens popupmeny. Fšr att ta bort en pil všljer du Radera pil frœn menyn och sedan všljer du pilen du vill ta bort. Summering: Fšr att ta bort en klass všljer du funktionen att Ta Bort frœn popupmenyn. Summering: Fšr att ta bort en pil, všlj Radera pil frœn menyn Redigera och klicka pœ pilen. 18

6 Avlusning Detta avsnitt introducerar de všsentligaste synpunkterna pœ avlusningsfunktioner i BlueJ. Vid samtal med lšrare i data har vi ofta hšrt kommentaren att det vore trevligt att anvšnda en avlusare under fšrsta undervisningsœret, men att det helt enkelt inte finns tid. Studenter kšmpar med editorn, kompilatorn och exekveringen; det finns ingen tid šver till att introducera ytterligare ett komplicerat verktyg. Det Šr dšrfšr vi har beslutat att gšra avlusaren sœ enkel som mšjligt. MŒlet Šr att ha en avlusare du kan fšrklara pœ 15 minuter som studenterna kan anvšnda framšver och de inte behšver vidare instruktioner om. LŒt oss se om vi har lyckats. Fšrst har vi reducerat funktionaliteten av traditionella avlusare till endast tre uppgifter: sštta brytpunkter stega igenom kod inspektera variabler andra sidan Šr var och en av dessa uppgifter mycket enkel. Vi kommer nu att pršva ut var och en av dom. Fšr att sštta igœng šppnar du paketet debugdemo, som inkluderas i biblioteket examples i distributionen. Detta paket innehœller nœgra klasser vars enda uppgift Šr att demonstrera avlusningsfunktionerna Ð dšrutšver Šr de inte speciellt begripliga. 6.1 Sätta brytpunkter Att sštta en brytpunkt lœter dig avbryta kšrningen vid en speciell punkt i koden. NŠr kšrningen avbryts kan du undersška tillstœndet hos dina objekt. Det hjšlper dig ofta att fšrstœ vad som hšnder i din kod. I editorn till všnster om texten finns brytpunktsutrymme (Figur 13). Du kan sštta en brytpunkt genom att klicka dšr. Ett litet stopptecken visas fšr att markera brytpunkten. Fšrsšk det nu. ppna klassen Demo, sšk efter metoden loop och sštt brytpunkten nœgonstans i loopen for. Stopptecknet bšr visa sig i din editor. Figur 13: En brytpunkt 19

Avlusning NŠr kodraden med brytpunkten nœs, kommer exekveringen att avbrytas. LŒt oss fšrsška det nu. Skapa ett objekt av klassen Demo och anropa metoden loop med en parameter, lœt sšga 10. SŒ fort som brytpunkten nœs kommer ett editorfšnster att šppnas, visande den nuvarande raden av kod, och avlusningsfšnstret dyker upp. Det kommer ungefšr att se ut som i Figur 14. Figur 14: Avlusningsfšnstret Markeringen i editorn visar raden som kommer att kšras hšrefter. (Kšrningen stoppades fšre denna rad.) Summering: Fšr att sštta en brytpunkt klickar du i brytpunktsomrœdet till všnster om texten i editorn. 6.2 Stega igenom kod NŠr vi nu har stoppat exekveringen (vilket švertygar oss om att metoden verkligen kšrs och denna punkt i koden verkligen nœs), kan vi enkelstega genom koden och se hur kšrningen fortskrider. Fšr att gšra detta, klicka upprepade gœnger pœ knappen Step i avlusningsfšnstret. Du kommer att se kšllkodsrader i editorn fšršndras (markeringen fšrflyttas till den rad som kšrs). Varje gœng du klickar pœ knappen Step, exekveras en sats och exekveringen stannar igen. Notera ocksœ att všrdena hos variablerna fšršndras, som visas i avlusningsfšnstret (t.ex. všrden fšr sum). SŒ du kan stegvis exekvera och observera vad som hšnder. NŠr du tršttnat pœ detta, kan du klicka pœ brytpunkten igen fšr att ta bort den, och sedan pœ knappen Continue i avlusningsfšnstret fšr att Œter starta exekveringen normalt. LŒt oss prova det igen med en annan metod. SŠtt en brytpunkt i klass Demo, metoden cartest() i raden som lyder places = mycar.seats(); Anropa metoden. NŠr brytpunkten nœs, kommer du precis nœ en rad som innehœller ett metodanrop till metoden seats() i klassen Car. Klickar du Step kommer du att gœ fšrbi raden. LŒt oss pršva Step Into den hšr gœngen. Om du stegar in i ett metodanrop (step into) sœ kommer du att nœ in i metoden och kšra den rad fšr rad (inte stegvis bearbetning). I detta fall tas du in till seats() metoden i klassen Car. Nu kan du lyckligtvis stega dig igenom denna metod tills du nœr slutet och Œterkommer till den anropande metoden. Notera hur avlusaren visar fšršndringar. 20

Avlusning Step och Step Into beter sig lika om den nuvarande raden inte innehœller ett metodanrop. Summering: Fšr att enkelstega genom din kod anvšnder du knapparna Step och Step Into i avlusningsmiljšn. 6.3 Inspektera variabler NŠr du avlusar din kod Šr det viktigt att fœ insikt i sina objekt (lokala variabler och instansvariabler). Att gšra detta Šr trivialt Ð det mesta har du redan sett. Du behšver inga speciella kommandon fšr att inspektera variabler; instansvariabler hos det nuvarande objektet och lokala variabler hos den nuvarande metoden visas och uppdateras alltid automatiskt. Du kan všlja metoder i en anropssekvens fšr att se variabler hos andra aktiva objekt och metoder. Fšrsšk t.ex. sštta en brytpunkt i metoden cartest() igen. PŒ všnster sida om avlusningsfšnstret ser du anropssekvensen. Det visar nu Car.seats Demo.carTest Detta indikerar att Car.seats anropades av Demo.carTest. Du kan všlja Demo.carTest i denna lista fšr att inspektera kšllan och de nuvarande variablernas všrden i denna metod. Om du gœr fšrbi raden som innehœller instruktionen new Car(...) kan du observera att všrdet hos den lokala variabeln mycar visas som <object reference>. Alla všrden av objekttyp (utom String) visas pœ detta sštt. Du kan inspektera denna variabel genom att dubbelklicka den. Genom att gšra det šppnas ett fšnster fšr objektinspektering identiskt med det som tidigare beskrivits (avsnitt 4.1). Det finns ingen verklig skillnad mellan att inspektera objekt hšr och inspektera objekt pœ objektbšnken. Summering: Inspektera variabler Šr lštt Ð de visas automatiskt i avlusningsfšnstret. 6.4 Stanna och avsluta Ibland nšr ett program kšrs under lœng tid, funderar du kanske šver om allt verkligen Šr riktigt. Kanske Šr det en infinit slinga (loop), kanske tar det bara lœng tid. NŒ, vi kan kontrollera. Anropa metoden longloop() frœn klassen Demo. Denna tar lite tid. Nu vill vi veta vad som hšnder. Ta fram avlusningsfšnstret om det inte redan Šr framme pœ skšrmen. (Fšrresten, att klicka pœ skruven som indikerar att maskinen kšrs under exekveringen Šr en genvšg fšr att visa avlusaren.) 21

Avlusning Klicka nu pœ knappen Halt. Kšrningen avbryts precis som om vi hade stštt pœ en brytpunkt. Du kan ta nœgra steg, observera variabler och se att allt Šr klart Ð det behšver bara lite tid att bli fšrdigt. Du kan bara fortsštta med knappen Continue och stanna med Halt flera gœnger fšr att se hur snabbt den ršknar. Om du inte vill gœ vidare (till exempel om du har upptšckt att du befinner dig i en infinit slinga) kan du bara klicka pœ Terminate fšr att avsluta hela exekveringen. Avslutningen (Terminate) bšr inte anvšndas fšr ofta Ð du kan lšmna helt všlformulerade objekt i inkonsistenta tillstœnd genom att abrupt avsluta maskinen, sœ det rekommenderas att du endast anvšnder det som nšdutgœng frœn programmet. Summering: Halt och Terminate kan anvšndas fšr att stanna en kšrning temporšrt eller permanent. 22

7 Att skapa fristående tillämpningar BlueJ kan skapa exekverbara jar-filer. Exekverbara jar-filer kan kšras under vissa system genom att dubbelklicka pœ filen (t.ex. Windows), eller att utfšra kommandot java -jar <filnamn>.jar (Unix eller DOS prompt). Vi kommer att fšrsška med projektet hello. ppna det (det finns i katalogen examples). SŠkerstŠll att projektet redan Šr kompilerat. VŠlj funktionen ExporteraÉ frœn menyn Paket. En dialog šppnas som lœter dig všlja lagringsformat. VŠlj "Spara som jar-fil" fšr att skapa en exekverbar jar-fil. Fšr att gšra jar-filen kšrbar, mœste du ocksœ specificera en huvudsaklig klass. Denna klass mœste ha en giltig main-metod definierad (med signaturen public static void main(string[] args)). I vœrt exempel Šr valet av huvudsaklig klass enkelt: det finns bara en klass. VŠlj Hello frœn popupmenyn. Om du har andra projekt, všlj den klass som innehœller metoden "main" som du vill lœta vara kšrbar. Vanligtvis sœ vill du inte inkludera kšllkodsfiler tillsammans med de kšrbara filerna. Men du kan, om du všljer att distribuera kšllkodsfilerna ocksœ. Klicka pœ Continue. Sedan kommer du att se en fildialog som lœter dig specificera namnet pœ den jar-fil du vill skapa. Skriv hello och klicka pœ OK. Skapandet av exekverbara jar-filer Šr fšrdigt. Du kan dubbelklicka jar-filen endast om tillšmpningen anvšnder ett GUI-grŠnssnitt. VŒrt exempel anvšnder ett textsnitt, sœ vi mœste starta det via en textterminal. LŒt oss pršva att kšra jar-filen nu. ppna ett terminalfšnster eller DOS-fšnster. GŒ till katalogen dšr du sparade din jarfil (du bšr se filen hello.jar). Antaget att Java Šr installerat korrekt pœ ditt system, sœ bšr du kunna skriva java -jar hello.jar fšr att kšra filen. Summering: Fšr att skapa en fristœende tillšmpning, anvšnd Paket - Export 23

8 Skapa appletprogram 8.1 Köra en applet BlueJ tillœter dig att skapa och exekvera appletprogram likavšl som tillšmpningar. Vi har inkluderat nœgra appletprogram i exempelbiblioteket i distributionen. Fšrst vill vi fšrsška kšra en av dessa. ppna paketet appletclock frœn exemplen. Du kommer att se att detta paket har bara en klass; med namnet Clock. Klassikonen Šr markerad (med bokstšverna WWW) som en applet. VŠlj kommandot Kšr Applet frœn klassens popupmeny. En dialog poppar upp som lœter dig všlja (Figur 15). Figur 15: Dialogen "Kšr Applet" Du ser att du har mšjlighet att kšra appletprogrammet i en webbklient eller i en appletbetraktare (eller att generera en webbsida utan att kšra det). LŒt standardvšrdena vara och klicka OK. Efter nœgra sekunder kommer en appletbetraktare att dyka upp visande appletprogrammet fšr klockan. Appletbetraktaren (appletviewer) Šr installerad tillsammans med din JDK, sœ den Šr garanterat samma version som din Javakompilator. Generellt innebšr den mindre problem Šn vad webbklienter gšr. Din webbklient kan kšra en annan version av Java och skapa problem, beroende pœ vilken webbklient du anvšnder. Med de allra senaste klienterna bšr det dock gœ bra. Under systemet Microsoft Windows anvšnder BlueJ din standardklient. Under Unixsystem definieras webbklienten av instšllningar i BlueJ. Summering: Fšr att kšra ett appletprogram, všlj Kšr Applet frœn appletprogrammets popupmeny. 24

Skapa appletprogram 8.2 Att skapa en applet Efter att sett hur man kšr en applet vill vi nu skapa vœr egen. Skapa en ny klass med Applet som klasstyp (du kan všlja typen i dialogen Ny Klass). Kompilera och kšr appletprogrammet. Det Šr allt! Det var inte sœ svœrt, va? Appletprogram (liksom andra klasser) genereras med ett standardskelett av giltig kod. Fšr appletprogram innebšr det ett enkelt program som visar tvœ rader text. Du kan nu šppna editorn och redigera appletprogrammet fšr att sštta in din egen kod. Du kommer att se appletprogrammets alla vanliga metoder finns dšr, var och en med kommentarer som fšrklarar dess syfte. Texten som visas finns i metoden paint. Summering: Fšr att skapa ett appletprogram, klicka pœ knappen Ny KlassÉ och všlj Applet som klasstyp. 8.3 Testa appletprogram I nœgra situationer kan det vara anvšndbart att skapa ett objekt av ett appletprogram pœ objektbšnken (som i normala fall). Du kan gšra det Ð konstruktorn visas i appletprogrammet popupmeny. FrŒn objektbšnken kan du inte kšra hela appleten, men du kan anropa nœgra metoder. Detta kan vara anvšndbart fšr att testa enskilda metoder som du har skrivit som del av din implementation av appletprogrammet. 25

9 Andra operationer 9.1 Öppna icke-bluej paket i BlueJ BlueJ lœter dig šppna existerande paket som har skapats utanfšr BlueJ. Fšr att gšra detta všljer du Paket Ð ppna Icke-BlueJ... ifrœn menyn. VŠlj katalogen som innehœller kšllkodsfilerna till Java och klicka sedan knappen ppna i BlueJ. Systemet kommer att frœga efter en bekršftelse pœ om du vill šppna den hšr katalogen. Summering: Icke-BlueJ paket kan šppnas med kommandot Paket: ppna Icke- BlueJÉ 9.2 Lägga till existerande klasser till ditt projekt Ofta vill du anvšnda en klass som du har har fœtt nœgon annanstans ifrœn i ditt BlueJprojekt. Till exempel, en lšrare kan ge en Javaklass till studenterna som skall anvšndas i ett projekt. Du kan enkelt inkludera en existerande klass till ditt projekt genom att všlja Redigera - LŠgg till en klass frœn filé frœn menyn. Detta lœter dig importera kšllkoden till Java (med ett namn vars avslutning Šr.java). NŠr en klass importeras i ett projekt tas en kopia och sparas i den nuvarande projektkatalogen. Effekten Šr densamma som om du precis hade skapat en klass och skrivit all dess kšllkod. Ett alternativ Šr att lšgga till kšllkodsfilen fšr en ny klass till projektkatalogen utifrœn BlueJ. NŠsta gœng du šppnar projektet kommer klassen att inkluderas projektdiagram. Summering: Klasser kan kopieras in till ett paket utifrœn genom att anvšnda kommandot LŠgg till en klass frœn filé i menyn Redigera. 9.3 Anropa main och andra statiska metoder ppna projektet hello frœn katalogen examples. Den enda klassen i projektet (klassen Hello) definierar en standard main-metod. Hšgerklicka pœ klassen och du kommer att se att klassmenyn inkluderar inte bara klassens konstruktor, men ocksœ den statiska metoden main. Du kan nu anropa main 26

Andra operationer direkt frœn menyn (utan att fšrst skapa ett objekt, precis som vi všntar oss frœn en statisk metod). Alla statiska metoder kan anropas pœ detta sštt. Standardmetoden main všntar sig en vektor (array) av String som argument. Du kan skicka en stršngvektor genom att anvšnda Javasyntaxen fšr vektorkonstanter. Till exempel, kan du skicka {"one", "two", "three"} (inklusive klamrar) till metoden. Pršva! Not: I standarden fšr Java kan inte vektorkonstanter anvšndas som argument till metodanrop. De kan endast anvšndas som initialiserare. Fšr att tillœta interaktiva anrop till standardmetoder som main i BlueJ, har vi tillœtit mšjligheten att skicka vektorkonstanter som parametrar. Summering: Statiska metoder kan anropas frœn klassens popupmeny. 9.4 Arbeta med bibliotek Ofta nšr du skriver ett Javaprogram, mœste du referera till Javas standardbibliotek. Du kan šppna webbklienten som visar API-dokumentationen fšr JDK genom att všlja HjŠlp - Java Klassbibliotek frœn menyn (om du Šr uppkopplad). JDK-dokumentationen kan ocksœ installeras och anvšndas lokalt (nedkopplad). Detaljer fšrklaras i referensmanualen till BlueJ. Summering: Javas API fšr standardklasserna kan visas genom att všlja HjŠlp - Java Klassbibliotek. 27

10 Endast summeringar Grunderna 1. Fšr att skapa ett objekt, všlj en konstruktor frœn klassens popupmeny. 2. Fšr att exekvera en metod, všlj den frœn popupmenyn fšr objekt. 3. Fšr att redigera kšllkoden till en klass, dubbelklicka dess klassikon. 4. Fšr att kompilera en klass, klicka pœ knappen Kompilera i editorn. Fšr att kompilera ett paket, klicka pœ knappen Kompilera i paketfšnstret. 5. Fšr att fœ hjšlp med ett felmeddelande frœn kompilering, klicka pœ frœgetecknet intill felmeddelandet. Att gšra lite mer... 6. Objektinspektion tillœter enkel avlusning genom att visa ett objekts interna tillstœnd. 7. Ett objekt kan skickas som parameter till ett metodanrop genom att klicka pœ objektikonen. Skapa nytt paket 8. Fšr att skapa ett paket všlj Nytt... frœn menyn Paket. 9. Fšr att skapa en klass klickar du pœ knappen Ny KlassÉ och specificerar klassnamnet. 10. Fšr att skapa en pil klickar du pœ pilknappen och drar pilen i diagrammet, eller skriver i editorns kšllkodsfšnster. 11. Fšr att ta bort en klass všljer du funktionen att Ta Bort frœn popupmenyn. 12. Fšr att ta bort en pil, všlj Radera pil frœn menyn Redigera och klicka pœ pilen. Avlusning 13. Fšr att sštta en brytpunkt klickar du i brytpunktsomrœdet till všnster om texten i editorn. 14. Fšr att enkelstega genom din kod anvšnder du knapparna Step och Step Into i avlusningsmiljšn. 15. Inspektera variabler Šr lštt Ð de visas automatiskt i avlusningsfšnstret. 16. Halt och Terminate kan anvšndas fšr att stanna en kšrning temporšrt eller permanent. Skapa fristœende tillšmpningar 17. Fšr att skapa en fristœende tillšmpning, anvšnd Paket - ExportÉ Skapa appletprogram 18. Fšr att kšra ett appletprogram, všlj Kšr Applet frœn appletprogrammets popupmeny. 19. Fšr att skapa ett appletprogram, klicka pœ knappen Ny KlassÉ och všlj Applet som klasstyp. 28

Andra operationer Andra operationer 20. Icke-BlueJ paket kan šppnas med kommandot Paket: ppnaé 21. Klasser kan kopieras in till ett paket utifrœn genom att anvšnda kommandot Importera KlassÉ 22. Statiska metoder kan anropas frœn klassens popupmeny. 23. Javas API fšr standardklasserna kan visas genom att všlja HjŠlp - Java Klassbibliotek 29

30