Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Kapittel 3 Bruk av klasser og objekt. 3.1 Å lage objekt Eit variabelnamn i Java representerer Ein primitiv verdi (f eks boolean, int ) Eit objekt (f eks.

Liknende presentasjoner


Presentasjon om: "Kapittel 3 Bruk av klasser og objekt. 3.1 Å lage objekt Eit variabelnamn i Java representerer Ein primitiv verdi (f eks boolean, int ) Eit objekt (f eks."— Utskrift av presentasjonen:

1 Kapittel 3 Bruk av klasser og objekt

2 3.1 Å lage objekt Eit variabelnamn i Java representerer Ein primitiv verdi (f eks boolean, int ) Eit objekt (f eks String ) Deklarasjon boolean ferdig; String melding; Verdi for primitive typer, referanse (adresse) for objekt Vi har så langt ikkje gitt verdi, vi har berre sett av plass i minnet Vi må initialisere (gi verdi) før bruk

3 Å lage objekt Variabelen må referere til eit gyldig objekt før bruk Bruk av det reserverte ordet null Instansiering med operatoren new : String str = new String(“Pink Floyd”); Når vi har laga objektet, kan vi bruke. operatoren for å få tilgang til metodane klassen tilbyr int l = str.length(); Sjølv om metoden ikkje skal ha parameter må vi bruke paranteser for å vise at det er ein metode, og ikkje ein instansvariabel, vi bruker Denne metoden returnerer ein int, andre kan returnere andre typer, eventuelt ikkje ha returverdi ( void )

4 Å lage objekt Snarveg for å lage String -objekt String by = “Molde”; Aliaser int num1 = 14, num2 = 3; num1 = num2; Vi har framleis to variable av type int, begge har verdien 3 String by1 = “Molde”, by2 = “Ålesund”; by1 = by2 Vi har framleis to variable av klassen String, men begge peiker på det same objektet ( “Ålesund” )

5 Å lage objekt String -objektet med verdi “Molde” er blitt søppel, sidan vi ikkje har variable som refererer til det Dette objektet kan vi aldri få tak i seinare, så det er utan verdi for oss I Java har vi automatisk garbage collection som går gjennom minnet og slettar søppel Viktig forskjell frå C++

6 3.2 String klassen String -objekt som er laga kan ikkje endrast Mange metoder i String -klassen returnerer nye String -objekt som er resultat av endringar på originalobjektet sin verdi Indeksering av posisjonane til dei ulike tegna i strengen startar på 0! Viktige metoder i figur 3.1 Merk spesielt at vi bruker compareTo() eller equals() ved samanlikning, og ikkje =

7 3.3 Pakker Eit klassebibliotek er eit sett med klasser vi kan bruke til å lage program Teknisk sett er klassebibliotek ikkje ein del av programmeringsspråket Java Klassene er gruppert i pakker, slik at ein pakke omfatter klasser som logisk sett høyrer saman Vi må importere det vi vil bruke av klasser i programma våre Unntak: java.lang Import - deklarasjon

8 3.4 Random -klassen import java.util.Random; Vi har ofte bruk for tilfeldige tal, men det kan vi ikkje få Vi kan derimot få noko som liknar, pseudotilfeldige tal, via Random -klassen Tal blir generert av ei komplisert algoritme slik at dei ser tilfeldige ut Bruk: terningkast, spel, simulering Viktig: ved å spesifisere seed kan vi reprodusere våre “tilfeldige” tal

9 3.5 Math -klassen Finst i java.lang -pakken, treng difor ikkje importerast Tilbyr stort sett det vi treng av matematiske funksjonar Alle metodane i denne klassen er statiske Vi kan bruke metodane gjennom klassenamnet, utan å lage objekt int val = Math.pow(4, 4); Det reserverte ordet static

10 3.6 Formatering av output NumberFormat - klassen Kan brukast til å formatere tal til valuta DecimalFormat - klassen Generell formatering av tal printf - metoden i System – klassen Blir ikkje sett på som god objektorientert programmering Inkludert for å gjere overgangen frå C lettare

11 3.7 Enumererte typer Alle verdier ein variabel av ein enumerert type kan ha, blir lista opp Variable av denne typen er type-safe, som betyr at kun verdiar som er definert for typen blir akseptert ordinal() viser til det interne nummeret verdien har name() viser til verdien

12 3.8 Wrapper-klasser Vi treng av og til objekt som representerer primitive typer Det finst ein slik wrapper class for kvar primitiv type (8 stk) Klassene tilbyr metoder for å administrere dei tilsvarande primitive typane, sjå f eks figur 3.8 for Integer Autoboxing – automatisk konvertering mellom primitiv type og korresponderande wrapper- objekt

13 3.9 Komponentar og containerar Vi startar no å lage program med GUI (Grafisk brukergrensesnitt) Merk: program utan GUI kan også vere nyttige... GUI komponentar er objekt som representerer element på skjermen Vise informasjon, f eks label Tilby interaksjon med brukaren, f eks meny GUI-relaterte klasser finst i java.awt (Abstract windowing toolkit), den originale Java- pakken for GUI. Her finn vi f eks Color -klassen javax.swing, meir allsidige enn det vi finn i java.awt. Vi bruker javax.swing når vi kan

14 Komponentar og containerar Ein container er ein spesiell type komponent som kan inneholde og administrere andre komponentar Rammer (frames) og panel (panels) er to Java containerar Tungvekt (heavyweight) container blir styrt av operativsystemet Frames er tungvekt og blir vist som eit eige vindu, blir definert av JFrame -klassen Frames har fleire panes (felt, ruter) som styrer ulike karakteristikkar av rammene Alle synlege element blir vist i ramma sin content pane Lettvekt (lightweight) blir styrt av Javaprogrammet Panel er lettvekt og må leggast til i ei ramme for å bli vist i denne, blir definert av JPanel -klassen

15 Komponentar og containerar Korleis lagar vi eit GUI i Java? JFrame objekt der vi viser grensesnittet Primærpanel som blir lagt til ramma si content pane Komponentane i primærpanelet blir ofte organisert ved hjelp av andre panel etter behov Vi går gjennom eksemplet i Listing3.7 og ser på bruk av JFrame, JPanel og JLabel

16 3.10 Nøsta panel For å lage innholdsrike og oversiktlege grensesnitt må vi ofte lage eit meir komplisert hierarki av komponentar Det er særleg vanleg å bruke fleire lag med panel for å gruppere og organisere komponentar Meir om layout og bruk av layout managers seinare Eksemplet i Listing 3.8 bruker nøsta panel på ein enkel måte

17 3.11 Bilete Vi kan vise bilete ved hjelp av JLabel Vi går gjennom Listing 3.9 ImageIcon -klassen representerer eit bilete som blir inkludert i ein label Plassering av bilete og tekst i labelen Plassering av labelen i panelet Vi må eksplisitt legge til komponentar for å få dei vist


Laste ned ppt "Kapittel 3 Bruk av klasser og objekt. 3.1 Å lage objekt Eit variabelnamn i Java representerer Ein primitiv verdi (f eks boolean, int ) Eit objekt (f eks."

Liknende presentasjoner


Annonser fra Google