Enkla typer
Följande klass skapar ett antal variabler av olika typer, och skriver sedan
ut några av dem.
public class SimpleTypes {
public static void main(String[] args) {
int a = 10;
int b = 4;
int c = a / b;
System.out.println(c);
double x = 10;
double y = 4;
double z = x / y;
System.out.println(z);
boolean p = true;
boolean q = false;
boolean r = p && q;
boolean s = p || q;
System.out.println(r);
System.out.println(s);
}
}
-
Vad skriver programmet ut?
-
Vad heter filen som ovanstående kod är tagen från?
Villkorssatser
Följande program utför ett antal villkorssatser (if-satser). Beroende på hur
dessa satser utvärderas skrivs olika saker ut.
public class If {
public static void main(String[] args) {
int a = 100;
int b = 400;
if (a < b) {
System.out.println("a är mindre än b");
} else {
System.out.println("första är falsk");
}
if (a > b) {
System.out.println("a är större än b");
} else {
System.out.println("andra är falsk");
}
if (a != b) {
System.out.println("a är skiljt från b");
} else {
System.out.println("tredje är falsk");
}
}
}
-
Vad heter filen som ovanstående kod är tagen från?
-
Vad skriver programmet ut?
Vektorer och Loopar
public class Loop {
public static void main(String[] args) {
String[] rargs = new String[args.length];
for (int i = 0; i < args.length; i++) {
System.out.println(args[i]);
rargs[args.length - 1 - i] = args[i];
}
System.out.println();
for (int i = 0; i < rargs.length; i++) {
System.out.println(rargs[i]);
}
System.out.println();
String[] argsPlusLast = appendString(args, "sist");
for (int i = 0; i < argsPlusLast.length; i++) {
System.out.println(argsPlusLast[i]);
}
}
public static String[] appendString(String[] ss, String s) {
String[] newSs = new String[ss.length + 1];
for (int i = 0; i < ss.length; i++) {
newSs[i] = ss[i];
}
newSs[ss.length] = s;
return newSs;
}
}
-
Givet att vi kör programmet enligt följande:
$ java Loop ett två tre
vad skriv ut?
-
Titta närmare på nedanstående rad.
public static String[] appendString(String[] ss, String s) {
Identifiera (ringa in ovan) vad som svarar mot följande termer:
- Returtyp
- Metodnamn
- Argumentlista
Hur skulle du läsa ut returtypen på svenska (techno-anglifierad svenska går också bra)?
Listor och mängder
Givet att vi har följande två klasser (där den ena använder den andra)...
import java.util.List;
import java.util.Set;
import java.util.LinkedList;
import java.util.TreeSet;
public class ListSet {
private List list;
private Set set;
public ListSet() {
list = new LinkedList();
set = new TreeSet();
}
public void addToken(String token) {
list.add(token);
set.add(token);
}
public void summarize() {
System.out.println(set.size() + " / " + list.size());
System.out.println(set.size() / list.size());
}
}
import java.util.Scanner;
public class ListSetTest {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
ListSet ls = new ListSet();
while (s.hasNext()) {
ls.addToken(s.next());
}
ls.summarize();
}
}
-
Givet att vi kör programmet
ListSetTest och matar följande till standard input:
vänster , höger .
vänster , höger .
vänster .
vänster .
Vad skrivs ut?
-
Om du skulle vilja använda
HashSet istället för TreeSet,
vilka förändringar skulle du behöva göra? (Svara genom att ändra i programlistningarna ovan.)
-
Om du vill spara plats i
ListSet, hur skulle du kunna omformulera import-satserna?