KEYWORDS - NØKKELORD i JAVA Keywords er ord som er en viktig del av Java språket. Det er tilsammen 49 stykker. Her kan du se hva de forskjellige betyr og hvordan de brukes. Du kan ikke bruke dem når du skal sette navn på variabler, konstanter, klasser eller metoder. Husk; de skrives med små forbokstav.
abstractKlasser og metoder kan erklæres abstrakt. En abstrakt klasse (class) kan det ikke opprettes
objekter (object) av. abstract class AnsattVA { Man kan også lage abstrakte metoder. abstract public double beregnUkeLonn(double AntallTimer); For å få noen praktisk nytte av metoden må man altså lage en subklasse og overkjøre den abstrakte metoden. En klasse MÅ erklæres abstrakt for å kompilere hvis den
På mange måter er abstrakt motsatsen til final. En final klasse kan ikke subklasses, mens en abstrakt klasse må subklasses.
|
Åpen for alle | Fra pakke og sub-klasser | Kun for pakka | Kun for klassen |
Brukes til å lage en løkke i kombinasjon med while
I motsetning til while-løkka vil do - while-løkka alltid kjøre minst en gang, siden betingelsen kommer til slutt.
int i;
do {
System.out.println( i );
i++;
}
while (i <59);
Double er 64 bits flyt-tall med suffix D eller d
Eks: 12345.45D
initial value: 0.0d
Kan castes til alle andre primitive datatyper utenom boolean.
Brukes til å lage en valgsetning sammen med nøkkelordet if
if (int j= =0) {
l = 1.0;
}
else if(j= =1) {
l = 1.5;
}
else if(j= =2) {
l = 2.0;
}
else {
System.out.println("Dette gikk i dass");
}
Brukes ved sub-classing.
Eks: class Child extends Parent {
innholdskode...
}
Denne nye klassen arver metodene og constructoren til foreldreklassen eller superklassen, de kan overkjøres (override).
Vi deklarerer klasser, metoder og konstanter med nøkkelordet final, og bruker store bokstaver i navnet, slik:
private float final PRODUKT_A = 239.99f
En klasse som deklareres final kan man ikke lage subklasse av.
En metode som deklareres final kan ikke overkjøres (override)
En variabel som deklareres final kan ikke endres, og er dermed en konstant.
I forbindelse med try og catch blokker kan vi ha en finally-blokk tilslutt.
Den bli alltid kjørt, utenom når:
Se også try, catch,
finally, throw og throws.
OG Hva slags exceptions må
behandles?
Float er 32 bits flyt-tall med suffix F eller f
Eks: 1234.45f
initial value: 0.0f
Kan castes til alle andre primitive datatyper utenom boolean.
for (int i = 0; i <object.length;
i++) {
sum = int Tall1 * i;
System.out.println("--------------------");
}
const og goto har ingen mening i java, men de er reservert som nøkkelord.
Brukes til å lage en valgsetning.
if (int j= =0) {
l = 1.0;
}
else if(j= =1) {
l = 1.5;
}
else if(j= =2) {
l = 2.0;
}
else {
System.out.println("Dette gikk i dass");
}
Brukes i klassedeklarasjoner når vi skal implementere et interface, slik:
public class Geir1 implements Runnable {
.....
}
Brukes i import-statements hvis klassen importerer fra andre klasser, slik:
package MinPakke;
import javax.swing.*;
public class Geir 2 extends Geir1 implements Runnable {
....
}
Hvis alle elementene er med MÅ package, import og classedefinisjonen komme i denne rekkefølgen.
Operator som sjekker et objekts klasse ved runtime.
if (p instanceof Parent)
hvor p er en objektreferanse, vanligvis en variabel eller et array
element, og
hvor Parent må være en klasse, et interface eller en
array.
(Man kan IKKE bruke java.lang.Class objekt referanse eller String som
høyre operand i uttrykket over.)
Blir true hvis klassen til venstre er den samme som, eller en subklasse av klassen til høyre.
Primitiv datatype
Brukes til å lagre integer data. Kan castes til andre primitive datatyper.
Et interface en en samling abstrakte metoder og eventuelt konstanter som kan implementeres i en klasse.
Metodene i interfacet definerer navn, parameter og returtype. Disse må overkjøres i klassen for å kunne brukes, men eventuelle konstanter i interfacet er tilgjengelig direkte i klassen.
Primitiv datatype
Brukes til å lagre integer data. Kan castes til andre primitive datatyper.
Modifier som KUN kan brukes på metoder. Som nøkkelordet abstract indikerer native at metodekroppen er et annet sted. For native-metoder ligger metodekroppen i et bibliotek i Java Virtual Machine og er ikke skrevet i Java, men f.eks ii C++ eller C.
Mange vanlige metoder ernative, f.eks clone() og notify()N i Object klassen.
Brukes når vi lager en instanse av en klasse, slik:
Integer tall = new Integer(42);
//lager en instans av Wrapperklassen Integer som inneholder 42.
Pakke med filer.
Dersom fila tilhører en pakke må pakkedeklarasjonen komme
aller først i fila.
Deretter kommer eventuell import
Deretter klassen
Hvis variabler eller metoder er default - uten akksessmodifier - har kun andre klasser i pakken adgang til disse.
Hvis variabler eller metoder er protected - har andre klasser i pakken og subklasser til klassen adgang til disse.
Access modifier.
Kan brukes på variabler, metoder og konstruktører.
IKKE på klasser.
PRIVATE er den mest restriktive. Kun adgang fra instanser av klassen.
Klasser som arver kan IKKE aksessere private metoder eller variabler den
fra superklassen.
Åpen for alle | Fra pakke og sub-klasser | Kun for pakka | Kun for klassen |
Access modifier.
Kan brukes på variabler, metoder og konstruktører.
IKKE på klasser.
PROTECTED
Gir aksess til andre klasses i samme pakke og til subklasser.
Åpen for alle | Fra pakke og sub-klasser | Kun for pakka | Kun for klassen |
Access modifier.
Kan brukes på klasser, variabler, metoder og konstruktører.
PUBLIC gir aksess til ALLE JavaProgram uten restriksjoner. Derfor må main-metoden være public.
Åpen for alle | Fra pakke og sub-klasser | Kun for pakka | Kun for klassen |
Når en metode returnerer noe brukes kodeorder return.
Primitiv datatype
Brukes til å lagre integer data. Kan castes til andre primitive datatyper.
Når en unary operator brukes på en Byte, short
eller char konverteres de automatisk til int.
Unntak; ++, --
Unary operator er -, +, ++, -- eller ~ som tilføres tallet.
Ved binary operator konverteres disse tre også til int eller hvis
et av tallene er høyere (long, float eller double) til det høyeste.
Man kan tenke at statiske tilfeller tilhører klassen istedet for
en instans av klassen.
Metode: public static void main(String [] args) {osv.
Variabel: public static int x = 0;
Det er altså den samme x som går igjen i hele klassen, og
endrede verdier får følge.
Statiske metoder kan ikke benytte ikke statiske variabler fra klassen.
Statiske metoder kan bare kalle på statiske metoder i klassen.
Må ikkestatiske metoder kalles må man spesifisere hvilken
instans av klassen som utfører metoden.
Statiske metoder har ingen this.
Statiske metoder kan ikke overkjøres til å bli ikke
statiske.
Statiske kodeblokker utenfor metoder kalles static initializer code:
static {System.out.println("Statisk kode: D = " + d++);}
Denne kodeblokka kjøres kun en gang, når klassen lastes.
Eneste keyword jeg ikke veit hva betyr???
Referer til superklassen. Brukes f.eks i konstruktører i subklassen.
SubClass(int i) {
super();
}
switch (wash)
{
case 1:
j = 1.0;
break;
case 2:
j = 1.5;
break;
case 3:
j = 2.0;
break;
default:
System.out.println("Dette gikk i dass");
}
Brukes for å controllere access til kritisk kode i flertråd programmering.
Referer til denne klassen, this.
Brukes til å kaste en exception.
En exception er et objekt fra java.lang.throwable eller en subklasse.
Vi må opprette en instanse av et slikt objekt, deretter kaste det
med throw, f.eks slik:
throw new IOExeption("File not found");
Hvis dette gjøres i en metode vil det kastes en IOException til
det sted metoden kalles.
Merk: Det er lurt å opprette exception-objektet på samme
linje som det kastes.
Se også try, catch,
finally, throw og throws.
OG Hva slags exceptions må
behandles?
Det er også mulig å gjøre som beskrevet under,
men linjenummer for hvor exceptionen oppstod blir ikke i samsvar med hvor
den blei kasta fra:
Hvis vi trenger å gi programmer som kaller en metode hvor vi
har en try-catch-blokk tilbakemelding på at det har sendt ivei en
feil som fører til en exception kan vi sende den tilbake med kodeordet
throw.
try {
//Kode som kan lage f.eks en aritmetisk exception
}
catch(AritmethicException e) {
//Hva som skal skje med exception'en her
throw e; // Kaster exception tilbake
//til programmet som kalte metoden
}
En metode som kan kaste en exception kan merkes med kodeordet throws, slik:
public void geirsIOMetode(String tgURL) throws EOFException
Man kan liste opp flere exceptions etter throws, og i likhet med catch-blokkene må de følge i hierarkisk rekkefølge med de mest generelle tilslutt.
Se også try, catch,
finally, throw og throws.
OG Hva slags exceptions må
behandles?
En modifier. Brukes kun på variabler. Når en variabel markeres som transient blir den ikke sendt med klassen når man serialiserer.
Den blir ikke lagret i objektets vedvarende tilstand (persistent state).
Eks. rike gubbers kode til kontoen gjøres transient så vi
gutta ikke skal få tak på den.
Spesielt aktuell i klasser som implementerer interface Serializable
eller Externalizable og kan skrives til filer utenfor
JVM.
Brukes for å fange exeptions. Koden som skal testes må legges i ei try - blokk, og sendes til en catch-blokk som avgjør om den skal sendes videre(throw) eller behandles i catch-blokka.
try {
// lager en FileOutputStream som kan lese fra en fil
//parameter til FileOutputStream slik at dialogboksen bestemmer fil
FileInputStream fis = new FileInputStream(jfc.getSelectedFile().getPath());
// lager en FileOutputStream som kan lese fra en fil
DataInputStream dis = new DataInputStream(fis);
String s1 = dis.readUTF();
// skriver ut de verdiene som ble lest
tekstOmråde.setText(s1);
// lukker dis
dis.close();
// lukker fis
fis.close();
}
catch (IOException g) {
System.out.println(g);
}
Kan også avsluttes med en finally-blokk
Se også try, catch,
finally, throw og throws.
OG Hva slags exceptions må
behandles?
Ganske uvanlig Modifier. Kun for variabler. Indikerer at de kan modifiseres asynkront i multiprosessor miljø.
(Ikke examens stoff). Betyr flyktig.
Brukes til å lage en løkke (loop)
int i = 4; //f.eks
while (i <=6) {
i++;
System.out.println(" + i + " Geir Sundet " + i );
}