Linux - Friheden til at programmere i Java: Version 0.7.20040516 - 2020-12-31 | ||
---|---|---|
forrige | Kapitel 3. Basal programmering | næste |
Dette afsnit sætter det, du har lært i kapitlet, i system og kan senere bruges som opslagsværk. Enkelte steder står der noget, som ikke er gennemgået endnu, men som er med for helhedens skyld.
Variabler og metoder bør have lille startbogstav.
Eksempler: n, alder, tal, talDerSkalUndersøges, main(), println(), sqrt().
Klasser bør have stort startbogstav.
Eksempler: HejVerden, Cylinderberegning, Syvtabel2
Består navnet af flere ord, stryger man normalt mellemrummene og lader hvert af de efterfølgende ord starte med stort (nogen bruger også understreg _ som mellemrum).
Navnet kan bestå af A-Å, a-å, 0-9, $ og _
Det må ikke starte med et tal. Det kan have en vilkårlig længde.
Lovlige navne: peter, Peter, $antal, var2, J2EE, dette_er_en_test
Ulovlige navne: 7eleven, dette-er-en-test, peter#
Da visse styresystemer endnu ikke understøtter æ, ø og å i filnavne, bør man undgå disse i klassenavne.
Her er en oversigt over alle de simple variabeltyper i Java.
Tabel 3-1. Simple variabeltyper i Java
Type | Art | Antal bit | Mulige værdier | Standardværdi |
---|---|---|---|---|
byte | heltal | 8 | -128 til 127 | 0 |
short | heltal | 16 | -32768 til 32767 | 0 |
int | heltal | 32 | -2147483648 til 2147483647 | 0 |
long | heltal | 64 | -9223372036854775808 til 9223372036854775807 | 0 |
float | kommatal | 32 | ±1.40239846E-45 til ±3.40282347E+38 | 0.0 |
double | kommatal | 64 | ±4.94065645841246544E-324 til ±1.79769313486231570E+308 | 0.0 |
char | unicode | 16 | \u0000 til \uffff (0 til 65535) | \u0000 |
boolean | logisk | 1 | true og false | false |
De vigtigste er int, double og boolean. I enkelte tilfælde bliver long og char også brugt, mens byte, short og float meget sjældent bruges.
Konvertering til en anden type sker automatisk i de tilfælde, hvor der ikke mistes information (forstået på den måde, at intervallet af de mulige værdier udvides), dvs.
fra byte til short, int, long, float eller double
fra short til int, long, float eller double
fra int til long, float eller double
fra long til float eller double
fra float til double.
Den anden vej, dvs. hvor der muligvis mistes information, fordi intervallet af mulige værdier indsnævres, skal man skrive en eksplicit typekonvertering.
Det gøres ved at skrive en parentes med typenavnet foran det, der skal konverteres:
int x; double y; y = 3.8; x = (int) y
Her skæres kommadelen af 3.8 væk og x får værdien 3.
Eksplicit typekonvertering sikrer at programmøren er bevidst om informationstabet (glemmes dette kommer oversætteren med fejlen: possible loss of precision: double, required: int). Det skal ske
fra double til float, long, int, short, char eller byte
fra float til long, int, short, char eller byte
fra long til int, short, char eller byte
fra int til short, char eller byte
fra short til char eller byte
fra byte til char
fra char til short eller byte.
Der kan ikke typekonverteres til eller fra boolean.
Tabel 3-2. Java
Operator | Brug | Forklaring |
---|---|---|
+ | a + b | a lagt sammen med b |
- | a - b | b trukket fra a |
* | a * b | a gange b |
/ | a / b | a divideret med b |
% | a % b | rest fra heltalsdivision af a med b |
- | -a | den negative værdi af a |
++ | a++ | a = a+1; værdi før optælling |
++ | ++a | a = a+1; værdi efter optælling |
-- | a-- | a = a-1; værdi før nedtælling |
-- | --a | a = a-1; værdi efter nedtælling |
Operatorerne giver altid samme type som operanderne, der indgår. Det skal man være specielt opmærksom på for / (divisions) vedkommende, hvor resten mistes ved heltalsdivision.
Operatoren ++ tæller en variabel op med én : a++ svarer til a=a+1. Tilsvarende er a-- det samme som a=a-1.
u1 og u2 er to logiske udtryk eller logiske variabler
Tabel 3-3. Java
Operator | Brug | Forklaring |
---|---|---|
&& | u1 && u2 | både u1 og u2 er sandt |
|| | u1 || u2 | u1 eller u2 er sandt |
! | ! u1 | negation af u1 |
Operator && udtrykker, at både 1. og 2. udtryk skal være sandt:
Tabel 3-4. Java
1. udtryk | 2. udtryk | 1. udtryk && 2. udtryk |
---|---|---|
FALSK | FALSK | FALSK |
FALSK | SAND | FALSK |
SAND | FALSK | FALSK |
SAND | SAND | SAND |
F.eks. er udsagnet (a > 5 && a < 10) sandt, hvis a er større end 5, og a er mindre end 10.
Operator || udtrykker, at 1. eller 2. udtryk skal være sandt.
Tabel 3-5. Java
1. udtryk | 2. udtryk | 1. udtryk || 2. udtryk |
---|---|---|
FALSK | FALSK | FALSK |
FALSK | SAND | SAND |
SAND | FALSK | SAND |
SAND | SAND | SAND |
F.eks. er udsagnet (a > 5 || a == 0) sandt, hvis a er større end 5, eller a er 0.
Operator ! Udtrykker, at udtrykket skal negeres, dvs. at (!u1) er sandt, hvis u1 er falsk, og falsk hvis u1 er sandt, f.eks. er udsagnet (!(a > 5)) sandt, hvis der ikke gælder at a er større end 5 (det er det samme som (a <= 5)).
I visse andre programmeringssprog skrives AND for &&, OR for || og NOT for !
Gennemtænk problemstillingen, inden du sætter dig til computeren.
Formulér problemet eller formålet med programmet.
Overvej mulige løsningsstrategier. De fleste problemer kan løses på mere end én måde.
Lav en skitse til programmet i pseudokode (på papiret med danske ord). Du kan også tegne flowdiagrammer (der beskriver rækkefølgen tingene sker i).
Det er ikke altid, man kan tænke hele programmet igennem på forhånd. Ved mere komplicerede programmer må man skifte mellem kodning og refleksion over koden.
Når du sidder ved computeren, så skriv ganske få linjer ad gangen, og afprøv. På den måde er det ofte lettere at se problemet, hvis programmet ikke virker.
Gør flittigt brug af System.out.println(...) til at kontrollere, om programmet gør som forventet.
Lær en standardiseret indrykning fra starten og følg den stringent (Se afsnit Afsnit 3.4).