Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014
Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4
public class {
public class { Åtkomst, public betyder fullt tillgänglig utifrån
public class { Vad det är för något, I detta fall en klassdefinition
public class { Vad det heter, i detta fall. Notera att klassnamn börjar med versal.
public class { Block som beskriver hur det ser ut, fungerar, innesluts i måsvingar
public class { private double ; private double ;
public class { private double ; private double ; Åtkomst, private betyder att det bara är tillgängligt inom denna klass.
public class { private double ; private double ; Vad det är, i detta fall flyttal med dubbel nogrannhet
Primitiva Datayper byte: Ett 8-bitars heltal från -128 till 127. Tar liten plats i minnet om man behöver många tal, t.ex i stora arrayer short: Ett 16-bitars heltal från -32.768 till 32.767. int: Ett 32-bitars heltal. Detta är det vanliga valet för heltal, och tar värden mellan -2.147.483.648 och 2.147.483.647 long: Ett 64-bitars heltal, som rymmer ett större spann av värden, från -9.223.372.036.854.775.808 till 9.223.372.036.854.775.807. Använd bara om du tror att du behöver så stora tal. float: Ett 32-bitars flyttal enligt standarden "single-precision 32-bit IEEE 754 floating point". Detta bör bara användas när minnesutrymme är viktigare än precision. double: Ett 64-bitars flyttal enligt standarden "double-precision 64-bit IEEE 754 floating point". Detta är det vanligaste flyttalet man använder. För nogrannare tal rekommenderas java.math.bigdecimal, som tillåter godtycklig precision i basen, och 32 bitar i exponenten. boolean: Kan ta värdena "true" eller "false". Tar inte nödvändigtvis mindre utrymme än en byte, men gör koden mer pedagogisk. char: Ett 16-bitars Unicode-tecken, tar värden från '\u0000' (eller 0) till '\uffff' (eller 65.535), kan användas med teckenkonstanter som t.ex 'A', ' @ ', eller ' あ '.
public class { private double ; private double ; Vad det är, i detta fall objekt av klassen Color
public class { private double ; private double ; Vad det heter. Notera att namn på fält börjar med gemen, och att nya ord börjar med versal. Namn på fält bör vara substantiv, eller nominalfraser.
public class { private double ; private double ; public void (double h){ = h;
public class { private double ; private double ; public void (double h){ = h; Åtkomst, public betyder fullt tillgänglig utifrån.
public class { private double ; private double ; public void (double h){ = h; Vad metoden returnerar. void betyder att metoden inte returnerar någonting
public class { private double ; private double ; public void (double h){ = h; Vad metoden returnerar. void betyder att metoden inte returnerar någonting
public class { private double ; private double ; public void (double h){ = h; Vad det heter. Notera att namn på metoder börjar med gemen och att nya ord börjar med versal. Namn på fält bör vara verb eller verbfraser.
public class { private double ; private double ; public void (double h){ = h; Argument till metoden. Det som står här ska skickas med när man anropar metoden.
public class { private double ; private double ; public void (double h){ = h; Argument till metoden. Det som står här ska skickas med när man anropar metoden. Vad argumentet är för typ, i detta fall ett flyttal med dubbel precision.
public class { private double ; private double ; public void (double h){ = h; Argument till metoden. Det som står här ska skickas med när man anropar metoden. Vad argumentet heter. Precis som fälten brukar vi ge argumenten namn som börjar med gemen, och är substantiv eller nominalfraser (eller enstaka bokstäver).
public class { private double ; private double ; public void (double h){ = h; Metodens namn och argument tillsammans kallas för metodens signatur. Varje metod I en klass måste ha en unik signatur.
public class { private double ; private double ; public void (double h){ = h; Block som beskriver vad metoden gör innesluts i måsvingar
public class { private double ; private double ; public void (double h){ = h; Tilldelning. I detta fall tar vi värdet som kom med som argumentet h, och lagrar det I fältet. Notera att det som står till höger om likhetstecknet (i detta fall en tilldelningsoperator) lagras i det som står till vänster.
public class { private double ; private double ;?
public class { private double ; private double ; public void (double h){ = h; public void (double w){ = w;
public class { private double ; private double ;...
public class { private double ; private double ;... public Color (){ return mycolor;
public class { private double ; private double ;... public Color (){ return mycolor;
public class { private double ; private double ;... public Color (){ return mycolor;
public class { private double ; private double ;... public Color (){ return mycolor;
public class { private double ; private double ;... public Color (){ return mycolor;
public class { private double ; private double ;... public Color (){ return mycolor; Retursats. En metod som inte har void som returtyp måste innehålla minst en retursats med rätt typ. I detta fall är metoden deklarerad med returtypen Color, och returnerar mycolor som ju är av den typen.
public class { private double ; private double ;...?
public class { private double ; private double ;... public double (){ return *; Retursatsen kan innehålla instruktioner.
Operatorer Aritmetik: a = b + c; a = b c; a = b * c; a = b / c; a = b % c; // modulooperator, tar resten a = a+b; // ekvivalent med a += b; a = a*b; // ekvivalent med a *= b; a += 1; // ekvivalent med ++a;
public class { private double ; private double ;... public (){ = 1; = 1; mycolor = Color.RED; Metoden som används för att skapa nya objekt kallas konstruktor. Den har ingen returtyp och heter samma sak som klassen.
public class { private double ; private double ;... public (){ = 1; = 1; mycolor = Color.RED; Klassen Color har fördefinierat ett antal färger, bl.a. röd.
public class { private double ; private double ;... public (double h, double w){ = h; = w; mycolor = Color.RED; Konstruktorn kan också ta argument.
Att skapa objekt Vi kan skapa nya objekt med nyckelordet new. Då anropas konstruktorn, och ett nytt objekt returneras. Ex: myrect; // Deklarerar en variabel // som kan lagra objekt // av typen myrect = new (); // Ett nytt objekt av // skapas och // och lagras i myrect
Terminologi Vi hänvisar till fält i ett objekt med punktnotation: Ex: myrect. Metoder anropas på liknande vis, men tar (eventuellt tomma) argument också: Ex: myrect.(10) Ett fält i ett objekt, kan i sig vara ett objekt, då kan vi skriva längre uttryck för att hänvisa till något. Ex: myrect..getblue(); // ger B värdet från färgens // RGB värde
Att köra ett program Det finns en speciell metod som man kan deklarera som heter main. Den blir startpunkten för programmet. Den deklareras såhär: public static void main(string args[]){ /* vad programmet gör */
Att köra ett program Det finns en speciell metod som man kan deklarera som heter main. Den blir startpunkten för programmet. Den deklareras såhär: public static void main(string args[]){ /* vad programmet gör */ Detta nyckelord gör att metoden kan köras innan vi har skapat några objekt.
Ett exempelprogram public class Demo{ public static void main(string args[]){ System.out.println( Demo! );
Ett exempelprogram public class Demo{ public static void main(string args[]){ System.out.println( Demo! ); Denna metod tar ett argument av typen textsträng, och skriver ut det på skärmen.
Java Skapades 1995 på Sun Microsystems, ägs och utvecklas numera av Oracle. Java används idag främst i applikationer med grafiska användargränsnitt, som ska kunna köras på många olika platformar. Exempel: Menysystemet på Blue Ray-skivor Program till mobiltelefoner (Android) Grafiska gränsnitt till andra språk, t.ex Matlab
Java Varför lära sig Java? Java är ett av världens vanligare programmeringsspråk, väl understött och dokumenterat. Man kan fort skriva program som kan köras var som helst. Java är ett relativt enkelt språk för att lära sig objektorientering, tillräckligt likt t.ex C++ eller C# för att underlätta inlärning av dessa. http://langpop.com/
http://www.csc.kth.se/utbildning/kth/kurser/dd1339