Repetisjon INF1000 - gruppe 13
Lese fra fil Scanner import java.util.*; void lesfrafil() { try { Scanner innfil = new Scanner(new File( fugleobservasjoner.txt )); while (innfil.hasnext()) { String linje = innfil.nextline(); String[] elementer = linje.split( ; ); for (int i = 0; i < elementer.length; i++) { System.out.println( På plass + i + : + elementer[i]); catch (Exception e) { System.out.println( Noe gikk galt );
Lese fra fil easyio import easyio.*; void lesfrafil() { In innfil = new In( fugleobservasjoner.txt ); while (innfil.hasnext()) { String linje = innfil.inline(); String[] elementer = linje.split( ; ); for (int i = 0; i < elementer.length; i++) { System.out.println( På plass + i + : + elementer[i]);
void skrivtilfil() { try { PrintWriter utfil = new PrintWriter(new File( fugleobservasjoner.txt )); for (int i = 0; i < observasjoner.length; i++) { for (int j = 0; j < observasjoner[i].length; j++) { utfil.print(observasjoner[i][j] + ; ); utfil.println(); utfil.close(); catch (Exception e) { System.out.println( Noe gikk galt ); Skrive til fil Scanner import java.util.*; String[][] observasjoner = new String[50][4];
Skrive til fil easyio import easyio.*; String[][] observasjoner = new String[50][4]; void skrivtilfil() { Out utfil = new Out( fugleobservasjoner.txt ); for (int i = 0; i < observasjoner.length; i++) { for (int j = 0; j < observasjoner[i].length; j++) { utfil.out(observasjoner[i][j] + ; ); utfil.outln(); utfil.close();
Metoder Metodeoppskrift <returtype> <metodenavn>(<parametere>) { <metodens innhold> return <det skal returneres>; Merk: return er ikke nødvendig dersom returtype er void (som betyr ingenting )
Metoder Student[] studenter = new Student[1000]; Student finnstudent(string navn, int alder) { for (int i = 0; i < studenter.length; i++) { if (studenter[i].navn.equals(navn) && studenter[i].alder == alder) { return studenter[i]; return null;
Metoder void skrivstudentdata(string navn, int alder) { Student stud = finnstudent(navn, alder); System.out.println( Navn: + stud.navn +, alder: + stud.alder);
Metoder void ordrelokke() { In tast = new In(); int valg = 0; while (valg!= 2) { valg = tast.inint(); switch (valg) { case 1: String navn = tast.inline(); int alder = tast.inint(); skrivstudentdata(navn, alder); break; case 2: System.out.println( Avslutter ); break;
Klasser, objekter, pekere En klasse er en oppskrift til objekter Ofte substantiver som beskriver virkeligheten Bil, Hus, Student, Bank, Kopp Et objekt er en kopi av en klasse Én-til-én forhold med virkeligheten Om det finnes 100 biler i virkeligheten finnes det også 100 Bil-objekter i programmet vårt innenfor problemområdet En peker er noe som gir tilgang til objektene Alle objekter må bli pekt på av minst én peker
Eksempel
class Student { String navn; int saldo; Student(String n, int s) { navn = n; saldo = s; class Hybel { Student leietager; int etasje, rom; boolean ertoppetasje() { return (etasje == 2); class Hybelhus { In tast = new In(); Hybel[][] hybler = new Hybel[3][6]; int maaned, aar, totalfortjeneste, pristoppetasje,...; Hybelhus() { // leser fra hybeldata.txt og lager objekter for hybler void regleietager() { int etasje = tast.inint(); char rom = tast.inchar(); String navn = tast.inline();... Student stud = new Student(navn, 15000); Hybel hybel = finnhybel(etasje, rom); if (hybel!= null && hybel.leietager!= null) { hybel.leietager = stud; if (hybel.ertoppetasje()) { stud.saldo -= pristoppetasje; totalfortjeneste += pristoppetasje; else { stud.saldo -= prisvanligetasje; totalfortjeneste += prisvanligetasje; else { System.out.println( Noe gikk galt );
Hybel finnhybel(int etasje, char rom) { int e = etasje - 1; int r = (int) (rom - A ); if (0 <= e && e <= 2 && 0 <= r && r <= 5) { return hybler[e][r]; else { return null; Hybel finnhybel(string navn) { for (int i = 0; i < hybler.length; i++) { for (int j = 0; j < hybler[i].length; j++) { if (navn.equals(hybler[i][j].leietager.navn)) { return hybler[i][j]; return null; void regflytting() { String navn = tast.inline(); Hybel hybel = finnhybel(navn); if (hybel!= null) { hybel.leietaker = null; System.out.println(navn + har flyttet ut ); else { System.out.println( Finner ikke + navn);
0 1 2 3 4 5 hybler 0 1 2 null null null null null null 0 1 2 3 4 5 null null null null null null 0 1 2 3 4 5 null null null null null null
0 1 2 3 4 5 hybler 0 1 2 0 1 2 3 4 5 0 1 2 3 4 5 null null null null null null
0 1 2 3 4 5 hybler 0 1 2 0 1 2 3 4 5 0 1 2 3 4 5 Hybel Student leietager Hybel Student leietager Hybel Student leietager ertoppetasje() ertoppetasje() ertoppetasje() null null null
0 1 2 3 4 5 hybler 0 1 2 0 1 2 3 4 5 0 1 2 3 4 5 Hybel Student leietager Hybel Student leietager Hybel Student leietager ertoppetasje() ertoppetasje() ertoppetasje() Student navn = <navnet> saldo = 15000 null null
HashMap Kan brukes istedenfor array (men ikke alltid) HashMap<String, Hybel> hybelhus = new HashMap<String, Hybel>(); Hybel hyb = new Hybel( 2B, Lars, 15000); hybelhus.put( 2B, hyb); class Hybel { String hybelnavn; String leietagernavn; int leietagersaldo; Hybel hybel = hybelhus.get( 2B ); System.out.println(hybel.hybelNavn + + hybel.leietagernavn + + hybel.leietagersaldo);
HashMap hybelhus.remove( 2B ); Hybel hybelpeker = hybelhus.get( 2B ); if (hybelpeker == null) { System.out.println( 2B finnes ikke ); for (Hybel h : hybelhus) { System.out.println(h.hybelNavn + + h.leietagernavn + + h.leietagersaldo);