JAVA JAVA JAVA JAVA. Objektno orijentirano programiranje. Kreirali inženjeri tvrtke Sun Microsystems Prva verzija 1995. godine.

Similar documents
Postojeći Mail Account u Outlook Expressu (podešavanje promjena):

1. Kako početi programirati u JAVA jeziku

Uputstva za HTC. Sadržaj : 1. HTC HD HTC Snap HTC Smart HTC Legend HTC Desire HTC Magic 10

The Linux Small Business Server

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1

Postupak konfiguracije ADSL modema ZTE u Routed PPPoE modu Detaljni opis konfiguracije

Java CPD (I) Frans Coenen Department of Computer Science

1001ICT Introduction To Programming Lecture Notes

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

CSE 452: Programming Languages. Acknowledgements. Contents. Java and its Evolution

MOBILNA TRANSFORMATORSKA STANICA. 132 kv, 25 MVA

Uputstvo za povezivanje na IPv6 mrežu

Mala škola programiranja C# (1)

CS 209 Programming in Java #1

Podešavanje klijenata

Contents. Java - An Introduction. Java Milestones. Java and its Evolution

LAB 1. Familiarization of Rational Rose Environment And UML for small Java Application Development

AIESEC stručne prakse. Stručne prakse IT

Slika 2. Other. Hardware

C# and Other Languages

Key words , etiquette, guidelines, effective writing, recipient

Introduction to programming

Reading and Understanding Java s API Documentation

Ako je Local Area Connection u stanju Disabled, kao na slici, desnim tasterom miša kliknemo na ikonicu i odaberemo lijevim tasterom opciju Enable.

Metric ERP/CRM software

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program

Chapter 1 Java Program Design and Development

Malware programi CCERT-PUBDOC

Java Programming. Binnur Kurt Istanbul Technical University Computer Engineering Department. Java Programming. Version 0.0.

2 Introduction to Java. Introduction to Programming 1 1

LESSON NINETEEN MARINE INSURANCE

Java applets. SwIG Jing He

QUALITY MANAGEMENT OF HOTEL INFORMATION SYSTEM UPRAVLJANJE KVALITETOM HOTELSKOG INFORMACIJSKOG SUSTAVA

Closed-loop supply chain coordination based on recyclers' competition model

Chapter 1. Introduction to Computers, Programs, and Java

Lean Product Lifecycle Management Approach

CIVIL ENGINEERING PROJECTS REALIZATION MANAGEMENT UDC 725.4(045)=20. Slobodan Mirković

Softverska aplikacija za merenje stope prinosa na kapital sukcesivnim vrednovanjem preduzeća

3300 IP komunikacijska platforma

LAB4 Making Classes and Objects

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. Oct 2003 Presented to Gordon College CS 311

Java Crash Course Part I

Java Software Development Kit (JDK 5.0 Update 14) Installation Step by Step Instructions

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

The Java Virtual Machine (JVM) Pat Morin COMP 3002

Chapter 1 Fundamentals of Java Programming

ELEKTROTEHNIKI FAKULTET SVEUILIŠTA JOSIPA JURJA STROSSMAYERA U OSIJEKU

Installing Java. Table of contents

Appendix A Using the Java Compiler

Introduction to Java

Leisure-Time Activities Its Program and Importance in the Institutionalized Protection of Old People

9/11/15. What is Programming? CSCI 209: Software Development. Discussion: What Is Good Software? Characteristics of Good Software?

How to Install Java onto your system

Building Java Programs

E-LEARNING IN BUSINESS

Windows XP Service Pack 2 sigurnosna zakrpa CCERT-PUBDOC

An Overview of Java. overview-1

Under the Hood: The Java Virtual Machine. Lecture 24 CS 2110 Fall 2011

How to use the Eclipse IDE for Java Application Development

PRIMENA NFC TEHNOLOGIJE U SISTEMIMA PLAĆANJA

Cilj ovog rada je ukazati na moguće opasnosti koje postoje, prikazati mogućnosti zaštite osobnih podataka i drugih podataka u elektroničkom obliku.

Building Java Programs

Online Media Planning. Ivan Dimitrijević

Besplatni alati za trouble ticketing

Bežično (Samo odabrani modeli) Korisnički vodič

Konzepte objektorientierter Programmierung

