Professional Documents
Culture Documents
Osnove Objektno Usmjerenog Programiranja
Osnove Objektno Usmjerenog Programiranja
PROGRAMIRANJA
Prednosti objektno usmjerenog programiranja
• Lakše modeliranje problema
• Brži razvoj kvalitetne programske podrške
• Lakše održavanje programskih rješenja
Struktura koja
se koristi za
stvaranje
njezinih jedinki
Svi tipovi
podataka u
Pythonu su
klase
Klasa: Automobil
Atributi (svojstva): proizvođač, model, tip motora, snaga motora, vanjska boja, broj vrata, …
Podatkovne zbirke
stringovi
n-torke
liste
rječnici
PRIMJERI POZNATIH KLASA PYTHONA
String
Lista
Svojstvo: članovi liste
Metode: append(), sort(),…
• Svi tipovi podataka u Pythonu su klase, a sve pojedine vrijednosti jedinke, odnosno objekti klasa.
OBLIKOVANJE KLASA U JEZIKU PYTHON
Objekt
Djelovanje metode
PRIMJER 2.
Klasa GeometrijskiLik
Hijerarhija klase geometrijskih likova
OPIS KLASE GeometrijskiLik
Kreirajmo dva objekta klase Razlomak. Nazovimo ih x i y. Želimo izračunati njihov umnožak z. Taj umnožak je
ponovno objekt iz iste klase Razlomak. U skladu s pravilima objektno usmjerenog programiranja, objekt x treba
pozvati metodu svoje klase koja će kao parametar imati objekt y, a kao rezultat ćemo dobiti objekt iste te klase z,
tj. z = x.umnozak(y)
U objektno usmjerenom programiranju enkapsulacija označava proces grupiranja i zaštite atributa u jednu cjelinu-
klasu
Jedan od osnovnih koncepata objektno usmjerenog programiranja
Primjer: Samoposlužni aparat
Naša interakcija s aparatom je ograničena i ne možemo utjecati na rad aparata
Novac Proizvod
ENKAPSULACIJA
Imaju standardni oblik kao i druge metode, samo ispred početka funkcije imaju opisnike @property za getter(),
odnosno @naziv_svojstva.setter za setter(). I getter() i setter() imaju isto ime koje treba podsjećati na naziv
svojstva
PRIMJER. Zadana je klasa Krug (s početka poglavlja).
a) Promijenimo ju tako da atribut R bude privatan, te dodajmo još jednu privatnu metodu za računanje poluopsega kružnice.
b) Pomoću gettera i settera omogućimo pristup privatnom atributu R.
b)
KLASA date
Klasa se nalazi u modulu datetime
Naziv metode opis
date(godina, mjesec, dan) Konstruktor klase
year Svojstvo koje predstavlja godinu za dani objekt tipa datum
Kreiraj klasu Datum koja će imati sve što ima i klasa date, ali će imati još i metode za računanje razlike (u
danima) između dva datuma te računanje datuma koji će biti n dana nakon danog datuma. Osim toga, promijeni
prikaz datuma na način da se datum ispisuje u obliku stringa dd.mm.yyyy.
ZADATAK. KLASA DATUM