Programmering

BlueJ og Greenfoot: De bedste IDE'er til at lære Java

Du siger, at du vil lære Java. Det kan være et skræmmende sprog. Det kan endda virke uigennemtrængeligt, hvis du er en ny programmør. Men du trækker vejret dybt og beslutter dig for at give det en chance. Ok, første ting først: Du har brug for et af de integrerede udviklingsmiljøer (IDE'er), du har læst om. En enkelt applikation, hvor du kan redigere, opbygge, køre, fejlfinde og implementere din Java-applikation, der snart skal skrives.

Flere populære, gratis Java IDE'er er tilgængelige: Eclipse, NetBeans og community-udgaven af ​​IntelliJ, for eksempel. Du vælger en, downloader og installerer den, og på meget kort tid indser du, at du nu har to ting at lære: Java og IDE. Dit valgte udviklingsværktøj er lige så uigennemtrængeligt som det sprog, det skal hjælpe dig med.

Indtast BlueJ og Greenfoot, to IDE'er, der er meget specielt designet til begyndere. De er produktet af et hold baseret på King's College i London (skønt holdmedlemmer til tider har været tilknyttet universiteter i Australien og Danmark). Skaberne af BlueJ og Greenfoot valgte funktionssættet og interface design for ikke at overvælde begyndere.

Faktisk, som Neil Brown, forklarer hovedudvikleren, er BlueJs og Greenfoot's funktioner "... afsløret, når brugerne kommer til dem." Du smides ikke ind i den dybe ende af poolen. Derfor giver begge en nem introduktion ikke kun til Java-sproget, men til de værktøjer og teknikker, der er nødvendige for at opbygge applikationer på dette sprog.

Lær Java med BlueJ

BlueJ dukkede først op i 1999, opkaldt blot Blue. På det tidspunkt var det både et udviklingsmiljø og et sprog. Da Java dukkede op, blev værktøjet genopbygget ved hjælp af Java som sprog, og navnet blev ændret til BlueJ.

Udgaver af BlueJ findes til Linux, MacOS og Windows. BlueJ kommer også i en generisk form: pakket som en JAR-fil, så BlueJ kan installeres på ethvert system, der understøtter Java. Den aktuelle version af BlueJ (4.2.2 på tidspunktet for denne skrivning) kræver JDK 11 eller nyere, og skal derfor køres på et 64-bit operativsystem. Tidligere findes der 32-bit versioner, men de udvikles ikke længere.

Jeg blev først opmærksom på BlueJ (og Greenfoot), da jeg fandt dem forudinstalleret på en Raspberry Pi 4, som jeg havde fået sidste år. Jeg lærte senere, at BlueJ var blevet installeret på Raspberry Pi siden 2015.

Åbn et projekt i BlueJ, så får du et forfriskende sparsomt vindue: menulinje over toppen, værktøjslinje til venstre for et stort arbejdsbænkeområde og en mindre objektbænderude nedenfor. Knapper på værktøjslinjen giver dig mulighed for at oprette en klasse, definere et arvelig forhold eller kompilere en klasse. Projektklasser vises på arbejdsbænken som en slags pareret UML-diagram, og mens BlueJ ikke er et fuldt blæst visuelt udviklingsmiljø, er det nok af et, så du kan se forholdet mellem enheder i dit program, men ikke miste synet af koden.

Dobbeltklik på et klasseikon i arbejdsbænken, og dens kilde åbnes i editoren, hvor en anden visuel hjælp afsløres: omfangsfremhævning. Med omfangsbelysning fremhæves indlejrede kodeblokke bogstaveligt i forskellige farvede baggrunde, så du hurtigt kan se området dækket af en metode inden for en klasse, en til loop inden for en metode, en hvis erklæring inden for det til loop og så videre. Kodestruktur gøres umiddelbart synlig.

Højreklik på en klasse i arbejdsbænken, og der vises en ny menu, der - afhængigt af klassens art og sammensætning - giver dig mulighed for at kompilere klassen, inspicere dens indhold, oprette en tilsvarende testklasse (mere om dette senere), udføre en klassemetode eller instantier et objekt i klassen. Her er BlueJs interaktivitet i centrum.

Klasser kan sammensættes individuelt; du behøver ikke at genopbygge et helt projekt, hvis du har ændret en enkelt klasse. Vælg at udføre en klassemetode, og der vises en dialog, der beder dig om metodens input. Indtast inputene, klik på OK, og en anden dialog bliver til, der viser returværdien og dens datatype.

Hvis du starter en klasse, vises et ikon, der repræsenterer det nye objekt i objektbænken. Som med klasser kan du højreklikke på objektikonet og undersøge objektets indhold. Du kan også udføre individuelle objektforekomstmetoder; dialoger vises (som ovenfor) til indtastning af inputargumenter og visning af returværdier.

BlueJ ville ikke være en komplet IDE uden en debugger. Du kan indstille fejlfindingsbrudpunkter i BlueJ på samme måde som i andre IDE'er. I editoren skal du bare klikke i kolonnen til venstre for den målrettede kildekodelinje. Når brudpunktet udløses under udførelse, åbnes BlueJs fejlfindings-pop op-vindue, der viser tråde, opkaldstak, låser statiske og forekomstvariabler samt de velkendte fejlretningskontroller (trin, træd ind, fortsæt og stop). Endnu en gang står BlueJs ryddelige præsentation ikke imellem dig og opgaven.

Som nævnt ovenfor kan BlueJ oprette en testklasse fra et klasseikonets højreklikmenu. Den automatisk oprettede klasse er en skeletklasse JUnit testklasse (JUnit 4 er integreret med BlueJ). Den består af tom konstruktør, Opsætning()og rive ned() metoder. Du kan enten oprette testmetoder ved at åbne klassens kilde i editoren eller bruge en slags indbygget guide, der via en række dialoger fører dig gennem oprettelse af testmetoder.

På samme måde yder BlueJ hjælp til oprettelse af JavaFX- og Swing-grafiske applikationer. Tutorials leveres, og arbejde gennem JavaFX-tutorial afslører den reelle fordel ved at bruge BlueJs evne til at udføre metoder på "live" objekter (mens applikationen kører). Du kan faktisk se resultatet af en metodeopkald på en grafisk komponent.

BlueJs indbyggede interaktive tutorials får dig fra jorden. Hvis du har brug for endnu mere undervisningsmateriale, bogen Objekter først med Java, medskrevet af BlueJ-skaberen Michael Kölling, bruger BlueJ som udviklingsmiljø til at præsentere en begynders tilgang til objektorienteret programmering i Java.

Lær Java med Greenfoot

Bygget på BlueJ af den samme skaber, Michael Kӧlling, er Greenfoot en mere specialiseret IDE end BlueJ. Mens BlueJ ofte bruges i indstillingen af ​​et introduktionskursus på universitetsniveau, er Greenfoot målrettet mod yngre brugere; så ung som 14 år. For at fange og holde et yngre publikums opmærksomhed er Greenfoot blevet udformet som en "enkel Java IDE og animationsramme." Hvilket betyder, at det er til opbygning af spil.

For at forstå Greenfoot skal du først lære dets terminologi. Et Greenfoot-projekt er et "scenario". Hvert scenarie har en "verden", som er dit spilles spilleregler. Det er en todimensional container beboet af "aktører". Vær forsigtig her - en Greenfoot-skuespiller er ikke den særlige form for objektorienteret, samtidig programmeringsenhed med samme navn (se //en.wikipedia.org/wiki/Actor_model). Greenfoot-skuespillere er dit spil.

En Greenfoot-skuespiller har attributter og metoder (karakteristika og adfærd). Et kendetegn ved en skuespiller er dens udseende - ikonet, der vises i verden for at repræsentere den skuespiller. Greenfoot leveres med en række skuespillerbilleder for at komme i gang, eller du kan oprette og importere dit eget billede.

Greenfoot's visuelle arrangement er et spejlbillede af BlueJ. Greenfoot's hovedvindue er verden. Til højre er en lodret værktøjslinje befolket med arvediagrammer af projektklasser. Typisk er der to arv "træer" i værktøjslinjen, en rodfæstet i basen Verden klasse, den anden er rodfæstet i basen Skuespiller klasse. Afledte klasser forgrener sig fra disse to rødder.

Som med BlueJ åbner dobbeltklik på ikonet for en klasse den tilknyttede kilde i et redigeringsvindue. Greenfoot-editoren er identisk med BlueJ's, hvilket ikke er overraskende, da næsten hele BlueJ udføres under Greenfoot. Så Greenfoot's redaktør har BlueJ's omfang fremhævet, og Greenfoot's debugger fungerer nøjagtigt som BlueJs.

Rediger en klasse i editoren, og dens ikon i arvediagrammet er krydsskraveret. Dette indikerer, at klassen skal kompileres igen, før den kan bruges til at instantiere et objekt. Derudover bliver alle objekter i verden, der stammer fra denne klasse, slørede (ikke længere i skarp lettelse) for at vise, at de nu er forældede. Heldigvis, som i BlueJ, kan du sammensætte klasser individuelt.

Når du har instantificeret en skuespiller, kan du placere den i verden ved at trække og slippe dens ikon i verdens vindue. Strengt taget behøver du ikke placere en skuespiller i verden, før nogen af ​​skuespillerens metoder kan kaldes. Højreklik på en skuespiller for at vælge en metode til at ringe til. Hvis metoden kræver inputparametre, åbnes en dialog, der giver dig mulighed for at angive parameteren.

Tiden skal flyde i Greenfoot-verdenen for at skuespillere skal bevæge sig. Men det er en digital verden, så tiden skrider frem i flåter af et internt ur - en opdateringssløjfe. To knapper - Handle og køre - styrer udførelsen af ​​den løkke. Klik på knappen Handle, og løkken kører en gang. Klik på Kør, knappen bliver pause, og løkken kører, indtil du klikker på knappen igen for at stoppe den. Disse knapper er selvfølgelig yderst nyttige til test og fejlretning af dit spil.

Hvis du skal suspendere dit scenarios udviklingssession, og du vil fortsætte, hvor du slap, kan du redde verden (hvilket er meget mindre dramatisk, end det lyder). Greenfoot vil fange placeringen og tilstanden af ​​aktører i verden og kode disse oplysninger til en metode, der kaldes af aktørernes konstruktør. Resultatet: Din scene samles igen, næste gang du starter Greenfoot IDE.

Hvad sker der under spillet, når to skuespillere kolliderer? Eller noget sprænger? Et spil skal have lydeffekter. Greenfoot kan importere .wav-filer til et scenarie, og metoder giver dig mulighed for at afspille disse lyde, når specifikke begivenheder udløses. Intet forhindrer dig i at låne nogen af ​​de lyde, der følger med de forskellige tutorials på Greenfoot-webstedet. Men i tilfælde af at du vil oprette din egen, leverer Greenfoot en indbygget lydoptager. Optagerens redigeringsfunktioner er enkle, men brugbare. Det er dybest set et "capture and trim" -system.

Endelig, hvis du har brug for spilidéer ud over dem, der er angivet i Greenfoot's tutorials, vrimler Greenfoot's hjemmeside med scenarier oprettet og uploadet af brugere fra hele verden. Nogle kan endda spilles online. Kvaliteten er forståeligt nok plettet, men de mange forskellige spil vidner om Greenfoot's alsidighed.

Trædesten til pro Java-programmering

Ifølge skaberen Michael Kӧlling, mens BlueJ typisk bruges i et universitets indledende programmeringskursus, er Greenfoot velegnet til brug i gymnasiet. Ikke desto mindre, uanset din alder, kan du få masser af kilometertal ud af begge IDE, hvis du lige har sat foden på vejen til Java selvuddannelse.

Ud over de allerede nævnte tutorials er der en betydelig mængde støttemateriale på BlueJ og Greenfoot-webstederne. Vi har allerede nævnt BlueJ-lærebogen; der findes også en lærebog til Greenfoot, Introduktion til programmering med Greenfoot. (Se webstederne for købsoplysninger.)

Hverken IDE er velegnet til opbygning af produktklare Java-applikationer på virksomhedsniveau. Men som introduktionsbiler for alle, der er nye til Java, markerer de alle felterne, og de belaster dig ikke med værktøjslinje og menukompleksitet. De er solide, glatte trin til Java-udvikling i professionel kvalitet.