Seminar 4 - Uvod u objektno orijentirano programiranje - Pmf

57 downloads 1263 Views 362KB Size Report
Treca generacija - Pascal, C, Fortran, Lisp, Algol... ˇCetvrta generacija - SQL, METAFONT, PostScript,. Mathematica... –> to su jezici specijalizirani za odre ...
Seminar 4 Ivan Sakaˇc Uvod

Seminar 4 Uvod u objektno orijentirano programiranje

Ivan Sakaˇc PMF-Matematiˇcki odjel Sveuˇcilište u Zagrebu

Zagreb, svibanj 2008.

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Seminar 4 Ivan Sakaˇc Uvod

1

Uvod

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma

2

Postoji li potreba za neˇcim boljim od proceduralnog?

3

Objektna paradigma

4

Primjerak koda

Primjerak koda

Evolucija programskih jezika

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog?

Prva generacija - strojni jezik

Objektna paradigma Primjerak koda

Evolucija programskih jezika

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog?

Prva generacija - strojni jezik Druga generacija - assembler

Objektna paradigma Primjerak koda

Evolucija programskih jezika

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog?

Prva generacija - strojni jezik Druga generacija - assembler Tre´ca generacija - Pascal, C, Fortran, Lisp, Algol...

Objektna paradigma Primjerak koda

Evolucija programskih jezika

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog?

Prva generacija - strojni jezik Druga generacija - assembler Tre´ca generacija - Pascal, C, Fortran, Lisp, Algol... ˇ Cetvrta generacija - SQL, METAFONT, PostScript, Mathematica...

Objektna paradigma Primjerak koda

Evolucija programskih jezika

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog?

Prva generacija - strojni jezik Druga generacija - assembler Tre´ca generacija - Pascal, C, Fortran, Lisp, Algol... ˇ Cetvrta generacija - SQL, METAFONT, PostScript, Mathematica... –> to su jezici specijalizirani za odredenu vrstu ¯ problema

Objektna paradigma Primjerak koda

Proceduralne paradigme

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma

Proceduralno programiranje

Primjerak koda

Proceduralne paradigme

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma

Proceduralno programiranje želja za srukturiranijim programima

Primjerak koda

Proceduralne paradigme

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma

Proceduralno programiranje želja za srukturiranijim programima skrivanje implementacije od korisnika

Primjerak koda

Proceduralne paradigme

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma

Proceduralno programiranje želja za srukturiranijim programima skrivanje implementacije od korisnika

Objektno orijentirano programiranje

Primjerak koda

Proceduralne paradigme

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma

Proceduralno programiranje želja za srukturiranijim programima skrivanje implementacije od korisnika

Objektno orijentirano programiranje Komponentno programiranje

Primjerak koda

Strukturiranje I

Seminar 4 Ivan Sakaˇc

Podjela koda u manje cjeline

Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Strukturiranje I

Seminar 4 Ivan Sakaˇc

Podjela koda u manje cjeline

Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Strukturiranje I

Seminar 4 Ivan Sakaˇc

Podjela koda u manje cjeline

Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Primjeri

Strukturiranje I

Seminar 4 Ivan Sakaˇc

Podjela koda u manje cjeline

Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Primjeri write once, use everywhere

Strukturiranje I

Seminar 4 Ivan Sakaˇc

Podjela koda u manje cjeline

Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Primjeri write once, use everywhere Problem imenskog prostora, organizacija velikog broja funkcija u smislene cjeline

Strukturiranje II

Seminar 4 Ivan Sakaˇc

Podjela koda u module

Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Strukturiranje II

Seminar 4 Ivan Sakaˇc

Podjela koda u module

Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Strukturiranje II

Seminar 4 Ivan Sakaˇc

Podjela koda u module

Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Modul kao dobro definirana i zatvorena jednica?

Strukturiranje II

Seminar 4 Ivan Sakaˇc

Podjela koda u module

Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Modul kao dobro definirana i zatvorena jednica? Programski jezici imaju vrlo nejasnu definiciju modula (ˇcesto implementacijski detalj okruženja ne dio jezika)

Strukturiranje II

Seminar 4 Ivan Sakaˇc

Podjela koda u module

Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Modul kao dobro definirana i zatvorena jednica? Programski jezici imaju vrlo nejasnu definiciju modula (ˇcesto implementacijski detalj okruženja ne dio jezika) Osnovni problem?

Strukturiranje III

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Strukturiranje III

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

nema logiˇcke cjeline

Strukturiranje III

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

nema logiˇcke cjeline sukob imena funkcija

Strukturiranje III

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

nema logiˇcke cjeline sukob imena funkcija programeri cˇ esto moraju poznavati unutrašnju strukturu ATP-a

Strukturiranje III

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

nema logiˇcke cjeline sukob imena funkcija programeri cˇ esto moraju poznavati unutrašnju strukturu ATP-a slabo skrivanje imlementacije

Rješenje problema

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Rješenje problema

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Podatkovni i funkcijski cˇ lanovi cˇ ine logiˇcku cjelinu

