Første
Grundlæggende javasyntaks serie, Planche nr. 31
Kursus Indhold

Udskrift af : Grundlæggende javasyntaks

Planche 1 : Grundlæggende javasyntaks

Planche 2 : Syntaks

Java er et friformat sprog.

Det er opbygget af sætninger og blokke.

Sætninger afsluttes af med ';' (Semikolon)

Blokke begynder med '{' og slutter med '}'

En blok indeholder kun sætninger.

En sætning kan være tom

Alle mellemrum, tab og nylinie behandles ens ("whitespace")

En blok starter SIDST på en linie. De næste linier rykkes et niveau ind, indtil en blok sluttes af.

Planche 3 : Kommentarer

Kommentarer betragtes som mellemrum

To former:

Dertil kommer visse krav til INDHOLDET af kommentarerne, hvis man ønsker at anvende automatisk dokumentation (javadoc)

Planche 4 : Nøgleord

Tutorial har følgende at sige:
Here's a list of Java's keywords. These words are reserved--you cannot use any of these words as names in your Java programs. true, false, and null are not keywords but they are reserved words, so you cannot use them as names in your programs either.

abstractdoubleintstrictfp **
booleanelseinterfacesuper
breakextendslongswitch
bytefinalnativesynchronized
casefinallynewthis
catchfloatpackagethrow
charforprivatethrows
classgoto *protectedtransient
const *ifpublictry
continueimplementsreturnvoid
defaultimportshortvolatile
doinstanceofstaticwhile

* indicates a keyword that is not currently used
** indicates a keyword that was added for Java 2

Planche 5 : Variable

Planche 6 : Primitive datatyper

Type Size/Format Description
(integers)
byte 8-bit two's complement Byte-length integer
short16-bit two's complementShort integer
int32-bit two's complementInteger
long64-bit two's complementLong integer
(real numbers)
float32-bit IEEE 754Single-precision floating point
double64-bit IEEE 754Double-precision floating point
(other types)
char16-bit Unicode characterA single character
booleantrue or falseA boolean value (true or false)

Planche 7 : Referencevariable

(Mere om det senere)

Planche 8 : Variabelnavne

Konvention:

Planche 9 : Definitionsområde (Scope)

4 kategorier:

Planche 10 : Definitionsområder (2)

Planche 11 : Variabel erklæring

int i;

java.awt.Button afslutteKnap;

int taeller = 0;

java.lang.String tekst = "Dette er en tekst";

final int count = 0;

Planche 12 : Operatorer

3 typer Operator returnerer værdi: Grupper af operatorer

Planche 13 : Aritmetiske operatore

Operator Use Description
+ op1 + op2 Adds op1 and op2
- op1 - op2 Subtracts op2 from op1
* op1 * op2 Multiplies op1 by op2
/ op1 / op2 Divides op1 by op2
% op1 % op2 Computes the remainder of dividing op1 by op2

Operator Use Description
+ +op Promotes + to int if it's a byte, short, or char
- -op Arithmetically negates op

Operator Use Description
++ op++ Increments op by 1; evaluates to value before incrementing
++ ++op Increments op by 1; evaluates to value after incrementing
-- op-- Decrements op by 1; evaluates to value before decrementing
-- --op Decrements op by 1; evaluates to value after decrementing

Planche 14 : Relationer og betingelser

Operator Use Return true if
> op1 > op2 op1 is greater than op2
>= op1 >= op2 op1 is greater than or equal to op2
< op1 < op2 op1 is less than op2
<= op1 <= op2 op1 is less than or equal to op2
== op1 == op2 op1 and op2 are equal
!= op1 != op2 op1 and op2 are not equal

Planche 15 : '=' vs '=='

Java fælde:

boolean test = false;
if (test = true)
     System.err.println("Test er sand");
else
     System.err.println("Test er ikke sand");

Giver altid 'Test er sand' - hvorfor?

Planche 16 : Betingelsesoperatorer

Operator Use Returns true if
&& op1 && op2 op1 and op2 are both true, conditionally evaluates op2
|| op1 || op2 either op1 or op2 is true, conditionally evaluates op2
! ! op op is false
& op1 & op2 op1 and op2 are both true, always evaluates op1 and op2
| op1 | op2 either op1 or op2 is true, always evaluates op1 and op2

Planche 17 : Bitoperator

Operator Use Operation
>> op1 >> op2 shift bits of op1 right by distance op2
<< op1 << op2 shift bits of op1 left by distance op2
>>> op1 >>> op2 shift bits of op1 right by distance op2 (unsigned)
& op1 & op2 bitwise and
| op1 | op2 bitwise or
^ op1 ^ op2 bitwise xor
~ ~op2 bitwise complement

Planche 18 : Tildeling

Operator Use Equivalent to
+= op1 += op2 op1 = op1 + op2
-= op1 -= op2 op1 = op1 - op2
*= op1 *= op2 op1 = op1 * op2
/= op1 /= op2 op1 = op1 / op2
%= op1 %= op2 op1 = op1 % op2
&= op1 &= op2 op1 = op1 & op2
|= op1 |= op2 op1 = op1 | op2
^= op1 ^= op2 op1 = op1 ^ op2
<<= op1 <<= op2 op1 = op1 << op2
>>= op1 >>= op2 op1 = op1 >> op2
>>>= op1 >>>= op2 op1 = op1 >>> op2

