Jonny Karlsson 8.1.2008 1 INTRODUKTION TILL PROGRAMMERING Föreläsning 7 (8.1.2008) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
INTRODUKTION TILL PROGRAMMERING
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Klasser och objekt.
Funktioner och programorganisation
Klassarv och inkapsling
Objektorienterad utveckling Lektion 2 Objekt, överlagring, överskuggning, klasshierarkier och dynamisk bindning KTH Peter Mozelius.
Metoder i java Det finns två typer av metoder i java
Objektorienterad tänkande
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Programkodens uppbyggnad
Att programmera i språket Java
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Next previous Introduktion till Java Av Björn Eiderbäck Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: OOMPAE 2000.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Alice in Action with Java
Objektorienterad programmering i Java
INTRODUKTION TILL PROGRAMMERING
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Föreläsning 11 Arrayer.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Repetition inför slutprovet
Klasser och objekt Klasser, objekt och instansvariabler
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Objektorienterad Modellering Programmering och Analys
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska opertorer -Poster.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
Jonny Karlsson GRUNDKURS I PROGRAMMERING MED JAVA Föreläsning 9 ( ) INNEHÅLL: -Tabeller av klassobjekt -Användning av Java API specifikationen.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Föreläsning 4 Klasser Och Objekt.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
Class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde; int[] fall = new int[num]; //vattenflödet i vattenfallen.
Föreläsning 7 Programmeringsteknik och Matlab DD1315 Kommandotolk parametrar Klass Instans Metod konstruktor.
1 Föreläsning 8 Mer om klasser och objektorientering.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Föreläsning 5 Klasser och instanser
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
OOP - teori1 OOP del II– Föreläsning 5 vecka 6. OOP - teori2 Klasser Substantiv i singularis stavat med stor bokstav till exempel Human Dog Account Circle.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
1 Mer om metoder, variabler, klasser och objekt. Kursboken: - Kapitel 6 - Kapitel 8.
Presentationens avskrift:

Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder

2Jonny Karlsson Klasser Alla java-källkodsfiler innehåller minst en klass. Alla java-program vi hittils gjort i kursen har innehållit en huvudklass (som har samma namn som namnet på källkodsfilen) Klasser kan användas för att definiera en typ av objekt, t.ex egenskaper hos en person (detta kommer vi in på senare i kursen), Klasser kan också användas som en samling av metoder, t.ex. input klassen som vi i denna kurs använt för att kunna läsa in olika värden från tangentbordet. Dessa typer av Klasser brukar kallas för biblioteksklasser.

3Jonny Karlsson Att skapa egna klasser I Java finns en mängd fördefinierade klasser. Ett exempel på en fördefinierad klass är klassen System som vi redan gång på gång i denna kurs utnyttjat för att kunna skriva ut text på konsolfönstret. Man kan i Java också vid behov skapa egna klasser. Klassen input är en ”egen” biblioteksklass skapad av Kim Skön som senare en aning modifierats av Jonny Karlsson!!! En ny klass kan definieras i en skild källkodsfil eller i samma källkodsfil som huvudklassen. Klassen input är ett exempel på en klass som har definierats i en egen källkodsfil (input.java).

4Jonny Karlsson Att definiera egna klasser Tillsvidare behandlar vi endast hur man definierar egna klasser i samma källkodsfil som huvudklassen. 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.

5Jonny Karlsson Att definiera egna klasser Vår tidigare definierade klass ”Minklass” var för enkelhetens skull en tom klass som varken har några egenskaper eller utför några rutiner. En klass kan innehålla bl.a. klassvariabler, klassmetoder, instansvariabler och Instansmetoder. Tillsvidare går vi endast igenom klassvariabler och klassmetoder.

6Jonny Karlsson Klassvariabler Exempel: Vi vill definiera en hög matematiska konstanter och samla ihop dessa i en gemensam klass. För enkelhetens skull vill vi nu endast skapa två konstanter: värdet för pi och jordens dragningskraft. Då skulle vi definiera en ny klass, Konstanter, som innehåller två klassvariabler: pi och gravitation: class Konstanter//definierar en ny klass som heter Konstanter { static float pi = 3.14; static float gravitation = 9.8; }

7Jonny Karlsson Klassvariabler Observera nyckelordet static framför variablerna i klassen Konstanter. Nyckelordet static berättar att variabeln skall vara statisk vilket betyder att det endast kan förekomma en instans eller en ”kopia” av denna variabel (mera om instanser kommer senare). En statisk variabel brukar man kalla för klassvariabel. En statisk variabel i en klass kommer man åt direkt via klassnamnet och m.h.a punktnotation: klassnamn.variabelnamn. Punktteknet som används här kallas i Java för syftningsoperator

8Jonny Karlsson Klassvariabler 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); }} class Konstanter//definierar en ny klass som heter Konstanter { static float pi = 3.14; static float gravitation = 9.8; }

9Jonny Karlsson Klassmetoder Metoder kan liksom variabler vara markerade som static. Att en metod är statisk betyder att det bara finns ett enda exemplar av just denna metod (mera om detta senare). En statisk metod kallas för klassmetod.

10Jonny Karlsson Klassmetoder Exempel: Vi vill programmera en mängd olika metoder som beräknar arean av olika typer av geometriska figurer och samla alla dessa metoder i en biblioteksklass. För enkelhetens skull gör vi nu endast 3 metoder: En metod som beräknar arean av en: kvadratrektangelCirkel Vi behöver då kanske en konstant för pi (klassvariabel) och så behöver vi tre k lassmetoder: Se nästa sida 

11Jonny Karlsson Klassmetoder class FigurArea { static float pi = 3.14; static float kvadrat(float bas) { return bas*bas; } static float rektangel(float bas, float hojd) { return bas*hojd; } static float cirkel(float radie) { return 2*pi*radie; }}

12Jonny Karlsson Klassmetoder En klassmetod kommer man från en annan klass åt på samma sätt som en klassvariabel dvs. direkt via klassnamnet och m.h.a punktnotation: Klassnamn.metodNamn System.out.println(”Arean för en cirkel med radien 4.5 ar ” + FigurArea.cirkel(4.5));.... För ett enhetligt exempel se: exempelX

13Jonny Karlsson Klassmetoder Vi har nästan under hela kursens gång använt oss av klassmetoder utan att vi vetat om det!!! T.ex. Metoden readInt() som vi använt för att läsa in heltal från tangentbordet är en klassmetod i klassen input. Därför har vi anropat den så här: input.readInt() Studera källkoden för input klassen här. här