14 UNUTRAŠNJE I ANONIMNE KLASE

Slides:



Advertisements
Similar presentations
Queues CS-240 & CS-341 Dick Steflik. Queues First In, First Out operation - FIFO As items are added they are chronologically ordered, items are removed.
Advertisements

1 Lecture 26 Abstract Data Types – IV Overview  The List ADT  Implementing Stacks as Linked List  Linked List Implementation of Queues .  Preview:
Lab 7 Queue ADT. OVERVIEW The queue is one example of a constrained linear data structure. The elements in a queue are ordered from least recently added.
PiKKS. Ukratko Općenito Osnovni elementi OOP u Javi Overloading, overriding, virtual method invocation, modifikatori... Exceptions Java GUI Threads.
Prof: doc.dr. Samir Lemeš student: Samir Hrnjić. System restore je komponenta Microsoftovih operativnih sistema Windows Serveri ne podržavaju opciju System.
Java Programming Persistent Data Types. Persistent Data Structure A persistent data structure is a data structure having an internal state that never.
Predavanje br. 7 Formiranje GIS-a II Relacione klase.
Programiranje kroz aplikacije
Provisioning Windowsa 10 na IoT, mobilnim i desktop uređajima
UML Dijagrami Nemanja Zdravković broj Indeksa: 12824
Pokazivači i klase, Nasleđivanje, Kompozicija
Konkurentno programiranje
RP3/predavanje08 Ugniježdeni tipovi Iznimke 10/11/2018
4.1 Vizualni (grafički) HTML uređivači
Klase i objekti u C#.
Java Hello world !.
PONAVLJANJE CheckBox Koristi se za rešavanje zadataka gde je potrebno omogućiti uključivanje ili isključivanje jedne ili više opcija. Važna svojstva: –Checked.
Nadgradnja klasa i nasljeđivanje – 3
Programi,Podaci,Varijable,Računanje- Uvod
Programiranje - Blokovi naredbi i logički tipovi –
Java Klase – 2.
PROGRAMIRANJE MENIJA.
The Present Perfect Continuous Tense
7. Rad sa AWT-komponentama
Petlje FOR - NEXT.
REPEAT…UNTIL Naredbe ciklusa.
PROGRAMSKE PETLJE Milenković Gabrijela.
null, true, and false are also reserved.
Explore-plots Katarina Jeremić 143/2011 Jovana Vulović 33/2011
Објектно орјентисано програмирање
KREIRANJE OBJEKATA.
Interkulturalni karakter prekogranične medijacije.
Java Klase (Classes).
Uvod u programiranje - matematika – X predavanje
Arrays and strings -2 (nizovi i znakovni nizovi)
Reference ćelije i opsega
LABORATORIJSKA VEŽBA VEŽBA 4
Razvoj Web aplikacija Ajax.
Arrays and strings -1 (nizovi i znakovni nizovi)
LAPLACEOVA TRANSFORMACIJA
Klasa grafik.
Objektno orijentisano programiranje
HTML.
Naredba Case Višestruko grananje.
Programiranje za Internet
M-datoteke.
Page Layout Podešavanje stranica.
Element form Milena Kostadinović.
MessageBox.
predavanja v.as.mr. Samir Lemeš
Pojmovi digitalnog zapisa
Objektno orijentisano programiranje
PROGRAMSKI JEZIK PASCAL
Knjižnični odgoj i obrazovanje 3. razred
Osnovni simboli jezika Pascal
Do While ... Loop struktura
MagistralA (bus) Milan Milovanovic I6.
Default konstruktor struct C{ int i; }; struct D{ D( ):i(1){ }
JavaScript Reserved Words
Naredbe u php-u.
SRETNA SEDMICA.
Programski jezik Python
Priprema prezentacije
Discipleship in Action
Queues CSC212.
7. Baze podataka Postavke MS Accessa.
Stacks.
Ponavljanje Pisana provjera
INTERPOLACIJA PO DIJELOVIMA POLINOMIMA
Vježbenica 2: struktura grananja – 2.dio
Presentation transcript:

14 UNUTRAŠNJE I ANONIMNE KLASE

definicija Unutrašnja (inner) klasa je klasa koja je član druge (tzv. "spoljašnje") klase kao član, ni po čemu se ne razlikuje od drugih članova (polja, metoda): može biti nestatička ili statička važe sva četiri nivoa kontrole pristupa spoljašnja klasa je u potpunosti otvorena za metode unutrašnje klase i obrnuto može se, čak, definisati i unutar metode služi, najčešće, za interne potrebe spoljašnje klase 2

sintaksa definiše se kao i svaka druga klasa  class NazivKlase { .................. } s tim što se naredba class u celosti nalazi unutar naredbe class spoljašnje klase (ili unutar metode, ako je klasa unutrašnja za metodu) 3

UML SpoljašnjaKlasa UnutrašnjaKlasa 4

primer za primer spregnutog reda: kako onemogućiti bilo kakav pristup članovima liste koji su sadržani u klasi Queue? ne može se instancirati T <<interface>> Queue LinkedQueue {abstract} java.util::LinkedList PLinkedQueue T U instancira se preko ovog sam red je ovde 5

unutrašnja klasa import java.util.LinkedList; public abstract class LinkedQueue { public static <V> Queue<V> makeQueue() { return new PLinkedQueue<V>(); } private static class PLinkedQueue<U> extends LinkedList<U> implements Queue<U> { public void put(U element) { addLast(element); public U get() { return isEmpty() ? null : getFirst(); public U remove() { return removeFirst(); public boolean isFull() { return false; unutrašnja klasa 6

Queue<String> q = LinkedQueue.makeQueue(); instanciranje klasa LinkedQueue instancira se tako što se, ustvari, kreira objekat unutrašnje klase PLinkedQueue pošto je unutrašnja klasa statička, a spoljašnja apstraktna (te se ne može instancirati), instanciranje reda izvodi se primenom statičke metode makeQueue: Queue<String> q = LinkedQueue.makeQueue(); 7

new Klasa_ili_Interfejs() {opis anonimne klase} bezimene klase koje se definišu i instanciraju istovremeno najčešće se koriste pri formiranju rezultata metode, kada je on objekat anonimne klase objekat anonimne klase formira se izrazom new Klasa_ili_Interfejs() {opis anonimne klase} gde je Klasa_ili_Interfejs koju anonimna klasa nasleđuje odn. implementira 8

UML u UML se prikazuju upisivanjem stereotipa <<Anonimous>> na mesto naziva klase i vezivanjem za datu klasu vezom "biti unutrašnja klasa" 9

<<interface>> AnInterface ClassWithAnonimous <<Anonimous>> 10

public interface AnInterface { void inc(); void dec(); } //Klasa sa anonimnom unutrasnjom klasom public class ClassWithAnonimous { private int x; ClassWithAnonimous() { x = 0; public int get() { return x;   //Metoda sa unutrasnjom klasom koja konkretizuje AnInterface public AnInterface value() { return new AnInterface() { public void inc() { x++; public void dec() { x--; }; definisanje i instanciranje anonimne klase koja implementira interfejs AnInterface 11