GRUNDKURS I PROGRAMMERING MED JAVA - PowerPoint PPT Presentation

About This Presentation
Title:

GRUNDKURS I PROGRAMMERING MED JAVA

Description:

Title: Processprogrammering Author: Jonny Karlsson Last modified by: Carl Wegelius Created Date: 8/31/2005 12:52:54 PM Document presentation format – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 16
Provided by: Jonn3
Category:

less

Transcript and Presenter's Notes

Title: GRUNDKURS I PROGRAMMERING MED JAVA


1
GRUNDKURS I PROGRAMMERING MED JAVA
  • Föreläsning 8 (15.1.2008)
  • INNEHÅLL
  • Att definiera egna klasser i skilda filer
  • Instanser av klasser
  • Instansvariabler
  • Instansmetoder

2
Att definiera egna klasser i skilda filer
  • Exempel Vi vill definiera en biblioteksklass som
    innehåller matematiska konstanter vilka
  • vi vill komma åt från en annan klass
  • class Konstanter //definierar en ny klass som
    heter Konstanter
  • static float pi 3.14
  • static float gravitation 9.8
  • Denna klass sparas i en egenfil konstanter.java
  • Observera att denna fil behöver nödvändigtvis
    inte heta just konstanter.java eftersom den
  • inte är en huvudklass och inte innehåller en
    huvudmetod (main)

3
Att definiera egna klasser i skilda filer
  • Nästa steg är att kompilera biblioteksfilen
    konstanter.java ? vi får en fil klassfil
  • konstanter.class
  • Nu är konstanterna i konstanter.class åtkomliga
    från vilken som helst annan klass vars
  • klassfil finns lagrad i samma katalog som
    konstanter.class
  • public class program
  • public static void main(String args )
  • System.out.println(Värdet för pi är
    Konstanter.pi)
  • System.out.println(Värdet för pi gravitationen
    är Konstanter.gravitation)

4
Instanser av klasser
  • Man kan utnyttja klasser som samling av metoder
    och egenskaper biblioteksklasser
  • (detta gick vi igenom förra gången).
  • Man kan också använda klasser för att definiera
    en typ av objekt, t.ex. egenskaper hos en
  • person, bil, båt osv...
  • Ett objekt som hör till en viss klass kallas för
    en instans eller ett objekt av klassen.
  • En instans eller ett objekt av en klass är i
    praktiken en variabel som är av typen en viss
  • klass.

5
Instanser av klasser
  • 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 eller en instans av
  • klassen String.
  • String är ett exempel på en klass som finns
    färdigt definierad i Java.

6
Instanser av klasser
  • Exempel2
  • String s, s2
  • Två nya variablerl s och s2 deklareras ovan som
    är av typen String.
  • s och s2 är nu två skilda objekt / instanser av
    klassen String.
  • s och s2 innehåller alla de egenskaper (variabler
    och metoder) som finns i klassen String
  • s och s2 är två enskilda variabler av typen String

7
Instansvariabler och instansmetoder
  • En klass kan innehålla bl.a. klassvariabler,
    instansvariabler, klassmetoder och
  • Instansmetoder.
  • Förra gången jobbade vi med klasser som innehöll
    klassvariabler och klassmetoder
  • Nu ska vi gå igenom instansvariabler och
    instansmetoder

8
Instansvariabler
  • 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 //instansvariabel
  • String namn //instansvariabel
  • Observera att variablerna fodelsear och namn INTE
    är statiska

9
Instansvariabler
  • Att variablerna fodelsear och namn INTE är
    statiska betyder att det kan existera flera
  • olika exemplar / kopior av dem som är totalt
    oberoende av varandra.
  • Vi kan därför av klassen Person skapa flera olika
    instanser / objekt
  • Person p1 new Person() //skapar ett nytt
    objekt p1 av klassen Person
  • Person p2 new Person() //skapar ett nytt
    objekt p2 av klassen Person
  • p1 och p2 är nu objekt / instanser av klassen
    Person. I detta fall betyder det i praktiken
  • att variablerna p1 och p2 innehåller två
    egenskaper födelseår och namn

10
Instansvariabler
  • Observera också att eftersom variablerna i
    klassen Person inte är statiska kan vi inte
  • komma åt dessa variabler direkt via klassnamnet
    på samma sätt som klassvariabler.
  • Vi måste i stället skapa ett objekt / en instans
    av klassen Person och sen kommer vi åt
  • instansvariablerna via objektet m.h.a
    punktnotation
  • Person p1 new Person() //skapar ett nytt
    objekt p1 av klassen Person
  • Person p2 new Person() //skapar ett nytt
    objekt p2 av klassen Person
  • p1.fodelsear
  • p1.namn
  • p2.fodelsear
  • p2.namn

11
Instansvariabler
  • public class program
  • public static void main(String args )
  • Person p1 new Person()
  • Person p2 new Person()
  • p1.fodelsear 1979
  • p1.namn Kalle
  • p2.fodelsear 1983
  • p2.namn Ville
  • System.out.println(p1.namn ar fodd
    p1.fodelsear och p2.namn ar fodd
    p2.fodelsear)
  • class Person //definierar en ny klass som heter
    Person
  • int fodelsear //instansvariabel

12
Instansmetoder
  • Som vi tidigare konstaterat, använder man
    instansvariabler för att beskriva eganskaper
  • hos en viss instans / ett visst objekt av en viss
    klass.
  • Ett objekt/en instans av en klass har normalt
    inte endast olika tillstånd utan även ett visst
  • beteende. M.a.o instanser av klasser kan ofta
    även utföra vissa operationer.
  • Dessa operationer definieras som instansmetoder.
  • En instansmetod är helt enkelt en helt vanlig
    metod som definieras inne i en
  • klassdefinition.
  • En metod definierad inne i en klass som inte är
    markerad som static, är en
  • instansmetod.

13
Instansmetoder
  • Exempel Vi vill definiera en klass som
    innehåller egenskaper för en bil märke och
  • Årsmodell. Vi vill också att ett objekt / en
    instans som skapas av klassen bil skall ha två
  • beteenden
  • Beteende1 Visa bilens märke och årsmodell
  • Beteende2 Be användaren mata in märke och
    årsmodell för en viss bil

14
Instansmetoder
  • class Bil
  • int arsmodell //instansvariabel
  • String marke //instansvariabel
  • void visaEgenskaper() //instansmetod
  • System.out.println(Marke marke)
  • System.out.println(Arsmodell arsmodell)
  • void inmataEgenskaper() //instansmetod
  • System.out.print(Ge marke )
  • marke input.readString()
  • System.out.print(Ge arsmodell )
  • arsmodell input.readInt()

15
Instansmetoder
  • Instansmetoderna visaEgenskaper och
    inmataEgenskaper är nu alltså instansmetoder
  • (inte statiska) som är till för att visa och mata
    ín märke och årsmodell för en VISS BIL.
  • Dessa metoder kan därför inte anropas direkt via
    klassnamnet som klassmetoder utan
  • Måste anropas via en instans / ett objekt av
    klassen Bil
  • Bil b1 new Bil()
  • Bil b2 new Bil()
  • b1.inmataEgenskaper()
  • b2.inmataEgenskaper()
  • b1.visaEgenskaper()
  • b2.visaEgenskaper()
  • Mera exempel hittar du på kurshemsidan under
    agenda och material.
Write a Comment
User Comments (0)
About PowerShow.com