Glavne karakteristike OO jezika

Seminar 4 Ivan Sakaˇc Uvod

Enkapsulacija

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Glavne karakteristike OO jezika

Seminar 4 Ivan Sakaˇc Uvod

Enkapsulacija podaci i funkcije cˇ ine jednu logiˇcku cjelinu

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Glavne karakteristike OO jezika

Seminar 4 Ivan Sakaˇc Uvod

Enkapsulacija podaci i funkcije cˇ ine jednu logiˇcku cjelinu pr. Vektorski prostor kao uredena trojka ¯

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Glavne karakteristike OO jezika

Seminar 4 Ivan Sakaˇc Uvod

Enkapsulacija podaci i funkcije cˇ ine jednu logiˇcku cjelinu pr. Vektorski prostor kao uredena trojka ¯

skrivanje podataka

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Glavne karakteristike OO jezika

Seminar 4 Ivan Sakaˇc Uvod

Enkapsulacija podaci i funkcije cˇ ine jednu logiˇcku cjelinu pr. Vektorski prostor kao uredena trojka ¯

skrivanje podataka objekt sa vanjskim svjetom komuninicira putem javnog suˇcelja, integritet objekta ne smije do´ci u opasnost

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Glavne karakteristike OO jezika

Seminar 4 Ivan Sakaˇc Uvod

Enkapsulacija podaci i funkcije cˇ ine jednu logiˇcku cjelinu pr. Vektorski prostor kao uredena trojka ¯

skrivanje podataka objekt sa vanjskim svjetom komuninicira putem javnog suˇcelja, integritet objekta ne smije do´ci u opasnost pr. ...Mnogokut...

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Glavne karakteristike OO jezika

Seminar 4 Ivan Sakaˇc Uvod

Enkapsulacija podaci i funkcije cˇ ine jednu logiˇcku cjelinu pr. Vektorski prostor kao uredena trojka ¯

skrivanje podataka objekt sa vanjskim svjetom komuninicira putem javnog suˇcelja, integritet objekta ne smije do´ci u opasnost pr. ...Mnogokut...

Nasljedivanje ¯

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Glavne karakteristike OO jezika

Seminar 4 Ivan Sakaˇc Uvod

Enkapsulacija podaci i funkcije cˇ ine jednu logiˇcku cjelinu pr. Vektorski prostor kao uredena trojka ¯

skrivanje podataka objekt sa vanjskim svjetom komuninicira putem javnog suˇcelja, integritet objekta ne smije do´ci u opasnost pr. ...Mnogokut...

Nasljedivanje ¯ trokut kao specijalizacija mnogokuta

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Glavne karakteristike OO jezika

Seminar 4 Ivan Sakaˇc Uvod

Enkapsulacija podaci i funkcije cˇ ine jednu logiˇcku cjelinu pr. Vektorski prostor kao uredena trojka ¯

skrivanje podataka objekt sa vanjskim svjetom komuninicira putem javnog suˇcelja, integritet objekta ne smije do´ci u opasnost pr. ...Mnogokut...

Nasljedivanje ¯ trokut kao specijalizacija mnogokuta ima sve što i mnogokut, ali i nešto više...

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Glavne karakteristike OO jezika

Seminar 4 Ivan Sakaˇc Uvod

Enkapsulacija podaci i funkcije cˇ ine jednu logiˇcku cjelinu pr. Vektorski prostor kao uredena trojka ¯

skrivanje podataka objekt sa vanjskim svjetom komuninicira putem javnog suˇcelja, integritet objekta ne smije do´ci u opasnost pr. ...Mnogokut...

Nasljedivanje ¯ trokut kao specijalizacija mnogokuta ima sve što i mnogokut, ali i nešto više...

Polimorfizam

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

Glavne karakteristike OO jezika

Seminar 4 Ivan Sakaˇc Uvod

Enkapsulacija podaci i funkcije cˇ ine jednu logiˇcku cjelinu pr. Vektorski prostor kao uredena trojka ¯

skrivanje podataka objekt sa vanjskim svjetom komuninicira putem javnog suˇcelja, integritet objekta ne smije do´ci u opasnost pr. ...Mnogokut...

Nasljedivanje ¯ trokut kao specijalizacija mnogokuta ima sve što i mnogokut, ali i nešto više...

Polimorfizam pr. niz mnogokuta, od kojih su neki trokuti, cˇ etverokuti...svaki se crta na svoj naˇcin

Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

klasa / objekt

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

klasa - nacrt

klasa / objekt

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

klasa - nacrt objekt - realizacija klase (instantacijom u memoriji)

klasa / objekt

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

klasa - nacrt objekt - realizacija klase (instantacijom u memoriji) ostali pojmovi...

klasa / objekt

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda

klasa - nacrt objekt - realizacija klase (instantacijom u memoriji) ostali pojmovi... Javina portabilnost koda, virtual machine...

Seminar 4 Ivan Sakaˇc Uvod Postoji li potreba za neˇcim boljim od proceduralnog? Objektna paradigma Primjerak koda