Opgavesæt 1 i BlueJ

Klasser, objekter, metoder, constructor, compiler

Start BlueJ.
BlueJ er installeret, så der åbnes et minimeret DOS-vindue, som ikke må lukkes, og et BlueJ-vindue, hvori man arbejder).

  1. "hello"
    Under menuen "Project", "Open Project" åbnes i mappen "examples" filen "hello".
    Tryk evt. på "Compile" for at oversætte (nødvendigt ved enhver ændring af koden).
    Højreklik på klassen "Hello" (brunlige ikon), og vælg constructoren "Hello()" - anvend default-navnet, som foreslås. "New" betyder at der oprettes et objekt af klassen "Hello", placeret forneden og med rød farve.
    Højreklik på objektet "hello_1", og vælg den eneste metode, som findes her: "go()". "Void" betyder, at den ikke returnerer nogen værdi, "go" er metoden navn, "()" betyder, at der ikke skal indtastes nogen parameter. Resultatet er, at et såkaldt terminal-vindue åbnes, og metoden go() skriver "Hello, world" i vinduet!
    Gentag metoden et par gange! Hvad sker der?
    Opret nu et nyt objekt - default-navn: "hello_2", og kør metoden "go() på denne. Resultatet er som før!
    Gå nu til terminal-vinduet og indstil under "options": "Record method call".
    Kør nu metoden "go() på de 2 objekter. Nu kan du se, hvorfra skriverne stammer: "hello_1.go()" eller "helleo_2.go()".
    Luk terminal-vinduet, og i BlueJ lukkes "Hello" sådan: "Project", "Close".

  2. "shapes"
    Hent projektet "shapes".
    Compiler projektet - læg mærke til rækkefølgen det sker i.
    Højreklik på "Circle"-klassen, og opret et objekt "circle_1". Bemærk, at der åbnes et nyt vindue med en blå cirkel indtegnet.
    Højreklik på objektet "circle_1", og skift farve til rød v.hj.a. metoden "changeColor(String)". Husk at en String indtastet MED gåseøjne! Nu burde cirklen på canvas'en skifte til rød.
    Højreklik på objektet "circle_1" og vælg BlueJ-menuen "Inspect". Så ser du tilstanden af objektet attributter: alle 4 er private, 3 er hele tal (diameter, x og y) og en streng (farve).
    NB: med BlueJ-menuen "Remove", kan objektet fjernes.
    Afprøv en efter en de 10 metoder, som du har fået stillet til rådighed af klassen "Circle".
    Prøv de andre klasser: "Triangle" og "Square". Opret gerne flere af samme klasse.

  3. "picture"
    Hent og compiler "picture".
    Du kender den fra før, men nu er der kommet en ny klasse "picture".
    Opret et objekt af klassen "Picture". Der sker tilsyneladende indenting. Men kør så "picture_1"'s metode "draw()", og set at der bliver tegnet.
    Kør "Inspect" på objektet "picture_1", og se at det består af 4 objekt-referencer: 2 kvadrater, 1 cirkel og en trekant. Marker dem en ad gangen, og tryk "Inspect". Så kan du se dette objekts attributter. Passer det nogenlunde med figuren?
    Morale: et objekt kan således bestå af andre objekter!

  4. "people"
    Hent "people" og compiler evt.
    Opret et objekt af klassen "Database", og 2 objekter af klassen "Student", samt 1 objekt af klassen "Staff". NB: du kan ikke oprette et objekt af klassen "Person", da den er erklæret 'abstract'.
    Studenter og staff (ansatte) arver attributter (og metoder) fra klassen "Person": navn og fødselsdag.
    Giv de 2 studenter og den ansatte et navn og en fødselsdag.
    Den ansatte skal også have tildelt et lokale (Room). Giv ham et.
    Studenterne burde få tildelt et Student-ID, men der mangler en metode til det!
    Indsæt så de 3 personer i databasen ("database_1"'s metode "addPerson(Person)". Læg mærke til, at parameteren her et et objekt og ikke blot et tal eller en tekst!
    Se udskrift af indholdet i databasen med metoden "listAll()". Evt. skal terminal-vinduet renses med menuen "Options", "Clear".

  5. "people2"
    Hent "people2" og compiler evt.
    Opret 2 studenter med construtoren "Student(name,yearOfBirth,studentID)".
    Giv studenterne en adresse med metoden "setAddress(String,String,String)", som er arvet fra klassen "Person", og implementeret i klassen "Address"!

  6. "zork1"
    Hent dette spil, compiler, og opret et objekt af klassen "Game". Start spillet med metoden "play()". Find vejen ud!