OOP Objekt-orienterad programmering

Relevanta dokument
OOP Objekt-orienterad programmering

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

OOP Objekt-orienterad programmering

OOP Tentamen

Föreläsning 3-4 Innehåll

System.out.println("Jaså du har "+ antaldollar + " stycken.");

OOP Objekt-orienterad programmering

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

OOP Objekt-orienterad programmering

Tentamen OOP

PROGRAMMERING-Java Omtentamina

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Typkonvertering. Java versus C

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Föreläsning 4. Klasser och objekt

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 11

Lösningsförslag till tentamen

1 Egna klasser. 1.1 En punkt-klass

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Objekt och klasser - Introduktion

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Föreläsning 6: Metoder och fält (arrays)

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Uppgift: Algoritm för att beräkna kontrollsiffran i ett personnummer givet de 9 första siffrorna. Torrsimning av algoritm för personnummer

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Föreläsning 5. Föreläsning 5. Klasser och objekt. Klasser och objekt. Klasser och objekt

Malmö högskola 2007/2008 Teknik och samhälle

OOP Tenta

TENTAMEN OOP

PROGRAMMERING-JAVA TENTAMINA

Ett objekt... Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål:

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Lösningsförslag till tentamen

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Malmö högskola 2008/2009 CTS

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Objektorienterad Programmering (TDDC77)

Föreläsning 2. Primitiva datatyper Selektering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

PROGRAMMERING-Java TENTAMINA

OOP Omtenta

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

Mer om klasser och objekt

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

OOP Objekt-orienterad programmering

TENTAMEN OOP

Grundläggande programmering med C# 7,5 högskolepoäng

OOP Tentamen

Objektorienterad Programmering (TDDC77)

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

Föreläsning 2, vecka 8: Repetition

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

OOP Tentamen

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Objektorienterad programmering Föreläsning 5

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Enkla variabler kontra referensvariabel

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Tentamen , Introduktion till Java, dtaa98, dtea53

OOP Omtenta

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

Objekt som argument. Föreläsning 7-8 Innehåll. Hur komma åt den andra kvadratens attribut? Anropa metod på objektet självt

Objektorienterad Programmering (TDDC77)

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 1-2 innehåll

Laboration 13, Arrayer och objekt

OOP Omtenta

Föreläsning 5-6 Innehåll

Föreläsning 7-8 Innehåll

Föreläsning 14. Filhantering

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

Instuderingsfrågor, del D

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

DAT043 Objektorienterad Programmering

Lösningsförslag till tentamen

Primitiva datatyper och selektering

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Programmeringsteknik I

Transkript:

OOP F4:1 OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder Metoder - subrutiner OOP F4:2 Kod som utför en viss operation. Ligger i olika klasser och anropas via operatorn. (punkt) t.ex metoden println hos System.out: System.out.println("Hej Hopp!"); Metoden nextline hos Scanner: Scanner sc=new Scanner(System.in); System.out.print("Vad heter du? "); String namn=sc.nextline(); Hos de olika klasserna på API-biblioteket finns en mängd metoder som gör olika mer eller mindre fiffiga saker... 1

Slumptal - biblioteks-klassen Random OOP F4:3 Det finns alltså ett antal fördefinierade klasser i Java s API-bibliotek. Beskrivs i API-dokumentationen: http://java.sun.com/javase/6/docs/api/ Klassen Random används om man vill ha slumptal. Random ligger i java.util - delbiblioteket. Innehåller metoder för att få slumptal, t ex: int nextint() returnerar ett slumpmässigt heltal int nextint(int n) returnerar ett slumptal mellan 0 och n-1 (nextint(100) returnerar alltså ett tal mellan 0 och 99) boolean nextboolean() returnerar true eller false double nextdouble() returnerar ett tal mellan 0.0 och 1.0 Ett program som skriver ut 10 slumptal mellan 1 och 100: OOP F4:4 import java.util.*; class SlumpTest{ public static void main(string[] args){ Random slump = new Random(); for (int x=1; x<=10; x++){ int tal = slump.nextint(100) + 1; System.out.println(tal); Obs att metodanropet slump.nextint(100) returnerar ett slumpmässigt tal i intervallet 0-99. Vi vill ha ett tal 1-100 så därför adderar vi 1. 2

Klassen Math OOP F4:5 Ligger på java.lang - delbiblioteket. Allt som ligger i java.lang kan användas direkt, man behöver alltså INTE göra: import java.lang.*; I Math-klassen finns ett antal statiska metoder och attribut, t ex static double PI static int abs(int a) static double sqrt(double a) pi med jättemånga decimaler... returnerar absolutbeloppet av a returnerar roten ur a static double pow(double a, double b) returnerar a upphöjt till b plus många fler... Eftersom metoderna är statiska så anropas de utan att man skapar ett Math-objekt: double dd = Math.sqrt(14); double omkrets = Math.PI * diameter; Klass-metoder kontra instans-metoder OOP F4:6 Jämförelse av anrop på metoder i Random och Math: Random slump = new Random(); int tal = slump.nextint(100); nextint är en instansmetod. Man måste alltså skapa ett Random-objekt innan nextint kan anropas double d = 4.876; int x = (int)math.round(d); round är en klassmetod. static long round(double d); Kan alltså anropas via klassnamnet En klass-metod är deklarerad som static (även attribut kan vara static) 3

Metod-syntax OOP F4:7 <returtyp> <namn>(<argumentlista>){ metodkropp int big(int tal1, int tal2){ if (tal1>tal2) return tal1; else return tal2; <returtyp> kan vara vilken typ som helst. Även arrayer eller objekt kan returneras. Vill man ej returnera något skriver man void <argumentlista> är indata till metoden. Man måste skicka med värden som matchar argumentlistan när man anropar metoden. Om inga indata () i metodkroppen skrivs return <värde>, där <värde> måste matcha metodens returtyp. Return avbryter metoden. Return behöver ej göras göras i metoder som har returtypen void (men man kan skriva return; ) Skriv en metod som returnerar summan av talen som finns i en int-array. OOP F4:8 int summa(int[]arr){ int sum=0; for (int x=0; x<arr.length; x++) sum+=arr[x]; return sum; Skriv en metod som returnerar index för den ruta där ett visst värde i en int-array finns. int find(int[]arr, int värde){ for (int x=0; x<arr.length; x++) if (arr[x]==värde) return x; return -1; 4

Överlagring OOP F4:9 Flera metoder kan ha samma namn, skiljs åt genom att de har olika argument. Vilken av metoderna som blir anropad beror på vilket argument som skickas med vid anropet. int beräkna(int x){ return x*3; int beräkna(int x, int y){ return x*y; int beräkna(string str){ return str.length(); 5