How To Write A Program In Java (Programming) On A Microsoft Macbook Or Ipad (For Pc) Or Ipa (For Mac) (For Microsoft) (Programmer) (Or Mac) Or Macbook (For

Install Java Development Kit (JDK) 1.8

C++ programiranje za apsolutne početnike. programiranje. za apsolutne početnike PRO - MIL

IMPLEMENTATION OF FACEBOOK IN FOREIGN LANGUAGE TEACHING IN HIGHER EDUCATION IMPLEMENTACIJA FACEBOOKA U NASTAVI STRANIH JEZIKA U VISOKOM OBRAZOVANJU

1) Which of the following is a constant, according to Java naming conventions? a. PI b. Test c. x d. radius

Software. Programming Language. Software. Instructor Özgür ZEYDAN. Bülent Ecevit University Department of Environmental Engineering

Java Programming Fundamentals

QR kodovi i njihova zlouporaba NCERT- PUBDOC

Upoznajte se sa Microsoft Outlook-om

PROBABILISTIC RISK ASSESSMENT OF ISLAND OPERATION OF GRID CONNECTED MULTI-INVERTER POWER PLANT

Comment on the Critique of the paper ERP and Management Accounting Changes of Industrial Enterprises in Serbia *

More on Objects and Classes

Java is commonly used for deploying applications across a network. Compiled Java code

ORGANIZATIONAL COMMUNICATION AND CONFLICT MANAGEMENT

Data Structures Lecture 1

Integracija SaaS servisa u Cloud Telekoma Srbija

Basic Java Constructs and Data Types Nuts and Bolts. Looking into Specific Differences and Enhancements in Java compared to C

Java Programming Unit 1. Your first Java Program Eclipse IDE

CS 106 Introduction to Computer Science I

VULNERABILITY OF STRUCTURES FROM THE ASPECT OF SEISMIC SAFETY AND RISK IN ARCHITECTONIC DESIGNING UDC =111

BUSINESS RESULTS CHANGE UNDER EFFECTS OF FARM SIZE AND DEGREE OF PRODUCTION SPECIALIZATION. Lj. Bastajić 1

WA2099 Introduction to Java using RAD 8.0 EVALUATION ONLY. Student Labs. Web Age Solutions Inc.

First Java Programs. V. Paúl Pauca. CSC 111D Fall, Department of Computer Science Wake Forest University. Introduction to Computer Science

CSC230 Getting Starting in C. Tyler Bletsch

Naziv tvrtke Business name: Pravni oblik Legal form:.. Matični broj Tax number:.. Sjedište Address:

VLSM and Subnetting ( raspodjela IP adresa u LAN mreži )

Hello World RESTful web service tutorial

CS170 Lab 11 Abstract Data Types & Objects

evisitor informacijski sustav za prijavu i odjavu turista Korisnička dokumentacija Obveznik

Introduction to Object-Oriented Programming

Transcription:

JAVA Kreirali inženjeri tvrtke Sun Microsystems Prva verzija 1995. godine 1 2 JAVA JAVA Osnovne značajke jezika: objektno orijetiran neovisan o hardveru i softveru Kompajlirani Java kôd može se izvršavati na svakoj platformi (hardver + operacijski sustav) na kojoj je instalirana Java, npr. kôd kompajliran pod Windowsima može se izvršavati pod Linuxom i obratno uz jezik dolaze opsežne biblioteke (libraries) (*.java) omogućuju, između ostalog, jednostavno mrežno programiranje te programiranje grafičkog sučelja. Snaga jezika je upravo u tim bibliotekama koje programeru daju visoku produktivnost. omogućuje jednostavno korištenje višenitnosti operacijskog sustava siguran od vanjskih uplitanja 3 Primjena jezika: jezik opće namjene najznačajnija primjena programiranje za internet neovisnost o platformi omogućuje kreiranje izvršnog kôda na jednom računalu, a samo izvršavanje na drugom računalu 4 JAVA Vrste programa u programskom jeziku Java: aplikacija program koji se izvršava na vašem računalu, pod njegovim operacijskim sustavom aplet program namijenjen distribuciji preko Interneta i izvršavanju u web preglednicima (web browsers), npr. Internet Exploreru, Mozilla Firefoxu Objektno orijentirano programiranje 5 6