Planche 19 : Udtryk

Et udtryk er en serie af variable, operatorer og metodekald, der resulterer i en værdi. Ex.:

Planche 20 : Operator precedens

postfix operators[] . (params) expr++ expr--
unary operators ++expr --expr +expr -expr ~ !
creation or castnew (type)expr
multiplicative* / %
additive+ -
shift<< >> >>>
relational< > <= >= instanceof
equality== !=
bitwise AND&
bitwise exclusive OR^
bitwise inclusive OR|
logical AND&&
logical OR||
conditional? :
assignment= += -= *= /= %= &= ^= |= <<= >>= >>>=

Planche 21 : Kontrolstrukturer

Planche 22 : Kontrolstrukturer (2)

Eksempel på while-struktur
import java.io.*;
public class Count {
    public static void countChars(Reader in) throws IOException {
    
        int count = 0;

        while (in.read() != -1)
            count++;
        System.out.println("Counted " + count + " chars.");
    }
    // ... Hovedmetode udeladt ...
}

blokstart ({) skrives pr. konvention sidst på linien. 1. position på næste linie indrykkes indtil afslutning af blok (}), som ophæver indrykning.

Planche 23 : Kontrolstrukturer (3)

4 forskellige slags kontrolstrukturer:
Statement Keyword
decision making if-else, switch-case
loop for, while, do-while
exception try-catch-finally, throw
miscellaneous break, continue, label: , return

Planche 24 : If-then og If-then-else

Definition    if (expression)
                   statement

Eksempel      if (DEBUG)
                   System.out.println ("DEBUG: x = " + x);
DEBUG er en bool-variabel og x en variabel, der kan udskrives.

Definition    if (expression)
                   statement
              else statement

Planche 25 : If-then-else eksempler

    . . .
    // response er enten OK eller CANCEL afhaengig
    // af, hvilken knap, der er trykket ned
    . . .
if (response == OK) {
    . . .
    // kode for OK aktion
    . . .
} else {
    . . .
    // kode for Cancel aktion
    . . .
}

Flere betingelser kan kaedes sammen:

int testscore;
char grade;

if (testscore >= 90) {
    grade = 'A';
} else if (testscore >= 80) {
    grade = 'B';
} else if (testscore >= 70) {
    grade = 'C';
} else if (testscore >= 60) {
    grade = 'D';
} else {
    grade = 'F';
}

Planche 26 : Switch-struktur

En kontrolstruktur som:
int month;
. . .
switch (month) {
case 1:  System.out.println("January"); break;
case 2:  System.out.println("February"); break;
case 3:  System.out.println("March"); break;
case 4:  System.out.println("April"); break;
case 5:  System.out.println("May"); break;
case 6:  System.out.println("June"); break;
case 7:  System.out.println("July"); break;
case 8:  System.out.println("August"); break;
case 9:  System.out.println("September"); break;
case 10: System.out.println("October"); break;
case 11: System.out.println("November"); break;
case 12: System.out.println("December"); break;
default: System.out.println("None of the above"); break;
}

Svarer til

int month;
. . .
if (month == 1) {
    System.out.println("January");
} else if (month == 2) {
    System.out.println("February");
. . .
// you get the idea
. . .

'break' afbryder en given case-aktion

'default:' tildeler en aktion til "alt andet".

Planche 27 : Loop-strukturer

for (initialization; termination; increment)
    statements


while (booleanExpression) {
    statements
} 
do {
    statements
} while (booleanExpression);

Planche 28 : break og continue

Man kan afbryde udførslen af en række sætninger, ved at give dem et navn (label) og så angive sætningen break med navnet efter.
navn: { Nogle udtryk
        break navn;
        Udtryk der ikke udføres
}
Man kan afbryde en loop-struktur, således at 'for' eller 'while' straks udføres, ved at give strukturen et navn og skrive continue navn.
public int indexOf(String str, int fromIndex) {
    char[] v1 = value;
    char[] v2 = str.value;
    int max = offset + (count - str.count);
  test:
    for (int i = offset + ((fromIndex < 0) ? 0 : fromIndex); i <=
max ; i++) {
        int n = str.count;
        int j = i;
        int k = str.offset;
        while (n-- != 0) {
            if (v1[j++] != v2[k++]) {
                continue test;
            }
        }    
        return i - offset;
    }
    return -1;
}
Hvis continue-strukturen udføres, startes forfra med næste værdi af i.

Planche 29 : return-struktur

Afslutter den metode, hvori udtrykket findes. Værdien af udtryk bliver metodens returværdi, og skal derfor være af samme type som metoden er erklæret til. Bruges, hvis metoden er erklæret 'void'

Planche 30 : Arrays

basistype navn []; basistype navn [] = { initialiserinsliste }

char navn [] = { 'L', 'e', 'i', 'f' };

char tomtNavn [] = new char [10];

char begyndBogstav = navn [0];

Planche 31 : Objekter og klasser

Separat præsentation


© 2000 BLA*net - Leif E. Andersen, leander@blanet.dk
Første
Grundlæggende javasyntaks serie, Planche nr. 31