170 likes | 298 Views
Object. Klassen i java Alle klasser arver fra denne om ikke noe annet blir spesifisert ArrayList.add(Object instans) Alle elementer formes til Object når de settes inn i en ArrayList eller andre generelle datastrukturer. Forming / Casting.
E N D
Object • Klassen i java • Alle klasser arver fra denne om ikke noe annet blir spesifisert • ArrayList.add(Object instans) • Alle elementer formes til Object når de settes inn i en ArrayList eller andre generelle datastrukturer.
Forming / Casting • Alle objekter kan formes/castes til sin superklasse. • De kan også selvfølgelig castes tilbake etterpå. • Ingen informasjon går tapt i denne prosessen.
Spørsmål 1 • Hva er Object? • Hvilke klasser arver Object? • Hvorfor står det ikke extends Object bak alle klasser. • Hvorfor trenges klassen Object?
Exceptions • En exception signaliserer at noe feil har skjedd. • Hvis man sørger for å fange en exception, kan programmet fortsette å kjøre selv om en exception blir kastet. • Dere har allerede sette mange exceptions (NullPointerException), men hva er det egentlig?
mer om Exceptions • Exception er en klasse som ligger i java.lang pakken. • Exception er superklassen som alle exceptions arver fra. • Navnet på klassen forteller vanligvis noe om hva som har skjedd. • Hvis man kan risikere at det kastes en Exception, må man enten kaste den videre eller fange den.
Å jakte på exceptions • Å jakte på unntak består av tre ting: Å prøve, å fange og å rydde opp etter seg etterpå. • I praksis foregår det slik:try{ Her skriver man koden som kan komme til å kaste noe. }catch(Exception e){ Det man gjør for å fange} finally{ Det som man vil gjøre uansett, for eksempel for å rydde opp.}
Nyttige Exceptions • IOException – skrive/lese feil • ArrayOutOfBound • NullPointerException • ClassNotFoundException
public class GliPaaIsenException extends Exception{public GliPaaIsenException(){ //Her skjer det ikke så mye}}
public class Person{ private String navn; public Person(String nyttNavn){ navn = nyttNavn; } public void gaaTilGlos() throws GliPaaIsenException{ Random tilfeldig = new Random(); if(tilfeldig.nextBoolean()){ throw new GliPaaIsenException(); } }}
public class Universitet{public static void main(String[] args){Person jeanine = new Person(”jeanine”); try{ jeanine.gaaTilGlos(); }catch(GliPaaIsenException feil){ System.out.println(”jeanine glei på isen”);}}}
Spørsmål 2 • Hva er en Exception? • Hvordan fanger man en Exception? • Hvor fanger man Exceptions og hvor kaster man dem? • Hvorfor finnes det Exceptions? (Bortsett fra for å lage trøbbel for dere.) • I forbindelse med Exceptions snakker man om arv, hvorfor det?
BIT InputStreamReader / OutputStreamWriter BOKSTAV BufferedReader / BufferedWriter LINJER Strømmer
Å lese fra en strøm • Du trenger noe å lese fra for eksempel: • System.in • File • Du må lage en BufferedReader of dermed også en InputStreamReader: • BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
lese mer fra strøm • For å få til strømmer må man bruke klasser som arver Reader klassen. • Alle klasser som brukes ligger i pakken java.io • De vanligste brukte metodene i BufferedReader: • public String readLine();
Å skrive til strøm • Må bruke klasser som arver fra Writer klassen. • BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new File(”per.txt”))); • Her bruke man for eksempel write(String detManVilSkrive,int off,int lengde)
Spørsmål 3 • Hva brukes strømmer til? • Hvilke to hovedtyper av strømmer finnes det? • Hvordan uttrykkes tastaturet i strømmer? • Hva er forskjellen mellom BufferedReader og InputStreamReader
Tips til øving 4 • Ta en klasse om gangen. • Bruk APIen. • Klassene du lager i øving 4 vil du nok helt sikkert ha nytte av siden. • Deler av det som trenges kan finnes bak i boka. • Du tjener ingenting på ukritisk avskrift.