Objektno orijentirano programiranje = postupak izrade programa upotrebom skupa objekata koji međusobno razmjenjuju poruke Objekti Objekti u stvarnom svijetu (bicikl, automobil, mobitel, računalo, pas, stablo,...) svaki objekt ima dvije karakteristike: stanje (state) (bicikl: trenutna brzina, trenutni broj okretaja pedala, broj brzine) ponašanje (behavior) (bicikl: ubrzavanje, usporavanje, kočenje, promjena brzine, skretanje) 7 8 Objekti Objekti u softverskom okruženju = softverski entiteti sastavljeni od varijabli (promjenljivih, atributa) i pripadnih metoda modeli stvarnih (bicikl, računalo,...) ili apstraktnih objekata (događaj, greška,...) varijable (variables) stanje objekta metode (methods) ponašanje objekta (funkcije karakteristične za taj objekt) Objekti Objekti u softverskom okruženju mogu se zamisliti kao stanice, s jezgrom (nukleusom) od varijabli i vanjskim slojem od metoda koji formira sučelje (interface) između varijabli objekta i okoline 9 10 Enkapsulacija varijabli objekta (Encapsulation) Metode okružuju i skrivaju nukleus unutar objekta tako da se ne vidi i ne može direktno pristupiti izvana, tj. iz ostalih objekata Pakiranje varijabli objekta unutar zaštitnog sloja metoda naziva se enkapsulacija Enkapsulacija varijabli objekta Prednosti enkapsulacije za razvoj softvera: Modularnost (modularity) Objekt se može pisati i održavati neovisno o izvornom kodu za druge objekte Skrivanje informacija (information hiding) Objekti posjeduju javno sučelje za komunikaciju s drugim objektima. Međutim, objekt može sadržavati varijable i metode koje služe za njegov interni rad i nisu dostupne korisniku objekta. Stoga, ako javno sučelje nije mijenjano, varijable i metode mogu se mijenjati u svakom trenutku bez utjecanja na druge objekte ovisne o njemu 11 12

Poruke (messages) = mehanizam komunikacije (interakcije) objekata objekt A šalje poruku objektu B ako želi da objekt B izvrši jednu od svojih metoda Poruke Sastavne komponente poruke: objekt kojemu je poruka adresirana (vaš bicikl) naziv metode koju treba izvesti (changegears) parametri proslijeđeni metodi (lower gear) 13 14 Poruke Klase (class) Prosljeđivanjem poruka mogu se obaviti skoro sve vrste interakcija između objekata ponašanje objekata definirano je njihovim metodama Objekti ne moraju biti unutar istog procesa niti na istom računalu da bi slali poruke jedni drugima = predložak (skica) ili prototip koji definira varijable i metode zajedničke za objekte određenog tipa vaš bicikl je instanca od klase objekata bicikl Bicikli imaju stanja (trenutna brzina, trenutni broj okretaja, dva kotača) i ponašanja (promjena brzine, kočenje) koja su zajednička Međutim, svaki objekt bicikl ima jedinstveni skup stanja 15 16 Klasa i instance klase Varijable klase i metode klase (class variables & class methods) Klasa varijable instance Varijabla klase sadržava informaciju koja se dijeli između svih instanci klase Metoda klase je metoda koju je moguće pozvati bez postojanja objekta, poziv iz klase 2 instance 17 18

Nasljeđivanje (inheritance) = mehanizam pomoću kojega je na temelju postojećih klasa moguće definirati nove i proširene klase Subklase Superklasa Nasljeđivanje Svaka subklasa nasljeđuje stanja (deklarirane varijable) od superklase Mountains bikes, trkaći bicikli i tandemi imaju svi sljedeća stanja: broj okretaja pedala, brzinu kretanja i sl. Svaka klasa nasljeđuje metode od superklase Mountains bikes, trkaći bicikli i tandemi imaju jednako ponašanje: kočenje, promjena broja okretaja pedala i dr. Subklase mogu imati uz nasljeđene i nove varijable i metode Tandem bicikli imaju 2 sjedala i 2 volana; mountain bikes imaju dodatni skup brzina Subklase mogu i premostiti naslijeđene metode (override inherited methods) i realizirati specifične implementacije Npr. Ako posjedujete mountain bike s dodatnim skupom brzina možete premostiti change gears metodu tako da može upravljati dodatnim stanjima 19 20 Nasljeđivanje Sučelja (interface) Subklase osiguravaju specijalizirane funkcije na osnovi zajedničkih elemenata koji su realizirani u superklasi. Nasljeđivanjem se može ponovno koristiti kôd iz superklase. = skupovi definicija metoda i konstanti (bez implementacije!) svako sučelje je protokol ( ugovor ) komunikacije objekata koji nisu u strogo definiranom odnosu implementacijom svih metoda iz nekog sučelja klasa implementira to sučelje 21 22 Programeri pišu programe uglavnom u višem programskom jeziku, a računala izvršavaju instrukcije strojnog jezika Što računalo radi s programom napisanim u višem programskom jeziku? 23 24

