Download præsentationen
Offentliggjort afAnton Nørgaard Redigeret for ca. et år siden
1
Variabler, klassevariabler, identitet og lighed, collections
Stort og småt om Java Variabler, klassevariabler, identitet og lighed, collections
2
Oversigt Variabler Klassevariabler og -metoder Identitet vs lighed
feltvariabler, parametre, lokale variabler Klassevariabler og -metoder static Identitet vs lighed identitet: samme som (==) lighed: magen til (equals) Array Statisk særudgave af List Collections a closer look dIntProg, E08
3
Variabler Feltvariabler Lokale variabler Parametre
tilstand for objekter levetid er den samme som objektets Lokale variabler hjælpevariabler i en metode levetid er metodekaldet Parametre parametrisering af metoder lokale variabler hvis startværdi leveres af kalderen dIntProg, E08
4
Klassevariabler og –metoder (static)
Instansvariabler og –metoder Ethvert objekter har egen version af ikke-static attributter Kald af en ikke-static metode er en besked sendt til et objekt Klassevariabler og –metoder Attributter og metoder kan erklæres static En static-komponent tilhører klassen, ej objekter af denne (klassemetode og –variabel) En klassemetode kan kun tilgå klassevariabler og kalde andre klassemetoder Benyttes til at modellere klasseegenskaber Eksempel: myndighedsalder for personer, fælles rentesats for alle konti dIntProg, E08
5
Eksempel public class Account { private static double interestRate;
private int balance; private Person owner; public static void setInterestRate (double rate) { interestRate = rate; } public void addInterest() { balance = (int) (balance * interestRate); ... dIntProg, E08
6
Eksempler fra java.lang.Math
public class Math { public static final double PI = ... /** 0.0 ≤ random() < 1.0 */ public static double random() {...} /** sqrt(a) == a */ public static double sqrt(double a) {...} /** pow(a, b) == ab */ public static double pow(double a, double b) {...} } dIntProg, E08
7
Undlad dette: interestRate ændres for alle konti
Kald af klassemetoder Klassemetoder kaldes via klassen Kan kaldes via objekt, men det er dårlig stil Math.PI Math.random() Account.setInterestRate(1.10); Math mathObject = new Math(); double d= mathObject.random() Account myAccount = new Account(...); myAccount.setInterestRate(1.10); Undlad dette: interestRate ændres for alle konti dIntProg, E08
8
Static vs. non-static Tilgang Variabel / Metode static ej static
+ – + + dIntProg, E08
9
Identitet vs. lighed (1) Identitet Samme som (==)
Lighed Magen til (equals) dIntProg, E08
10
Identitet vs. lighed (2) person1 == person2 ? :Person :Person “Fred”
“Jill” person1 person2 == is not true here (of course) person1 == person2 ? dIntProg, E08
11
Identitet vs. lighed (3) person1 == person2 ? :Person :Person “Fred”
== is still not true here (different objects, == tests identity) person1 == person2 ? dIntProg, E08
12
Identitet vs. lighed (4) person1 == person2 ? :Person :Person “Fred”
== is still not true here (different objects, == tests identity) person1 == person2 ? dIntProg, E08
13
Identitet vs. lighed (Strings)
String input = reader.getInput(); if(input == "bye") { ... } == tester identitet :String :String == ? "bye" "bye" == is still not true here (different objects, == tests identity) input (kan være) falsk! dIntProg, E08
14
Identitet vs. lighed (Strings)
String input = reader.getInput(); if(input.equals("bye")) { ... } equals tester lighed :String :String ? .equals( ) "bye" "bye" == is still not true here (different objects, == tests identity) input sand! dIntProg, E08
15
Array List af fast størrelse T[] var;
var = new T[number]; //størrelse er altid number t: [4,1] int[] t; t = new int[2]; t[0] = 4; t[1] = 1; d: [ , ] Die[] d; d = new Die[2]; d[0] = new Die(); d[1] = new Die(); dIntProg, E08
16
Interfaces (specifikation) Klasser (implementation)
Collections Interfaces (specifikation) H V A D class CE { Collection<Integer> c; public CE(...) { ... } public void execute() { c.add(1); c.add(3); ... int sum = 0; for ( int i : c ) { sum += i; } HashSet impl Set TreeSet impl SortedSet ArrayList impl List LinkedList HashMap impl Map TreeMap impl SortedMap Klasser (implementation) H V O R D A N dIntProg, E08
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.