Objektna metodologija

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

Tentamen. Lösningsförslag

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

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

OOP Objekt-orienterad programmering

Tillämpad programmering

Uvod u VHDL. Marijo Maračić

OOP Objekt-orienterad programmering

OOP Tenta

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

Konstruktion av klasser med klasser

Java, klasser, objekt (Skansholm: Kapitel 2)

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

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

Tentamen. Grundläggande programmering i Java A 5p, DTAA

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

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

JAVA Mer om klasser och objektorientering

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

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

F4. programmeringsteknik och Matlab

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

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

Malmö högskola 2008/2009 CTS

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Tentamen OOP

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

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsning 5-6 Innehåll

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

TVÅ SPRÅK ELLER FLERA? DVA ILI VIŠE JEZIKA? Råd till flerspråkiga familjer. Savjeti višejezičnim porodicama

Del A (obligatorisk för alla)

Föreläsning 8: Exempel och problemlösning

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

OOP Omtenta

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

Del A (obligatorisk för alla)

Dugga i Grundläggande programmering STS, åk

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

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

Klasshierarkier. Klasser kan byggas på redan definierade klasser

Föreläsning 3-4 Innehåll

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Tillämpad programmering

Arv. Objektorienterad och komponentbaserad programmering

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

TENTAMEN OOP

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.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

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

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Tentamen i Programmeringsteknik I

OOP Omtenta

OOP Objekt-orienterad programmering

OOP Tentamen

JAVAUTVECKLING LEKTION 11

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

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

Föreläsning 12: Exempel och problemlösning

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

Föreläsning 3: Booleans, if, switch

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

Lösningsförslag övning 2.

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

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