compiling Tradicionalni jezici: Najčešće se prevode pomoću kompajlera, prevoditelja (compiler) (npr. C, C++, Fortran) = zasebni program koji prevodi (kompajlira) program iz višeg programskog jezika direktno u strojni jezik specifičan za dani operacijski sustav i hardver. OS šalje te strojne instrukcije na izvršavanje u CPU. Za izvršavanje na drugom računalu, potrebno ga je ponovno kompajlirati uporabom drugačijeg kompajlera, u odgovarajući strojni jezik Tradicionalni jezici: Umjesto uporabe kompajlera, koji odjednom prevodi čitav program, moguće je koristiti interpreter, prevoditelj (interpreter) koji prevodi instrukciju po instrukciju za vrijeme njihova izvršavanja Izvršavanje kompajliranih programa zapravo je brže od izvršavanja interpretiranih programa 25 26 izvršavanje Java programa Programi se u Javi kreiraju u nekom editoru (npr. Notepad, ConTEX) i spremaju s ekstenzijom java, npr. Prog.java Programi u Javi prevode se u strojni jezik (kompajliraju), ali u strojni jezik računala koje zapravo ne postoji, a naziva se Java Virtual Machine (JVM) Strojni jezik za JVM naziva se Java bytecode Kompajlirani program ima ekstenziju class, npr. Prog.class izvršavanje Java programa JVM ne postoji stvarno potrebna njegova simulacija. Simuliranje se obavlja pomoću interpretera (java.exe) koji čita bytecode i osigurava da instrukcije u njemu bude izvršene Java interpreter potreban za svaku vrstu platforme Java bytecode može biti izvršen na bilo kojem računalu na kojemu je instaliran Java interpreter 27 28 izvršavanje Java programa Usporedba prevođenja i izvršavanja Java programa i tradicionalnih programa Java program: Tradicionalni program: Java code code compiling interpreting Java Compiler Java Bytecode SPARC Power PC Pentium Pentium compiler Power compiler SPARC compiler Pentium Power PC SPARC 29 30

Hello world aplikacija! Hello world! * The HelloWorldApp class implements an application that * displays "Hello World!" to the standard output. 31 32 Hello world aplikacija! Hello world aplikacija HelloWorldApp.java * The HelloWorldApp class implements an application that * displays "Hello World!" to the standard output. public class HelloWorldApp{ public static void main(string argv[]){ System.out.println ( Hello World! ); javac HelloWorldApp.java HelloWorldApp.class javac 0xCAFEBABE... java HelloWorldApp Svi Java programi sastoje se od jedne ili više definicija klasa HelloWorldApp je primarna ili kontrolna klasa (primary or controlling class) Samostalne aplikacije zahtijevaju metodu main u kontrolnoj klasi Aplet ne zahtijeva main metodu 33 34 Definiranje klase Podebljana linija počinje blok definicije klase u Javi * The HelloWorldApp class implements an application that * displays "Hello World!" to the standard output. * The HelloWorldApp class implements an application that * displays "Hello World!" to the standard output. main metoda Kontrolna klasa definicija klase (kontrolna klasa) 35 36

Main metoda Mora biti static -> metoda klase (class method) Metode klase možemo pozivati bez instanciranja objekta klase Kada pokrenemo Java aplikaciju Java interpreter pronalazi i poziva main metodu u klasi čiji je naziv dan u liniji naredbe Komentari Tri vrste komentara: /* text Prevoditelj ignorira sve od /* do. documentation Ovo označava komentar za dokumentaciju. Prevodilac ignorira tu vrstu komentara. JDK javadoc alat koristi te komentare za automatsko kreiranje dokumentacije. // text Prevodilac ignorira sve od // do kraja tekuće linije 37 38 Oznake metode Oznake metode visibility(public,private,...) type(static, non-static) Oznake metode je skup informacija o metodi: naziv metode tip vidljivost argumenti tip return podatka public static void main(string[] args) return type method s name arguments 39 40 System i PrintStream klase Ova naredba poziva println() metodu klase PrintStream koja je referirana (pokazana) preko varijable out koja je varijabla klase System klase. 41