100 likes | 288 Views
INTRODUKTION TILL PROGRAMMERING. Föreläsning 7 (8.1.2007) INNEHÅLL: Klasser och instansvariabler Tabeller av klassobjekt . Klasser och instansvaribaler. Alla värden som hanteras i Java är antingen primitiva typer eller referenstyper. Referenstyper kallas vanligen objekt
E N D
INTRODUKTION TILL PROGRAMMERING Föreläsning 7 (8.1.2007) INNEHÅLL: Klasser och instansvariabler Tabeller av klassobjekt Jonny Karlsson 8.1.2007
Klasser och instansvaribaler Alla värden som hanteras i Java är antingen primitiva typer eller referenstyper. Referenstyper kallas vanligen objekt Ett objekt kan antingen vara en array eller tillhöra någon i ett program (eller bibliotek) definierad datatyp. Dessa definierade typer kallas för klasser. Ett objekt som hör till en viss klass kallas för en instans eller ett objekt av klassen. Vi kommer i den här kursen att kalla dessa för objekt. Jonny Karlsson 8.1.2007
Klasser och instansvaribaler Exempel: String s; En ny variabel s deklareras ovan som är av typen String. String är en klass som definierar strängar och s blir nu ett nytt objekt av klassen String. String är ett exempel på en klass som finns färdigt definierad i Java. Jonny Karlsson 8.1.2007
Klasser och instansvaribaler ATT SKAPA EGNA KLASSER Klasser kan även vid behov deklareras av programmeraren själv. En ny klass kan deklareras i en skild källkodsfil eller i samma källkodsfil som innehåller huvudklassen med tillhörande huvudfunktion (”main”-funktion). Tillsvidare behandlar vi hur man deklarerar klasser i samma källkodsfil. Jonny Karlsson 8.1.2007
Klasser och instansvaribaler ATT SKAPA EGNA KLASSER En egen klass i samma källkodsfil som huvudklassen deklareras enligt följande: public class mittJavaProg { public static void main(String args[ ]) { } } class Minklass { } Observera att huvudklassen och endast huvudklassen skall vara ”public”. Huvudklassens namn bör vara samma som källkodsfilens namn. Jonny Karlsson 8.1.2007
Klasser och instansvaribaler Vår tidigare deklarerade klass ”Minklass” var för enkelhetens skull en tom klass som varken gör någonting eller innehåller variabler. En klass kan innehålla bl.a. instansvariabler och instansmetoder Tillsvidare går vi endast igenom instansvariabler. Jonny Karlsson 8.1.2007
Klasser och instansvaribaler Exempel: Vi behöver ett program som hanterar olika egenskaper av en person. Dessa egenskaper kan för enkelhetens skull nu vara endast födelseår och namn. Då skulle vi deklarera en ny klass för människa med två instansvariabler födelseår (int) och namn (String): class Person //definierar en ny klass som heter Person { int fodelsear; String Namn; } Jonny Karlsson 8.1.2007
Klasser och instansvaribaler Om vi nu från huvudklassens huvudmetod vill skapa ett nytt objekt av klassen Person gör vi enligt följande: public class mittJavaProg { public static void main(String args[ ]) { Person p; //Deklarerar en variabel p av typen //Person p = new Person(); //skapar ett objekt av klassen Person. //Adressen/referensen till klassen tilldelas //variabeln p. } } Jonny Karlsson 8.1.2007
Klasser och instansvaribaler Efter detta kan den egna klassens instansvariabler kommas åt m.h.a. punktnotation: p.fodelsear = 1977; p.namn = ”Karl Karlsson”; Punktteknet som används här kallas i Java för syftningsoperator Nyttan med att använda klasser i det här fallet är ju att man kan binda flera egenskaper till en viss person även om programmet behandlar flera personer. Man kan ju skapa hur många objekt som helst av klassen Person och varje objekt innehåller egenskaperna namn och fodelsear. Jonny Karlsson 8.1.2007
Tabeller av klassobjekt Man kan även skapa tabeller av klassobjekt. Följande skapar en tabell av 10 Person- variabler: Person ptab[] = new Person[10]; //skapar en taball av 10 Person-variabler Sedan måste man skapa ett nytt objekt av klassen Person för varje Person-variabel i Person-tabellen: ptab[0] = new Person(); //ptab[0] blir ett nytt objekt av klassen Person ptab[1] = new Person(); //ptab[1] blir ett nytt objekt av klassen Person Sedan kommer man åt de olika objekten i klassobjektstabellen m.h.a. index värden (på samma sätt som i vanliga tabeller) ptab[0].namn = ”pelle”; //instansvariabeln namn i Person-tabellens //första position får värdet pelle ptab[0].fodelsear = 1999; //instansvariabeln fodelsear i Person-tabellens //första position får värdet 1999 ptab[1].namn = ”ville”; //.....andra posotion ...... ville ptab[1].fodelsear = 1988; //.....andra posotion ...... 1988 Jonny Karlsson 8.1.2007