(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

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

Kapitel 6. Kapitel 6. Hakparenteser fšr att ange index float[] priser = new float[500]; frekvens[4] boolean[] flaggor;

OOP Tentamen

Tentamen i Programmeringsteknik I

public interface Skrivbar { void skriv(); } public class Punkt implements Skrivbar { public double x; public double y;

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

OOP Objekt-orienterad programmering

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

TENTAMEN OOP

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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

OOP Omtenta

Tentamen i Programmering

Obligatorisk uppgift: Numerisk kalkylator

Obligatorisk uppgift: Numerisk kalkylator

JAVAUTVECKLING LEKTION 8

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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

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

TDDI82 - Projekt. Christoffer Holm. Institutionen för datavetenskap (IDA)

Transkript:

Objektna metodologija Kreiranje objekata (instanciranje) Tipovi promenljivihi metoda Pristup promenljivama i metodama je posebna vrsta metoda koji služi za kreiranje objekata klase poziva se uvek u kombinaciji sa operatorom new metod konstruktor se lako prepoznaje u definiciji klase po tome što: ima isto ime kao klasa nema povratni tip kao ostali metodi Primer: Tacka x,y; // deklaracija dve promenljive tipa Tacka // tj. imenovanje dva objekta klase Tacka x = new Tacka( ); // kreiranje objekta x klase Tacka Tacka y = new Tacka( ); // deklaracija i kreiranje objekta y 2 Šta se dešava kada se pozove metod konstruktor? rezerviše se mesto u memoriji za objekat koje ima strukturu definisanu šablonom klase inicijalizuje se objekat promenjlive objekta dobijaju početne vrednosti (default ili zadate) Ako prethodno nije posebno deklarisan objekat deklariše se tip objekta (to je klasa kojoj objekat pripada) daje se ime objektu U klasi može biti više metoda konstruktora, ali se onda razlikuje njihova lista argumenata Svaka Java klasa ima na raspolaganju default ili implicitni konstruktor Ako u definiciji klase nema eksplicitno definisanog konstruktora, za kreiranje objekata se koristi implicitni konstruktor Implicitni konstruktor svake klase ima praznu listu argumenata i prazno telo metoda 3 imeklase( ) { 4 1

definicija klase Voce Definisati klasu Voce koja je opisana sa: dva celobrojna atributa grami i kalorijepogramu, i dva metoda metodom konstruktorom i metodom ukupnokalorija() koji izračunava kalorije kao proizvod težine (u gramima) i kalorija po gramu. 5 definicija klase Voce Definisati klasu Voce sa dva celobrojna atributa grami i kalorijepogramu i metodom konstruktorom koji inicijalizuje oba atributa zadatim vrednostima, kao i metodom za računanje ukupnih kalorija. class Voce { int grami; // težina u gramima int kalorijepogramu; Voce ( ) { // default konstruktor Voce (int a, int b){ // drugi konstruktor grami = a; kalorijepogramu = b; int ukupnokalorija() { return(grami* kalorijepogramu); 6 Kreiranje objekta (instance) klase Za kreiranje objekata (instanci) klase koriste se operator new i metod konstruktor Primer: kreiranje objekata (instanci) klase Voce koje smo nazvali sljiva i kruska Voce sljiva = new Voce(); // nakon kreiranja objekta sljiva atributi će imati default vrednosti u memoriji 0 i 0. Voce kruska = new Voce(50,10); // objekat kruska biće inicijalizovan, tj. atributi će dobiti vrednosti 50 i 10. 7 Kreiranje objekata (instanci) klase Deo programskog koda klase Voce: Voce sljiva = new Voce(); pokreće metod konstruktor Voce(). Tom prilikom se: kreira objekat sa imenom sljiva rezerviše mesto u memoriji koje ima strukturu klase Voce Konstruktor sa argumentima Voce (50,10) inicijalizuje objekat kruska (postavlja vrednosti promenljivih instance kreiranog objekta na 50 i 10) 8 2

Višestruki konstruktori U Javi je moguće definisati više konstruktora sa različitim listama argumenata u jednoj klasi: Npr. Voce(), Voce(int a), Voce(int a, int b)... Pristup promenljivama instance (referenciranje, obraćanje) Pristup primenljivoj instance vrši se navođenjem njenog objekta imeobjekta.imepromenljive Tačka (dot operator) je upravljački simbol koji služi za pristup (obraćanje) promenljivama i metodama instance date klase Na taj način je omogućeno kreiranje objekata na različite načine (u odnosu na inicijalizaciju njihovih promenljivih) 9 Promenljiva instance konkretnog objekta ponaša se isto kao i svaka promenljiva u Javi, dakle, prema tipu može biti: u sastavu odgovarajućeg izraza, argument metoda za štampu i sl. 10 Pristup promenljivama instance - primer Pristup metodama instance (referenciranje, obraćanje) // referenciranje na promenljive objekta sljiva i kruska int ukupno = sljiva.grami + kuska.grami; if (sljiva.kalorijepogramu > kruska.kalorijepogramu) System.out.print( Šljiva je kaloričnije voće ) else { if (sljiva.kalorijepogramu < kruska.kalorijepogramu) System.out.print( Kruška je kaloričnije voće ) else System.out.print( Kruška i šljiva su jednako kalorične ); Tačka (dot operator) je upravljački simbol koji služi za pristup i pokretanje metoda instance date klase Poziv metoda instance imeobjekta.imemetoda( ) Primer: // pokretanje metoda ukupnekalorije() klase Voce na objektu sljiva int kalorije; kalorije = sljiva.ukupnekalorije(); 11 12 3

definicija klase Tacka Definisati klasu Tacka opisanu sa: dve realne promenljive (koordinate tačke u ravni), metodom konstruktorom koji inicijalizuje obe koordinate tačke, metodom za translaciju tačke u ravni za zadate vrednostii metodom za prikaz pozicije konkretne tačke u ravni definicija klase Tacka Class Tacka{ float x,y; Tacka(float a, float b){ x = a; y = b; // metod konstruktor void transliraj(float promenax, float promenay){ x = x + promenax; y = y + promenay; 13 String prikaz(){ return Tacka sa koordinatama ( + x +, + y + ) ; 14 Primer kreiranje objekta (instance) klase, poziv metoda instance, obraćanje promenljivoj instance Class TackaDemo{ public static void main (String[] args) Tacka a = new Tacka(1,3); // kreiranje objekta (instance) a //(1.0, 3.0) a.transliraj(1,2); // poziv metoda a.x = 0; a.y = 0; //(2.0, 5.0) // obraćanje promenljivima // x i y objekta a //(0.0, 0.0) Klase i objekti Tipovi promenljivih i metoda Klase su šabloni za kreiranje objekata (instanci klase) Promenjive mogu biti: Promenjive instance Promenljive klase (statičke promenjive) Metodi mogu biti: Metodi instance Metodi klase (statički metodi) 15 16 4

Tipovi promenljivih u Javi Tipovi metoda u Javi promenljive instance vezane za pojedinačni objekat promenljive klase (static) imaju jednu zajedničku vrednost za celu klasu promenljive klase i instance imaju default početne vrednosti (numeričke 0, logičke false, znakovne \0, objekti null ) lokalne promenljive oblast važenja im je samo u okviru bloka u kome su deklarisane lokalne promenljive se moraju inicijalizovati! Metodi instance vezani za pojedinačni objekat pozivaju se isključivo preko konkretnog objekta koji određuje konkretnu adresu u memoriji Metodi klase (static) zajednički su za celu klasu metodi klase ne zahtevaju kreiranje objekta za koji će biti pozvani pozivaju se preko imena klase ili samo svojim imenom, ako je poziv iz klase u kojoj su definisani Poziv metoda u Javi - primer Poziv metoda instance objekta x: x.transliraj(2,3); Poziv metoda klase (static) za klasu Prirodni: A. preko imena klase Prirodni.pomnozi(11,30); ili B. samo svojim imenom, ako je poziv iz klase Prirodni u kojoj je metod definisan pomnozi(11,30); 5