January 6, 2017 | Author: Omerovic Osman | Category: N/A
500
978-86-7912-189-9
'
! # $ % ( % #
'
) + $ # , )
* '' " &'
- $ ,$ ,$
!
" & "
' ' '
"
./ $ # $
#
% ! & ! %! ' ' ' ( ) ! ' ) " & this
# # #*
# * *
+ + for-each , ! - .&
! / 0 ! ) " & super % ! Object 1
#
"#$ %&
* ( * 61&
* . 1!
# #
!
# # # # #
! " $
+ 2! !
3 4 ! ( "5 !
# +
#
# % % %
% %
! " $ " &" '"( ) " ! ) " ( * ! * '"( " * *, - '"( " !, " ( * '"( " * '"( " !, " ( * ! . / *, " , " - * * * 0 " main() ! * ) " , * 1 &" * 1 1 2 3 1! " 4
# %
%% % %
% % %
%
%% %# % + +% + %
Graphics !
"
! "
# $ % & ' ( & "
)
* +
" ("
, ,-- ) .
/
) #
0 " iste širine
!
[email protected]
1
! " # $
%
& ' !
! (
# ! & &
) % *
!
"
# $$ % & # #
'
((
"
)
((
*
! #
+
"
# " #
#
" #
! "
# $ # % % ! &' (!
) ! %
# &' ! %
* % ! " % " % !
!
+ , % " ! % -
* % "
. ! % ! / % .
!
! ! " # !
$
!
! $ ! ! #
%
&
' (
$
) ' * + # *
,
$ # !
! " # $ $ % % $ & ' ( " ")) "* ' # $ % + % % , ' & -- $ '
% . $ % % .
! " # $
% & " ' ! $ !(
' ! )
&
& * * ( % *
* *
+ * * *
* ,
-.
# *
/ -. * * * ) & *
0 *
!"#"
$
"
%
" & " '
" (
" &
" (
" )
" * " &
" )
" %
"
! " # ! $ % # % ! & ' ( )* #+ , -
% .
' ! ! % , - ' % / 01 # % ! % & % 22 0 / !
// Prvi Java program import java.util.*; public class Zdravo
{ public static void main(String[] args) { Scanner tastatura = new Scanner(System.in); System.out.print("Kako se zovete: "); String ime = tastatura.nextLine(); System.out.print("Koliko imate godina: "); int god = tastatura.nextInt(); System.out.println("Zdravo " + ime + "!"); System.out.println(god + " su najlepše godine."); } }
! " # $ %& ' # Zdravo.java ' ( ! ' Zdravo" ' # ! ' class " ! &
' " )( ! " java ' #
* # ! " # & javac & java + ! & " & ',
Zdravo.java Zdravo.java Zdravo.java
javac Zdravo.java
Zdravo.class
! " # $
java Zdravo
% " & ' " ! " '
Zdravo.java " ( ' ' "
) !* #! * $ + , & & - , ( - ) . / -0* -1 2 #- 1' 2$ ) !* 23 . /
http://java.sun.com/javase/downloads/index.jsp http://download.netbeans.org/netbeans/6.0/final/
! "#$% & '
( & ' )
* +,- ) * .$ / $ -
( & '
( ) $
!
" !
#$ %
& ! ' " ( ! ( ) ( $
) ) * + * ' , ( - #$ )
! "
# $ " # % " & # ! ' $ ! " ( #) * + , ./
- '
0
! " # $%& PrviProjekat ' ( ) * ) + " # JavaProjekti% * , - . - . Zdravo /+ 0 1 (" # 2%
Zdravo.java
! "
# $
%
Zdravo.java %
% &&
Zdravo.java ' ( % ) * + , - % !
* ! %
!
" #
$ %&' "(()""*&
!"
# $ % %
% &
' ( ) * ' +
' Zdravo.class ' $ , '
$ -
% ' ...
$
' / ( / ) * ' 0 '
&
-
' ..1 2 '3
' / ( /
) * ' * $ $ % 4 &
$ 5 $
www.netbeans.org
2
! " ## $% $
& '$ ( )* & $ + , - $ . - ' /+ ! & ( ( $ ' 01 + 2 - 3 $ ( 4 5 ' 5+
! " ! # $ " $ % " $ " $ % $ &
" # $ ' ( $ " &
$ $ & " $
$! $ $ " $ ! % )$ *
" $ " !
" "" &
" " & " $ + "$ & $ $ ! $ $ $
$ " , $ + " $ " java.sun.com
" & " & " ! $ $ -
$ # !
! " " " " # ! $ ! " ! % " ! " & $
" & ' " & ( " " " " ) " " " * $ + ' " " "
" )
" & * ' " $
! " , % " " " - "
! " ( " . ! * "
!
" # $ % & ' # ( ) $ # % ) ' $ # % $ % ' $ % *+
$%
$ '%
' & Zgrada brojSpratova boja adresa okreˇci dozidaj ( Zgrada **
brojSpratova boja adresa
okreˇ ci dozidaj
Zgrada ! " #
Zgrada ! " class Zgrada { int brojSpratova; String boja; String adresa; . . . public void okreˇ ci() { ... };
public void dozidaj() { ... }; }
Zgrada ! " ½ " ¾ " ¿ brojSpratova
¿
brojSpratova
½¼
boja
boja
adresa
adresa
brojSpratova
boja adresa
okreˇ ci
okreˇ ci
okreˇ ci
dozidaj
dozidaj
dozidaj
¾
# Zgrada
$ ! % & #
'
# ( $ ) *) ) * Zgrada ( + * )
StambenaZgrada Zgrada ' ,
Zgrada
StambenaZgrada
Soliter
Ku´ ca
PoslovnaZgrada
Vikendica
class StambenaZgrada extends Zgrada { boolean lift; . . . public void popraviLift() { ... }; }
StambenaZgrada extends StambenaZgrada StambenaZgrada ! Zgrada " StambenaZgrada
# $% # & & &
½ brojSpratova
¾
brojSpratova
boja
adresa
lift
boja adresa
lift
okreˇ ci
okreˇ ci
dozidaj
dozidaj
popraviLift
popraviLift
StambenaZgrada
!"
" ! # " " # $ % java.lang
java.util
java.io
java.net
java.awt
java.math
&'' ! # ! # ! # ( ) * ( "
! # " ! # ! ! ! ! (
$ " & + ! # " ,- ! %
! " # Date java.util java.util.Date $" % & ' % & ( ) * %
import MojaKlasa Date class MojaKlasa { ... java.util.Date d = new java.util.Date(); ... }
import java.util.Date; class MojaKlasa { ... Date d = new Date(); ... }
! " # import $ # * ! % &" import java.util.*; class MojaKlasa { ... Date d = new Date(); ... }
' ( $ import ' )* +
java.lang ! import java.lang.*
" # $% ! & ! package $% ' ! ! import MojaKlasa mojpaket $% ( package mojpaket; import java.util.*; class MojaKlasa { ... }
) *
! + ) , * MojaKlasa.java MojaKlasa mojpaket , % + ) % MojaKlasa * mojpaket , $
- , .
package import ! ! " .java # ! $ $ % & Restoran
Gost
Kelner
Jelovnik
Raˇ cun
& Restoran.java
Gost.java
Jelovnik.java
Raˇ cun.java
Kelner.java
' () class Restoran
class Gost
class Kelner
class Jelovnik
class Raˇ cun
{
{
{
{
{
... {
Restoran.java
... {
... {
Gost.java
Kelner.java
... {
Jelovnik.java
... {
Raˇ cun.java
$ * + ! ! % ! ! ,
javac Restoran.java javac Gost.java javac Kelner.java javac Jelovnik.java javac Raˇ cun.java
Restoran.class
Gost.class
Jelovnik.class
Raˇ cun.class
Kelner.class
!
" " # Restoran java Restoran
"
Restoran ! $ .java
.class % %
$ % % &
"
'
" ( )
// Prvi Java program import java.util.*; public class Zdravo { public static void main(String[] args) { Scanner tastatura = new Scanner(System.in); System.out.print("Kako se zovete: "); String ime = tastatura.nextLine(); System.out.print("Koliko imate godina: "); int god = tastatura.nextInt(); System.out.println("Zdravo " + ime + "!"); System.out.println(god + " su najlepše godine."); } }
//
! "
! ! ! ! ! # import java.util $ Scanner Scanner ! % System java.lang import System ! ! &' ! ! & ' ( import )
class { } Zdravo ! class public " # $ $ main() % public static void main(String[] args) { // Naredbe ... }
& main() ' ( ! main() $ main() ) Java Zdravo
& " Zdravo main() * main() " " * + # " ( ( $ , & main() Zdravo "
- &
$
System.out.print( ... ) System.out.println( ... )
println ! System.out.print("Kako se zovete: ")
" Kako se zovete: #
$ System.out.println("Zdravo " + ime + "!")
%
main() Zdravo Scanner tastatura = new Scanner(System.in)
& new' Scanner System.in $ ( ) tastatura Scanner * nextLine() tastatura String ime = tastatura.nextLine()
nextInt() tastatura int god = tastatura.nextInt()
! *
// Prvi Java program import java.util.*; public class Zdravo { public static void main(String[] args) {Scanner tastatura = new Scanner(System.in); System.out.print("Kako se zovete: "); String ime = tastatura.nextLine(); System.out.print ("Koliko imate godina: ");int god=tastatura.nextInt();System.out. println( "Zdravo " + ime + "!"); System.out.println (god + " su najlepše godine.");}}
! " # $ % & ' ( & *
)
&
3
! " ! ! # $ #$ % ! & ' #_$
½ ( " $ ½
)*
tastatura
Zdravo
brojStudenata
N
n
x15
broj_studenata
jedno_VRLO_dugaˇ cko_ime
broj_studenata broj studenata
Zdravo zdravo ZDRAVO zdRaVO
import class public static if else while !
" # $ % #
" tastatura xy bzvz &
& ! ' ( ' ) brojStudenata "
* ! ' " + ( System.out.println ! " ' ! " System.out.println
System println
out
! " #
$%
$ & $ # $ # '$ ( $
% )
"
* byte# short# int# long# float# double# char boolean $ +$ $ #
,
$
$ & byte
$ + $ , $
$ # $ + ,# % & short
$ + $ , $
$ $ + , & int
$ + $ , $
$ $ +
, & long
$ + $ , $
$ $ + , ) #
$ % $
int float double ! " float # $
!
double # ! % $ double $ char ! # $
A a ! 0 1 * ?
& ' '
%
( char $ ! " ’A’ ’3’ ’*’ ) ! A * 3 * ' * char
+
,
$ - char * &
\
’\n’ ’\t’
’\\’
char ! "
#
$ 107 23.55 -0.5 % & ' ( $ 0.32e4 12.345e-78 ) e4 e-78 '
0.32e4 12.345e-78 *
' ' ' + & double¾ )
float F f 1.2F 1.2f
float
,
* !
6945 -32 byte
short int ' % long L $ 6945L -32L ) & ' ' ! - #
$
#
#
-
045 #
float x = 1.2 ½ ¾ double x float
double float
float x = 1.2f ¾
! " # "
$" % $" & $" " % 0x 0X' " 0x2A 0xFF70
( $" ) $ $ $* % " $ $ ! " % \u )
+ % # " $ ’\uC490’ $* % ,-. / " " " boolean ) $ " % ' % % 0 & $%* true false $ " 0 % " %+ $ $ % " & " " " " * " $ % 1 $% " " 2 " # " $ % " 1 % % " $ * ) !$ " & % ' + - * /
3 " $ " $ ' " $ $ $ 17/5 & " " $ % " $% $
" % # " $ $ $ 17 % 5 " 17/5 4 " " " 1 " " 2 " 5 * " $ & '
' <
' =
' == ' != ! ") $ " " "+ $*
== 17 != 5 ’A’ == ’a’ !"
# ! $ % # & % ! ' ( String String ) % *+( "Kako se zovete: " "Koliko imate godina: "
, ' ' - ! ! # ! " " ! "ovo je string" ½¿ . \n \t \\ . \u \uC490 / 0 \" On reˇ ce: "Zdravo svima!"
( "On reˇ ce: \"Zdravo svima!\"\n"
+ % " "Java" + "programiranje"
"Javaprogramiranje" . #
"Java" + " " + "programiranje" + " je " + "zabavno"
"Java programiranje je zabavno"
!
"
#
#
!
#
#
#
¿
$ #
%&
¿
x
y z
x y z ime = izraz;
ime izraz
! " izraz ime kamatnaStopa = 0.08;
# ime kamatnaStopa izraz 0.08 $ kamatnaStopa % kamatnaStopa &' ( & & kamata = kamatnaStopa * kredit;
) kamatnaStopa * kredit kamata = kamatnaStopa kredit * & * " $ &
kamatnaStopa kredit kamata
x = 1 x Ü
Ü ! x = x + 1 " " x
" = " # $ x = % x " Ü Ü Ü " & % # $ ! ' ( ' )
# $ " & * tip ime;
tip ime = izraz;
tip
ime
izraz
int godina; long n = 0L; float t; double x = 3.45; String imePrezime = "Pera " + "Peri´ c";
godina n t x imePrezime
n x imePrezime = ! "
"
# !
$ !
x double # ! !
" "
"
% & % ! &
int i, j, n=32; boolean ind = false; String ime, srednjeIme, prezime; float a = 3.4f, b, c = 0.1234f; double visina, širina;
'
$ " !
ime srednjeIme prezime ( !
double p;
// iznos kredita (principal)
double k; int m; double r;
// meseˇ cna kamatna stopa // broj meseˇ cnih rata // iznos meseˇ cne rate
main()
!" #
$ % # # & !
# & ''( ! %
) # * "
)#
* # + )# # * , # - .
)# * + /
f
c
! nextInt() "
println() #$ % " " % &
import java.util.*; public class PretvaranjeStepeni { public static void main(String[] args) { int f; // broj stepeni Farenhajta int c; // broj stepeni Celzijusa // Ulaz programa se dobija preko tastature Scanner tastatura = new Scanner(System.in); // Uˇ citavanje stepena Farenhajta od korisnika System.out.print("Koliko stepeni Farenhajta? "); f = tastatura.nextInt(); // Izraˇ cunavanje stepena Celzijusa po formuli c = 5*(f - 32)/9; // Prikazivanje rezultata na ekranu System.out.print(f + " stepeni Farenhajta = "); System.out.println(c + " stepeni Celzijusa"); } }
$ {
% "
'" (
}
{
! " # $ % & # $
'
%
"
(
) *
+ )' * , ) ) & ( " # $
(
-
*
.
/
00) 1
2
!
# *$ )
3
main()
4
static
')
String String !
"Java je kul!" " # $ % & ! String String ' Math (! % ))#* System
+, - System out " System System.out " System.out ' # . print ' System.out.print print out System " println/ System.out.println println out System 01 % print println " (! println
System.out.println()
print println ! "
double kamatnaStopa = 20.0/12; // kamatnaStopa = 1.666 System.out.println("Meseˇ cna kamata: " + kamatnaStopa);
Meseˇ cna kamata: 1.6666666666666667
kamatnaStopa double #$%#& ' " ' ' ! $( printf )
! ' * + ' System.out.printf !
* !' ) ' , System.out.printf - String. / ! ) printf println double kamatnaStopa = 20.0/12; // kamatnaStopa = 1.666 System.out.printf("Meseˇ cna kamata: %5.2f\n", kamatnaStopa);
Meseˇ cna kamata:
1.67
printf % d f s ! % " # %d %8d $ % $ & % int n = 23; System.out.printf("1. broj: %d\n", n); System.out.printf("2. broj: %8d\n", n);
1. broj: 23 2. broj:
23
' $ (
¾¿ " ' % printf " " ( \ ) " " " int n = 23; System.out.printf("Kvadrat broja %d je %8d\n", n, n * n);
Kvadrat broja 23 je
529
%d printf n %8d
n*n printf System.out.printf("Meseˇ cna kamata: %5.2f\n", kamatnaStopa);
kamatnaStopa %5.2f ! % f " # # $ 5.2 # kamatnaStopa % & e $ ¼ ¿¿¿¿¾¿ %8.1e 0.3e23 ' g e ( " s $ & ) %10s # * System exit System.exit " & main + exit System.exit(0) System.exit(-1) ) " " $ ¼ # " " " " # Math , -# . # # $
Math
sqrt x Math.sqrt(x)
! Math.sqrt(x) double System.out.println( Math.sqrt(x) );
" Math.sqrt(x) =
double stranica = Math.sqrt(x);
# Math Math.abs(x)
x Math.sin(x) Math.cos(x) Math.tan(x)
x $% x & Math.exp(x)
x Math.log(x)
x Math.pow(x,y)
x y Math.floor(x) x Math.round(x) x Math.floor(5.76) Math.round(5.76) Math.random() $ & % ' Math.abs(x) Math.round(x) double Math.abs(x) x Math.round(x) long ! Math.random() ( Math # Math.PI
Math.E
double
String
String
String
!
length()
"
String
imePrezime
!
String imePrezime = "Pera Peri´ c"; # $%
imePrezime
"Pera Peri´ c"
length
& #
String imePrezime = "Pera Peri´ c";
'
imePrezime.length()
Peri´ c"
#
s.length()
int s
length (
imePrezime
s
String
"Pera
length
s
String
imePrezime ! " "Pera Peri´ c" # $ imePrezime "Pera Peri´ c" $ String length() String % & #$ $ s1 s2 String' s1.equals(s2) # boolean' true ! #" s1 # s2 false ! #" # s1.equalsIgnoreCase(s2) s1 s2 s1.charAt(n) n char s1 ¼ s1.charAt(0) s1 s1.charAt(1) s1 s1 s1.length()-1 s1.substring(n,m) n m String s1 · ½ ½ ( s1 # s1.indexOf(s2)
s2 s1 ) s2 s1 ½ &# s1.indexOf(ch) ch s1 s1.compareTo(s2) s1 s2 ) s1 s2
¼ ) s1 s2
s1 s2
s1.toUpperCase() s1 ! s1 " s1 "Jaje" s1.toUpperCase() "JAJE" # s1.toLowerCase() s1.trim() s1 ! $ s1 " s1 " to je: " s1.trim() "to je:" % & s1 s1.trim() ' ! ( s1 )
s1.toUpperCase() s1.toLowerCase()
s1 = s1.toUpperCase();
* + , % + " ! System.out.println("Zdravo " + ime + "!");
" println "Zdravo " ime "!" # % & ! " god ¾¿ god + " su najlepše godine."
"23 su najlepše godine." - $ . ¾¿ god . "23" " su najlepše godine."
print
System.out.println("Meseˇ cna rata: " + r);
r double god god + 1 "" + god + 1 "231" + + "23" "23" !
"1" "231" Scanner
" #$ " # $ % " & java.util Scanner # " ' " ( Scanner
Scanner Klasa new # new Klasa(
)
Klasa( ) Klasa $ # )* # + , - . # String
"
String imePrezime = new String( "Pera Peri´ c" );
String "Pera Peri´c" String new imePrezime
! " String imePrezime = "Pera Peri´ c";
# $ new Scanner % " Scanner tastatura = new Scanner( System.in );
& Scanner tastatura $ Scanner System.in '
Scanner ( # ) & * in System out System + Scanner %
' # ) tastatura " tastatura.next() ,
- . String tastatura.nextInt() tastatura.nextDouble() ,
int double
/ #
# tastatura.nextLine() , - .
String
int god = tastatura.nextInt();
god ! Scanner " #
tastatura.hasNext() $
boolean
true % &
tastatura.hasNextInt() tastatura.hasNextDouble() ' $
boolean true % &
int double
tastatura.hasNextLine() $
boolean
true % & Scanner Scanner
(
) ' * + ,
-
Byte Short Integer Long Float Double Character Boolean
Double double double ! " double new Double d = new Double(5.220931);
d # # $ double " doubleValue() Double
double x = d.doubleValue() * 3.14;
% int Integer
char Character &
' ( ) * + *
int Integer
int * Integer !
Integer broj = 23;
* Integer broj = new Integer(23);
* , - !"
d Double * double x = d * 3.14;
double d ! Integer MIN_VALUE MAX_VALUE int "
# Byte Short Long Float Double Character Float Double MIN_VALUE $ ¿ % $ ! Double ! POSITIVE_INFINITY & 1e200 * 1e200 MAX_VALUE ' POSITIVE_INFINITY ( NEGATIVE_INFINITY ! NaN ) $ * ' $ ! % Integer parseInt() int & Integer.parseInt("17") $ int parseInt() $ ( Double parseDouble()
d.doubleValue() double d
double Double.parseDouble("1.548e100") double valueOf() Integer.valueOf("17") Integer Double.valueOf("1.548e100") Double Character char ! " #$ % & ' ( isLetter() isLetterOrDigit() isLowerCase() char
$ ) * + < $ + print ) * * , #! " * 17 0.23 true ’A’( -
# ( *
x + y * z
y * z x * + (x + y) * z x + y z
! " # + - * / ! $byte short int long float double% & # 17.4 + 10 # 10 10.0 17.4 + 10.0 ! ' ( ' &( ) ! ) $ % # int # int* double double ! / ) # # # # 7 / 2 # 3 3.5 + n # int 1 / n # int n 10 1 / n 0 $, 1 / n & 0 n & -% # .
1.0 / n n n 10 10.0 1.0 / 10.0 0.1 ! " n m int # (double) n / m
$ n double m
double % & ' ! $ ( Math.random() ! & ) 6*Math.random() & (int) ! * (int)(6*Math.random()) $ *
& ! # (int)(6*Math.random()) + 1 + ! & int " , (int) ’+’ (char) 97 ’a’ char int char
* % 7 % 2 1 3456 % 100 56
- -x (-1) * x !
"
x -x #
x -x $ "
% +x ! & ' () x % x = x + 1
= x x
* x
=+ , x = x - 1 % x
++ -- "
x++ ++x ) x = x + 1 x-- --x ) x = x - 1
x
!
x++ ++ --
- x++; ++x; * ; + .' x++ ++x x-- --x % y = x++; z = (--x) * (y++); System.out.println(--x - 1);
& ++ -- ) ) y = x++; x
y x ½
x ½¼ y = x++; y ½¼ x x ½½ y = ++x; x ½ x y x ½¼ y = ++x; x y ½½ x y -- ! "
# $ % & true false '
( & % boolean )
! * $ $ ) % + ) * == != < > = # x y $
, x == y true x y false x != y true x y- false x < y true x y false
true x y false
x > y
true x y false
x = y
x y char char ! " # ’a’ < ’z’ true $ ’a’
$ ’z’ ! " % & ' % % ( ) ( ( x y == != * + boolean istiZnak = ((x > 0) == (y > 0));
, % " String ! == != ( ) , == )" String ' String ./+ equals equalsIgnoreCase compareTo
0 % 0
0 * " && # true true ! false && false ,
(x == 0) && (y == 0)
true ¼ x y || true true false || false (x == 0) || (y == 0)
true ¼ x y ! && || " # # $ % $
$& ! # ' (x != 0) && (y/x > 1)
( x ¼ y/x ) ¼ (y/x > 1) ( x ¼ % # (x != 0) false % false * && true true " ! % ! x true x false+ x true ! x false ,
"
logiˇ cki-izraz ? izraz½ : izraz¾
logiˇckog-izraza izraz½ izraz¾ ! " # logiˇ cki-izraz true izraza½ $ false izraza¾ # n = (m % 2 == 0) ? (2 * m) : (m - 1);
n 2 * m m m % 2 == 0 n m - 1 m m % 2 == 0 %
& = = '( = ) ime = izraz
izraza " izraza ime = # y x ¼
( (x = y) == 0 ) ? ( ... ) : ( ... )
x = y y x y x
== ¼
? :
! " # x = y; (x == 0) ? ( ... ) : ( ... )
$ %& ' ime += izraz
ime = ime + izraz
( ' ) x x x n p
-= y; *= y; /= y; %= m; &&= q;
// // // // //
isto isto isto isto isto
što što što što što
i i i i i
x x x n p
= = = = =
x x x n p
- y; * y; / y; % m; (n i m celobrojne promenljive) && q;(p i q logiˇ cke promenljive)
* += ) + + " $ + s += t s = s + t s t
s
t s "Dragan" s += "a"; "Dragana"
! " # ! $ ! % ! & ! ' (! ' ('(! ) ! ) !
+ - ++ -- * / % + -
= == != && || ?: = += -= *= /= %=
* & #
)
x * y / z (x * y) / z x = y = z
x = (y = z) *
#
# +
! " # $ % " ! " & # $ # $ " 68 / 25 68 % 25 ' &
% iznos ! ( ) * + iznos %
n25 n10 n5 n1
import java.util.*; public class Kusur { public static void main(String[] args) { int iznos; // dati iznos za usitnjavanje int n25, n10, n5, n1; // broj novˇ ci´ ca usitnjenog iznosa // Ulaz programa se dobija preko tastature Scanner tastatura = new Scanner(System.in); // Uˇ citavanje novˇ canog iznosa za usitnjavanje System.out.print("Unesite iznos za usitnjavanje: "); iznos = tastatura.nextInt(); // Izraˇ cunavanje brojeva novˇ ci´ ca usitnjenog iznosa n25 = iznos / 25; // broj novˇ ci´ ca vrednosti 25 iznos = iznos % 25; // preostali iznos za usitnjavanje n10 = iznos / 10; // broj novˇ ci´ ca vrednosti 10 iznos = iznos % 10; // preostali iznos za usitnjavanje n5 = iznos / 5; // broj novˇ ci´ ca vrednosti 5 n1 = iznos % 5; // broj novˇ ci´ ca vrednosti 1 // Prikazivanje rezultata na ekranu System.out.print("Minimalni broj novˇ ci´ ca za "); System.out.println("dati iznos je: "); System.out.println(n25 + " novˇ ci´ ca vrednosti 25"); System.out.println(n10 + " novˇ ci´ ca vrednosti 10"); System.out.println(n5 + " novˇ ci´ ca vrednosti 5"); System.out.println(n1 + " novˇ ci´ ca vrednosti 1"); } }
! " # ! $ % &' % ¼ % ½ ¼ ¼ ¼ % ¾ ½ ½ ½ % ½ ½ ½ ( ) ½ ) ¾ ) ¼ ) ! %
( * ) ! + , ) %
$! ) - , . import java.util.*;
public class RataZaKredit { public static void main(String[] args) { // Ulaz programa se dobija preko tastature Scanner stdin = new Scanner(System.in); // Uˇ citavanje kredita, kamate i broja rata System.out.print("Iznos kredita> "); double p = stdin.nextDouble(); System.out.print("Godišnja kamata> "); double k = stdin.nextDouble(); System.out.print("Broj meseˇ cnih rata> "); int m = stdin.nextInt(); // Izraˇ cunavanje meseˇ cne rate double mk = k/12; // meseˇ cna kamata double aNaM = Math.pow(1 + mk, m); double r = (p * aNaM * mk) / (aNaM - 1); // Prikazivanje rezultata na ekranu System.out.println("Meseˇ cna rata: " + r); } }
Math.pow() aNaM
mk
½¾
4
!
! "
#if if-else switch $ #while do-while for $½ %
" # $ % &
&
% ' if while
½
()
!
"
#
"
$#
% " # &
'
{ niz-naredbi } (
{ }¾ %
" #
)$
&
*
main() & " # &
main()
+, '
¾
{ Scanner tastatura = new Scanner(System.in); System.out.print("Kako se zovete: "); String ime = tastatura.nextLine(); System.out.print("Koliko imate godina: "); int god = tastatura.nextInt(); System.out.println("Zdravo " + ime + "!"); System.out.println(god + " su najlepše godine."); }
{ } x y { int z = x = y =
z; x; y; z;
// // // //
pomo´ cna promenljiva vrednost z je stara vrednost x nova vrednost x je stara vrednost y nova vrednost y je stara vrednost x
}
z
! ! "
# ! $ % ! &
! ' " ! "
( $ % "
!
if if-else ! " switch ¿
if if-else # if $ % if ( logiˇ cki-izraz ) naredba
& if logiˇ ckog-izraza ' true naredba if ( false naredba "
if
if ) if ! *+ , false if ' if-else # if-else % if ( logiˇ cki-izraz ) naredba½ else naredba¾ ¿
logiˇ cki-izraz
true
false naredba
if
if-else if
logiˇ ckog-izraza false
naredba¾ naredba½
logiˇ ckog-izraza true naredba½
naredba¾ if-else
if-else
logiˇ cki-izraz
true
false
naredba¾
naredba½
if-else
if-else
if-else
if if ( n % 2 == 0 ) // n je paran broj? System.out.println("n je paran broj"); System.out.println("n = " + n);
n % 2 == 0 if n ¾ n true ! System.out.println("n je paran broj");
if " n je paran broj# if
n % 2 == 0 false ! $ if % if if System.out.println("n = " + n);
n & ' System.out.println("n je paran broj");
if ( ) *
) ' & $ if n if-else % if ( n % 2 == 0 ) // n je paran broj? System.out.println("n je paran broj"); else System.out.println("n je neparan broj"); System.out.println("n = " + n);
& n % 2 == 0 if-else true !
System.out.println("n je paran broj");
else
if
false
System.out.println("n je neparan broj");
else
if-else
if-else
System.out.println("n = " + n);
n
naredba naredba½
naredba¾ if
if
if-else
!
if ( logiˇ cki-izraz ) { niz-naredbi }
if-else
if ( logiˇ cki-izraz ) { niz-naredbi } else { niz-naredbi } " # #
$ ! !
x
y
if
x
y
if ( x int z = x = y = }
> y z; x; y; z;
) { // pomo´ cna promenljiva // vrednost z je stara vrednost x // nova vrednost x je stara vrednost y // nova vrednost y je stara vrednost x
{ }
if x y
if-else Scanner tastatura = new Scanner(System.in); System.out.print("Unesite polupreˇ cnik: "); double r = tastatura.nextDouble(); if ( r = 0 ) if ( y >= 0 ) System.out.println("Prvi sluˇ caj"); else System.out.println("Drugi sluˇ caj"); ) *
x
¼
Drugi sluˇcaj if-else if
if ( x >= 0 ) { if ( y >= 0 ) System.out.println("Prvi sluˇ caj"); } else System.out.println("Drugi sluˇ caj");
if-else else ! if ( x >= 0 ) if ( y >= 0 ) System.out.println("Prvi sluˇ caj"); else ; // prazna naredba else System.out.println("Drugi sluˇ caj");
"
if if-else
# $
% # &
# x y z
%% # ' x # ( y z (
# y z ) % y z
import java.util.*; public class Sort3 { public static void main(String[] args) { // Uˇ citavanje tri vrednosti preko tastature Scanner tastatura = new Scanner(System.in); System.out.print("Unesite tri broja: "); int x = tastatura.nextInt(); int y = tastatura.nextInt(); int z = tastatura.nextInt(); // Prikazivanje sortiranih vrednosti na ekranu System.out.print("Rastu´ ci redosled unetih brojeva je: "); if (x < y && x < z) { // x je na prvom mestu if (y < z) System.out.println( x + " " + y + " " + z ); else System.out.println( x + " " + z + " " + y ); } else if (x > y && x > z) { // x je na poslednjem mestu if (y < z) System.out.println( y + " " + z + " " + x ); else System.out.println( z + " " + y + " " + x ); } else { // x je u sredini if (y < z) System.out.println( y + " " + x + " " + z ); else System.out.println( z + " " + x + " " + y ); } } }
y z
y
z
if
x
y
!
"
z
x
y
#
$
%
if (x > y) { // zameniti vrednosti x i y int a; // pomo´ cna promenljiva a = x; x = y; y = a; } // x je sigurno ispred y if (z < x) // z je na prvom mestu System.out.println( z + " " + x + " " + y ); else if (z > y) // z je na poslednjem mestu System.out.println( x + " " + y + " " + z ); else // z je u sredini System.out.println( x + " " + z + " " + y );
switch &
switch
switch ( izraz ) { case konstanta½ : niz-naredbi½ break; case konstanta¾ : niz-naredbi¾ break;
switch
%
. . . case konstanta : niz-naredbi break; default: niz-naredbi·½ }
izraz niz-naredbi case switch konstanta case izraza niz-naredbi case switch default izraza konstanti case default izraza konstanti case switch case break !" break # case switch $ case break case switch break switch % case switch # niz-naredbi break $ & ' case & ' case niz-naredbi ( # niz-naredbi izraza # switch case // n je celobrojna promenljiva switch ( 2 * n ) { case 1: System.out.println("Ovo se ne´ ce nikad izvršiti,");
System.out.println("jer je 2n paran broj!"); break; case 2: case 4: case 8: System.out.println("n ima vrednost 1, 2 ili 4,"); System.out.println("jer je 2n jednako 2, 4 ili 8."); break; case 6: System.out.println("n ima vrednost 3."); break; case 5: case 3: System.out.println("I ovo je nemogu´ ce!"); break; }
switch
import java.util.*; public class Meni { public static void main(String[] args) { // Prikazivanje menija na ekranu System.out.println("Opcije menija su:"); System.out.println(" 1. Predjelo"); System.out.println(" 2. Supe i ˇ corbe"); System.out.println(" 3. Glavno jelo"); System.out.println(" 4. Salate"); System.out.println(" 5. Poslastice");
System.out.println(" 6. Pi´ ce"); System.out.print("Unesite broj opcije koju želite: "); // Uˇ citavanje izabrane opcije menija Scanner tastatura = new Scanner(System.in); int brojOpcije = tastatura.nextInt(); switch ( brojOpcije ) { case 1: System.out.println("Izabrali ste \"Predjelo\"."); break; case 2: System.out.println("Izabrali ste \"Supe i ˇ corbe\"."); break; case 3: System.out.println("Izabrali ste \"Glavno jelo\"."); break; case 4: System.out.println("Izabrali ste \"Salate\"."); break; case 5: System.out.println("Izabrali ste \"Poslastice\"."); break; case 6: System.out.println("Izabrali ste \"Pi´ ce\"."); break; default: System.out.println("Greška: pogrešna opcija!"); } }
}
! 16 4 2008" # ! 17 4 2008"
30 4 2008 1 31 12 2008 1 ! " # $ " % maxDanaUMesecu switch &
import java.util.*; public class Sutra { public static void main(String[] args) { // Uˇ citavanje datuma u formatu d m g preko tastature System.out.print("Unesite datum u formatu d m g: "); Scanner tastatura = new Scanner(System.in); int dan = tastatura.nextInt(); // dan datog datuma int mesec = tastatura.nextInt(); // mesec datog datuma int godina = tastatura.nextInt(); // godina datog datuma // Odre¯ divanje broja dana u aktuelnom mesecu int maxDanaUMesecu = 0; // ukupan broj dana u datom mesecu switch (mesec) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: maxDanaUMesecu = 31; break; case 4: case 6: case 9: case 11: maxDanaUMesecu = 30; break;
case 2: if (godina % 4 == 0 && godina % 100 != 0 || godina % 400 == 0) maxDanaUMesecu = 29; else maxDanaUMesecu = 28; break; default: System.out.println("Pogrešan mesec!\n"); System.exit(0); } // Izraˇ cunavanje sutrašnjeg datuma if (dan < maxDanaUMesecu) dan++; else { dan = 1; if (mesec < 12) mesec++; else { mesec = 1; godina++; } } // Prikazivanje sutrašnjeg datuma na ekranu System.out.print("Sutrašnji datum je: "); System.out.println(dan + " " + mesec + " " + godina); }
}
dan mesec godina !godina % 4 == 0" #$
default switch System.exit()
int maxDanaUMesecu = 0;
! "
maxDanaUMesecu
# $% maxDanaUMesecu if " & ' "
( '
! ' " # $
# $ default switch maxDanaUMesecu ' ) if
switch ( default
switch if switch maxDanaUMesecu
) "
maxDanaUMesecu
'
switch
true false !
while " while # while ( logiˇ cki-izraz ) naredba
naredba while while # while ( logiˇ cki-izraz ) { niz-naredbi }
$ while
logiˇckog-izraza % & false ' while while & while % logiˇ ckog-izraza true naredba niz-naredbi logiˇcki-izraz & logiˇcki-izraz false while ( logiˇcki-izraz true naredba niz-naredbi logiˇ cki-izraz
while ) * while naredbe niza-naredbi logiˇ cki-izraz % while while + while & ! ,-
logiˇ cki-izraz
true
false naredba
while
while while
naredba niz-naredbi while
while logiˇ cki-izraz
! "
¼
while
#
int broj = 0; // poˇ cetni broj koji se prikazuje while (broj < 10) { // ponoviti sve dok je broj manji od 10 System.out.print(broj + " "); // prikazati broj na ekranu broj = broj + 1; // pre´ ci na slede´ ci broj } System.out.println(); // pomeriti kursor u novi red $ "
%
while &
broj < 10
'
"
true
broj
%
broj
broj
broj ( "
while
broj < 10 ' true
broj
½ broj ½
broj ¾ while
broj < 10 true broj
¾ ¾ ½¼ broj ½ broj ½¼ broj < 10 false ½¼ ½¼ while while while logiˇcki-izraz ! while " while # $ while % & logiˇcki-izraz ! while " & while # " $ logiˇcki-izraz while $ while '
(
import java.util.*; public class Štednja { public static void main(String[] args) { double stanje; double kamatnaStopa; int period;
// akumulirani iznos štednje // godišnja kamatna stopa na štednju // broj godina za izveštaj
// Uˇ citavanje poˇ cetnog depozita, kamate i perioda izveštaja Scanner tastatura = new Scanner(System.in); System.out.print ("Unesite poˇ cetni depozit: "); stanje = tastatura.nextDouble(); System.out.print ("Unesite godišnju kamatu: "); kamatnaStopa = tastatura.nextDouble(); System.out.print ("Unesite broj godina izveštaja: "); period = tastatura.nextDouble(); // Prikazivanje akumulirane štednje nakon svake godine int godina = 1; // godina za koju se prikazuje štednja while (godina zamišljenBroj) System.out.println("Zamislio sam manji broj :-("); else { System.out.println("Bravo, pogodili ste broj :-)"); pogodak = true; } } } }
½ ½
pogodak
while
false
!
import java.util.*; public class Prosek { public static void main(String[] args) { double broj; double suma; int n; double prosek;
// // // //
aktuelni ulazni broj suma ulaznih brojeva brojaˇ c ulaznih brojeva prosek ulaznih brojeva
// Inicijalizacija sume i brojaˇ ca ulaznih brojeva suma = 0; n = 0;
// Uˇ citavanje, sabiranje i brojanje ulaznih brojeva Scanner tastatura = new Scanner(System.in); System.out.print("Unesite 1. broj: "); while (tastatura.hasNextDouble()) { // broj = tastatura.nextDouble(); // suma = suma + broj; // n++; // System.out.print("Unesite " + (n+1) }
slede´ ci broj je unet? uˇ citati ga dodati ga sumi uve´ cati brojaˇ c za 1 + ". broj: ");
System.out.println(); if (n == 0) System.out.println("GREŠKA: uneto je nula brojeva."); else { System.out.println("Uneto je " + n + " brojeva."); System.out.println("Prosek tih brojeva je: " + suma/n); } } }
hasNextDouble() Scanner true double
! hasNextDouble() false" while
do-while # while $ %& " ' do-while while " ' while "
do (' do-while ) do naredba while ( logiˇ cki-izraz );
naredba
do-while
do { niz-naredbi } while ( logiˇ cki-izraz );
do-while
;
}
!
naredba
logiˇ ckogizraza
do-while
niz-naredbi
do-while
"
!
!
logiˇ ckog-izraza
$
false
!
while
true
"
! #
%%
naredba
logiˇ cki-izraz
true
false
' !
while
do-while
& !
do-while
logiˇ cki-izraz
!
do-while
* *
naredba
$
! (
do-while
! )
while
#
while ( logiˇ cki-izraz ) naredba
do-while while pogodak do-while do { System.out.print("Pogodite broj> "); pokušanBroj = tastatura.nextInt(); if (pokušanBroj < zamišljenBroj) System.out.println("Zamislio sam ve´ ci broj :-("); else if (pokušanBroj > zamišljenBroj) System.out.println("Zamislio sam manji broj :-("); else System.out.println("Bravo, pogodili ste broj :-)"); } while (pokušanBroj != zamišljenBroj);
for ! " # ¼ while ! broj
$ for # % for ( int broj = 0; broj < 10; broj = broj + 1 ) System.out.print(broj + " "); // telo petlje System.out.println(); // pomeranje kursora u novi red
& for for ( kontrolni-deo ) naredba
naredba
for
for ( kontrolni-deo ) { niz-naredbi }
for
kontrolni-deo
inicijalizacija; logiˇ cki-izraz; završnica
for
for ( inicijalizacija; logiˇ cki-izraz; završnica ) naredba !"
for
#
"
while
inicijalizacija while ( logiˇ cki-izraz ) { naredba završnica } $
inicijalizacija
%
logiˇ ckim-izrazom
završnica
%
naredbe
#
završnica
true
%
#
#
false
inicijalizacija
%
logiˇ cki-izraz
'
logiˇ cki-izraz
&
(
break
inicijalizacija završnica false for for broj ! for ( int broj = 9; broj >= 0; broj-- ) System.out.print(broj + " ");
inicijalizacija završnica for " #
! for ( int n = 0, int m = 9; n < 10; n++, m-- ) { System.out.printf("%5d", n); // kolona širine 5 mesta za n. System.out.printf("%5d", m); // kolona širine 5 mesta za m, System.out.println; // i prelazak u novi red }
$ % " & % ' ' % (
) % %
# * % %
import java.util.*; public class ProstBroj { public static void main(String[] args) { int broj;
// ulazni broj
// Uˇ citavanje broja preko tastature Scanner tastatura = new Scanner(System.in); System.out.print("Unesite ceo broj ve´ ci od 1: "); broj = tastatura.nextInt(); int maxDelioc = (int)Math.sqrt(broj); // maksimalni delioc // Potraga za deliocem izme¯ du 2 i maxDelioc for (int k = 2; k < maxDelioc; k++) { if (broj % k == 0) { // da li je broj deljiv sa k? System.out.println("Taj broj nije prost."); System.out.println("Njegov delioc je " + k); System.exit(0); } } System.out.println("Taj broj je prost."); } }
Math.sqrt() double for
if
!" #
if if
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
! ! ½ "
for # #
! import java.util.*; public class TablicaMnozenja { public static void main(String[] args) { for (int brojReda = 1; brojReda < 10; brojReda++) { for (int brojKolone = 1; brojKolone < 10; brojKolone++) System.out.printf("%4d", brojReda * brojKolone); System.out.println(); // pre´ ci u novi red na ekranu } } }
for for brojReda ½ brojKolone ½ ½ brojReda brojKolone brojReda brojKolone ! %4d
break continue " while do-while # " $ for % break & break;
' break #
! & while ( true ) { // beskonaˇ cna petlja? System.out.print("Unesite pozitivan broj: "); int broj = tastatura.nextInt(); if ( broj > 0 ) // uneti broj je ok, prekinuti petlju break; System.out.println("Greška: morate uneti broj > 0"); } // Ovde se program nastavlja posle prekida petlje
while true
break
break !"!# while ( true ) { System.out.print("Pogodite broj> "); pokušanBroj = tastatura.nextInt(); if (pokušanBroj < zamišljenBroj) System.out.println("Zamislio sam ve´ ci broj :-("); else if (pokušanBroj > zamišljenBroj) System.out.println("Zamislio sam manji broj :-("); else { System.out.println("Bravo, pogodili ste broj :-)"); break; } }
$ % % & $ break % % ' break % ( ) while gl_petlja % # break
gl_petlja: while ...
' % break gl_petlja;
for for (;;) { ... }
s1 s2
for sp s1 for s2 na¯denIstiZnak true break boolean na¯ denIstiZnak = false; // s1 i s2 nemaju isti znak sp: for (int i = 0; i < s1.length(); i++) for (int j = 0; j < s2.length(); j++) if (s1.charAt(i) == s2.charAt(j)) { // isti znakovi? na¯ denIstiZnak = true; break sp; } // Ovde se logika programa može nastaviti na osnovu // vrednosti logiˇ cke promenljive na¯ denIstiZnak.
continue
continue;
continue ! ! break ! ! " # continue ¼ int broj = 0; // poˇ cetni broj intervala od 0 do 9 while ( broj < 10 ) { // ponoviti sve dok je broj manji od 10 if (broj % 2 != 0) // broj je neparan? continue; // preskoˇ citi ostatak tela petlje System.out.print(broj + " "); // prikazati broj na ekranu broj = broj + 1; // pre´ ci na slede´ ci broj } System.out.println(); // pomeriti kursor u novi red
$ break continue ! continue
oznaka: for ( ) { while ( ) { // break;
}
//
oznaka: for ( ) { while ( ) { // continue; // continue oznaka;
continue
// break oznaka; } //
break
}
} //
//
break continue
break continue while do-while for break switch break if ! if switch " break # switch if $ if switch if break % &$ '( & ( & ( ) * &( &(
import java.util.*; public class Palindrom { public static void main(String[] args) { Scanner tastatura = new Scanner(System.in); String red; // ulazni red znakova reˇ cenice novi_red: do { System.out.print("Unesite reˇ cenicu ( za kraj): "); red = tastatura.nextLine(); // Konvertovanje svih znakova ulaznog reda u mala slova red = red.toLowerCase(); // Zanemarivanje nevaže´ cih znakova ulaznog reda String reˇ cenica = ""; for (int i = 0; i < red.length(); i++) { char znak = red.charAt(i); if (Character.isLetterOrDigit(znak)) reˇ cenica += znak; } // Proveravanje znakova reˇ cenice sa dva kraja int l = 0; // indeks levog znaka int d = recenica.length() - 1; // indeks desnog znaka while (l < d) { // sve dok se indeksi ne preklapaju if (reˇ cenica.charAt(l) != reˇ cenica.charAt(d)) { System.out.println("To nije palindrom."); continue novi_red; // nastavi sa novim ulazom } l++; // pomeri levi indeks udesno d--; // pomeri desni indeks ulevo }
System.out.println("To jeste palindrom."); } while (red.length() != 0); }
}
length() toLowerCase() charAt()
String isLetterOrDigit()
Character ! " # continue
5
! " # " " $ % ! $ & !
" $ '
! " !
! ! " !" $ " ( ) ($ ) * ( )
" ++,
! " #
$
%
$
&
' #
' '
%
$ ( ) (
*
# $ $ +$
,
( ' ( & # $ $
-
& '
+ & ' ( .
modifikatori tip-rezultata ime-metoda ( lista-parametara ) { niz-naredbi }
main()
public static void main (String[] args) { // Naredbe ... }
public static void main
String[] args niz-naredbi !
! " # $ % {& ' (
) modifikatori
* static + public * ( ,
( * tip-rezultata
* , (
tip-rezultata
void %-
(
(& '( ime-metoda . * /
01 $
lista-parametara
promeniKanal()
!
"
!
!
#
promeniKanal() $ int ciljniKanal promeniKanal() ! %
public void promeniKanal (int ciljniKanal) { // Telo metoda } # promeniKanal ciljniKanal int
&
'
% promeniKanal(8) ' ! (
)
!
*
%
tip-parametra ime-parametra
!
+ x y double
double x, double y double x, y
public static void odigrajPotez () { // Telo metoda }
public static void odigrajPotez int nacrtaj2DSliku (int n, int m, String naslov) { // Telo metoda }
int nacrtaj2DSliku n m int naslov String static boolean manjeOd (float x, float y) { // Telo metoda }
static boolean manjeOd x y float ! nacrtaj2DSliku " #$% $ static & $ # static% ' public odigrajPotez ( ) $ * private () ' public private +
$
, protected $ # " " %
static
! " # $ % main() & ' () * + ( # & , ime-metoda ( lista-argumenata )
- & - " , public void uradiNešto(int n, double x, boolean test) { // Naredbe koje rade nešto ... }
. uradiNešto " & , n x test - , uradiNešto(17, 0.69, false); uradiNešto(i, a, brojProst); uradiNešto(23, Math.sqrt(y+1), z >= 10);
uradiNešto 17 0.69 false n x test uradiNešto ! uradiNešto i a brojProst n x test " uradiNešto
Math.sqrt(y+1) z >= 10 x test ! # $ % uradiNešto()# uradiNešto(23, Math.sqrt(y+1), z >= 10);
& # { // Alokacija i inicijalizacija parametara metoda uradiNešto int n = 23; double x = Math.sqrt(y+1); boolean test = (z >= 10); // Izvršavanje tela metoda uradiNešto // Naredbe koje rade nešto ... }
uradiNešto() MojaKlasa
main() MojaKlasa public class MojaKlasa { . . . // Definicija metoda main public static void main(String[] args) { . . . uradiNešto(17, 0.69, false); // poziv metoda . . . uradiNešto(23, Math.sqrt(y+1), z >= 10); // poziv metoda . . . } // Definicija metoda uradiNešto public void uradiNešto(int n, double x, boolean test) { // Naredbe koje rade nešto ... } . . . }
main() uradiNešto() MojaKlasa
! " main() uradiNešto() # $ % ! & $ # ' ( # # & # static ' ) # # *
ime-klase .ime-metoda ( lista-argumenata )
ime-klase ime-metoda ½
Math Math.sqrt(y+1) Math.pow(1+k, m) ! sqrt() pow() Math " #
" " $ !
"" ime-objekta .ime-metoda ( lista-argumenata )
ime-objekta % & ime-metoda ' tastatura.nextInt()
( tastatura
Scanner ) ! nextInt() " ! nextInt() " " * %+ " $" " reˇ cenica.CharAt(i)
CharAt() String ! i " " String " reˇcenica , " " "
½
tip-rezultata tip-rezultata void ! " # ! $ % ! %
# $ # & return izraz;
izraza # izraza return ' &
izraza # ! # return !
izraz ! # # izraza ( ) ! ' & double hipotenuza(double a, double b) { // Hipotenuza pravouglog trougla sa katetama a i b
return Math.sqrt(a*a + b*b); }
hipotenuza
a b double
double
! " # $ %
double k1 = 3, k2 = 4; // vrednosti kateta double obim = k1 + k2 + hipotenuza(k1, k2);
k2 !
k1
&
obim &
hipotenuza $ '
obim %
obim = k1 + k2 + hipotenuza(k1, k2); %
! ( %
k1 + k2 + hipotenuza(k1, k2); )*%
&
k1 k2 " +
%
hipotenuza(k1, k2)
hipotenuza k1 k2
a b
a b
hipotenuza
hipotenuza
!
hipotenuza return "
Math.sqrt(a*a + b*b) #
hipotenuza $
%
hipotenuza k1 + k2 + hipotenuza(k1, k2);
$ ! k1 k2 & obim obim = k1 + k2 + hipotenuza(k1, k2);
' ( $ k1 k2 obim " return
"
"
% return
) return $
* "
$ +
,- . void/
izraz return
return;
!
" # $
return
izraz; ! % "
& % main()
'
% % $ (
) '
%
* # +, * # % (
-
main() #
import java.util.*; public class Poga¯ danjeBroja { public static void main(String[] args) { String ponovo; // indikator nastavka igre Scanner tastatura = new Scanner(System.in); System.out.println("Ovo je igra poga¯ danja broja."); System.out.println("Ja ´ cu zamisliti broj izme¯ du 1 i 100,"); System.out.println("a vi treba da ga pogodite.\n"); do { pogodiBroj(); // poziv metoda za jedno poga¯ danje broja System.out.print("Želite li da ponovo igrate (d/n)? "); ponovo = tastatura.next(); } while (ponovo.equals("d")); System.out.println("Hvala i do vi¯ denja ..."); } public static void pogodiBroj() { int zamišljenBroj; // broj koji je raˇ cunar izabrao int pokušanBroj; // broj koji je korisnik pokušao Scanner tastatura = new Scanner(System.in); zamišljenBroj = (int)(100 * Math.random()) + 1; System.out.println("Zamislio sam ceo broj izme¯ du 1 i 100."); System.out.println("Pokušajte da ga pogodite.\n"); do { System.out.print("Pogodite broj> "); pokušanBroj = tastatura.nextInt(); if (pokušanBroj < zamišljenBroj) System.out.println("Zamislio sam ve´ ci broj :-("); else if (pokušanBroj > zamišljenBroj) System.out.println("Zamislio sam manji broj :-("); else System.out.println("Bravo, pogodili ste broj :-)");
} while (pokušanBroj != zamišljenBroj); } }
jeProst() true false import java.util.*; public class ProstBroj { public static void main(String[] args) { int broj;
// ulazni broj
// Uˇ citavanje broja preko tastature Scanner tastatura = new Scanner(System.in); System.out.print("Ovo je program koji "); System.out.println("odre¯ duje da li broj prost."); System.out.print("Unesite broj ve´ ci od 1 (0 za kraj): "); broj = tastatura.nextInt(); while (broj != 0) { System.out.print("Taj broj "); if ( jeProst(broj) ) // poziv metoda System.out.print("je "); else System.out.print("nije "); System.out.println("prost."); System.out.print("Unesite broj ve´ ci od 1 (0 za kraj): "); broj = tastatura.nextInt(); } } public static boolean jeProst(int n) {
int maxDelioc = (int)Math.sqrt(n); // maksimalni delioc // Potraga za deliocem izme¯ du 2 i maxDelioc for (int k = 2; k < maxDelioc; k++) { if (n % k == 0) return false; } return true; }
}
sredi() ! obrni()
" # import java.util.*; public class Palindrom { public static void main(String[] args) { String red; // ulazni red znakova reˇ cenice String reˇ cenica; // „sre¯ den” ulazni red znakova Scanner tastatura = new Scanner(System.in); do { System.out.print("Unesite reˇ cenicu ( za kraj): "); red = tastatura.nextLine(); reˇ cenica = sredi(red); // poziv metoda sredi System.out.print("Ta reˇ cenica "); if (reˇ cenica.equals(obrni(reˇ cenica)))// poziv metoda obrni System.out.print("je "); else System.out.print("nije ");
System.out.println("palindrom."); } while (red.length() != 0); } public static String sredi(String niska) { String sre¯ denaNiska = ""; // Konvertovanje svih znakova ulazne niske u mala slova niska = niska.toLowerCase(); // Zanemarivanje nevaže´ cih znakova ulazne niske for (int i = 0; i < niska.length(); i++) { char znak = niska.charAt(i); if (Character.isLetterOrDigit(znak)) sre¯ denaNiska += znak; } return sre¯ denaNiska; } public static String obrni(String niska) { String obrnutaNiska = ""; for (int i = niska.length() - 1; i >= 0; i--) { obrnutaNiska += niska.charAt(i); } return obrnutaNiska; } }
public void uradiNešto(int n, double x, boolean test) { // Naredbe koje rade nešto ... }
uradiNešto(int, double, boolean)
! "# $
% $ "# & ' ( ) " uradiNešto() " public void uradiNešto(String s) { // Naredbe koje rade nešto drugo ... }
! uradiNešto(String)
uradiNešto() ! $ # % * ) uradiNešto("super program");
uradiNešto()
String ) Scanner nextInt(), nextDouble(), nextBoolean(), ...
print ¾ nextValue
int nextValue() { ... } double nextValue() { ... } boolean nextValue() { ... } ...
nextValue() nextValue !
" # $ %
& Zgrada '' # class Zgrada { int brojSpratova; String boja; String adresa; . . . public void okreˇ ci() { ... }; public void dozidaj() { ... }; }
brojSpratova boja adresa
okreˇci() dozidaj() ¾
print
¿
! new " #
$ " % & ' static public private ( # static String imeKorisnika; public int brojIgraˇ ca; private static double brzina, vreme;
! ' static ) ' ! ' public private * + ' private , ' public % + ime-klase.ime-polja ime-objekta.ime-polja ime-klase
¿
ime-objekta out System System.out ca brojIgraˇ IgraSaKartama IgraSaKartama brojIgraˇ ca brojIgraˇ ca IgraSaKartama IgraSaKartama ! poker " brojIgraˇ ca poker poker.brojIgraˇ ca
# $ % & ! " ! ' & ! ' " ( ) ! # )
! "#
$ % & main() ! ' public static void main(String[] args) { int x = 1; dodaj1(x); System.out.println("x = " + x), } public void dodaj1(int x) { x = x + 1; }
( x = 1) ( x = 2) * x dodaj1() ! x main() ½ x main dodaj1(x) x + dodaj1 x , ½ , ½ ¾ & x dodaj1 dodaj1 x main() ½ -
.
!
" " #
$
%
" %
&'()
"
main()
pogodiBroj()
%
brojPogodaka
main()
pogodiBroj()
brojPogodaka
*
tastatura
brojPogodaka
%
+
main()
pogodiBroj()
%
tastatura MAX_BROJ_POKUŠAJA
import java.util.*; public class PogadjanjeBroja { static int brojPogodaka = 0; // brojaˇ c pogo¯ denih brojeva final static int MAX_BROJ_POKUŠAJA = 5;// najve´ ci broj pokušaja static Scanner tastatura = new Scanner(System.in); public static void main(String[] args) { String ponovo; System.out.println("Ovo je igra poga¯ danja broja."); System.out.println("Ja ´ cu zamisliti broj izme¯ du 1 i 100,"); System.out.print("a vi treba da ga pogodite iz "); System.out.println(MAX_BROJ_POKUŠAJA + " puta.\n"); do { pogodiBroj(); System.out.print("Želite li da ponovo igrate (d/n)? "); ponovo = tastatura.next(); } while (ponovo.equals("d")); System.out.print("Pogodili ste "); if (brojPogodaka == 1) System.out.println("jedanput."); else System.out.println(brojPogodaka + " puta."); System.out.println("Hvala i do vi¯ denja ..."); } public static void pogodiBroj() {
int zamišljenBroj; // broj koji je raˇ cunar izabrao int pokušanBroj; // broj koji je korisnik pokušao int brojPokušaja; // brojaˇ c pokušaja korisnika zamišljenBroj = (int)(100 * Math.random()) + 1; brojPokušaja = 0; System.out.println("Zamislio sam ceo broj izme¯ du 1 i 100."); System.out.println("Pokušajte da ga pogodite.\n"); for (;;) { // beskonaˇ cna petlja! System.out.print("Pogodite broj> "); pokušanBroj = tastatura.nextInt(); brojPokušaja++; if (pokušanBroj == zamišljenBroj) { System.out.println("Bravo, pogodili ste broj."); brojPogodaka++; break; } else if (brojPokušaja == MAX_BROJ_POKUŠAJA) { System.out.print("Niste pogodili broj iz "); System.out.println(MAX_BROJ_POKUŠAJA + " puta."); System.out.print("Zamislio sam broj "); System.out.println(zamišljenBroj); break; } else if (pokušanBroj < zamišljenBroj) System.out.println("Zamislio sam ve´ ci broj."); else if (pokušanBroj > zamišljenBroj) System.out.println("Zamislio sam manji broj."); else { System.out.println("Ovaj sluˇ caj nije mogu´ c."); break; } } } }
pogodiBroj()
break
if
else ! " "#
$ %
& ' (
( $ % $ % ( ) * # false# + ( ’\u0000’ $* ( ( null% * brojPogodaka ( (
+ MAX_BROJ_POKUŠAJA +
+ ' (
) final
( , ( ! final static int MAX_BROJ_POKUŠAJA = 5;
MAX_BROJ_POKUŠAJA
" - .
Math Math.PI Integer MIN_VALUE int
! " ! # $ !" # $ % & ' ( IgraSaKartama "
public class IgraSaKartama { static String pobednik; ...
// globalna promenljiva (polje)
static void odigrajIgru() { String pobednik; // lokalna promenljiva // Ostale naredbe metoda ... } ... }
odigrajIgru() pobednik IgraSaKartama pobednik pobednik odigrajIgru()
IgraSaKartama.pobednik ! " for # $ for (int i = 0; i < n; i++) { // Telo petlje }
% i for & for
for
' ( for # $ for (int i = 0; i < n; i++) { // Telo petlje
} if (i == n) // GREŠKA: ovde ne važi ime i System.out.println("Završene sve iteracije");
void neispravanMetod(int n) { int x; while (n > 0) { int x; // GREŠKA: ime x je ve´ c definisano ... } }
! " void ispravanMetod(int n) { while (n > 0) { int x; ... // Kraj oblasti važenja imena x } while (n > 0) { int x; // OK: ime x se može opet davati ... } }
# $ % # & % # '
% ( ( )
! " # $ % % ! $ & % Ludost % public Ludost Ludost( Ludost Ludost ) { // Telo metoda }
' Ludost Ludost &$ Ludost Ludost #
( %" & ) % ! ! ) Ü Ü Ò " $ ( Math.pow(x,n) Ü Ü Ò
$
stepen1 for
double stepen1(double x, int n) { double y = 1; for(int i = 0; i < n; i++) y = y * x; return y; }
¼ ½
stepen2 !
double stepen2(double x, int n) { if (n == 0) return 1; else return x * stepen2(x, n-1); }
" stepen2 return #
# stepen2 ! ! $ # ! ! $ % $ & $ ' ( stepen2 $ &
½
! stepen2
½
! " #
$
"
%
& stepen2
"
&
"
" ! '
#
'
# " " (
! # " " " # " ) " * ) " # "* % " " #
Ü
!
"
// Pretpostavlja se da je int nzd(int x, int y) {
Ü
Ý
if (x % y == 0) // bazni sluˇ caj return y; else return nzd(y, x % y); } #
%
&
$
'
$
½ ½ ½ !
" ½ ¾ ¿ #
$ # !
¾ ½
½
% ½ ¾ # & '# & '#
¾
( # ) $ ! // Pretpostavlja se da je int fib(int n) {
½
if (n "); n = tastatura.nextInt(); System.out.println(); System.out.println("Rešenje igre za taj broj diskova je: "); premestiDiskove(n, ’A’, ’B’, ’C’); } static void premestiDiskove(int n, char a, char b, char c) { if (n == 1) // bazni sluˇ caj premestiDisk(a, c); else { premestiDiskove(n-1, a, c, b); premestiDisk(a, c); premestiDiskove(n-1, b, a, c); }
} static void premestiDisk(char x, char y) { System.out.print("Disk na vrhu stuba " + x); System.out.println(" premestiti na vrh stuba " + y); } }
premestiDiskove() static main() premestiDisk()
6
!"#
$
% " &
'
"
'
(
)
'
*+,
main()
!
" # ! $
% # & ' & $ static $ ' & '
# ( %
)
# %
# "
$ #
*
& ' ! & '
new
new
! " # class Korisnik { static String ime; static int id; }
$ Korisnik.ime Korisnik.id
Korisnik.ime Korisnik.id
"
% Korisnik Korisnik.ime Korisnik.id # class Klijent { String ime; int id; }
& Klijent.ime Klijent.id ime id ' ( Klijent $ ) " ime id * ) " " %
class ˇ ClanPorodice { static String prezime; String ime; int uzrast; }
ˇ ClanPorodice.prezime ime uzrast ! "
" " " #!
" " " $ "% " " # " & " ' " (
) " ˇ ClanPorodice uve´ cajUzrast() ) ½ ! # uve´ cajUzrast()
ˇ ClanPorodice ) ) * "
+ " ! + ,
! " # $ % &
' ( # # #
" ) * modifikatori class ime-klase { telo-klase }
modifikatori public ime-klase ! telo-klase " # $ % & public class Student { public String ime; // ime studenta public int id; // matiˇ cni broj studenta public double test1, test2, test3; // ocene na tri testa
public double prosek() { // izraˇ cunati prosek ocena return (test1 + test2 + test3) / 3; } }
static
Student ime test1 test2 test3 prosek() prosek() !
" #
$
% & ! int char ' ( ) #
Student s Student* Student s;
+ s Student
, Student Student ! s - &
# %
! " # $
" %# new & "
' # "
s Student
( s = new Student();
Student s ) s # s # ! # s " * "
s + # " , Student s " ime test1 test2 test3 - # ) ( s.ime s.test1 s.test2 s.test3 " # (
System.out.println("Ocene studenta " + s.ime + " su:"); System.out.println("Prvi test: " + s.test1); System.out.println("Drugi test: " + s.test2); System.out.println("Tre´ ci test: " + s.test3);
s s.ime s.test1
String double
s.ime s.ime.length() prosek()
s s.prosek() s System.out.print("Proseˇ cna ocene studenta " + s.ime); System.out.println(" je: " + s.prosek());
! ! " null
s = null;
if (s == null) ...
# null $ $ s null s.test1 s.prosek() % & ' " () % & Student s1, s2, s3, s4; s1 = new Student(); s2 = new Student();
s1.ime = "Pera Peri´ c"; s2.ime = "Mira Miri´ c"; s3 = s1; s4 = null;
Student Student s1 s2 ime ! s1 s3!
null s4 " #$ ! % & ! % & null! ! " #$ s1 s3 ! s3 = s1; s1 s3 ' & & ( ! ! ) #$ s1.ime "Pera Peri´ c"! s3.ime "Pera Peri´ c" * & == != *! % ! ! if (s1 == s3) ...
! ! s1 s3 % ! s1 s3 ! ) ! & !
s1 s2 s3 s4
Student
Student
ime
ime
test1
¼
test1
¼
test2
¼
test2
¼
test3
¼
test3
¼
prosek
prosek
String "Pera Peri´ c"
String "Mira Miri´ c"
s1.ime.equals(s3.ime) && s1.test1 == s3.test1 && s1.test2 == s3.test2 && s1.test3 == s3.test3
!"
# "Pera Peri´c"
"Mira Miri´ c" $ % String & & $ ' $ null( ) * $ ime $ + , $
- * & s1.ime String
"Pera Peri´c" s1.ime "Pera Peri´c" ! !" # final $
%& $
final '
() *
final Student s = new Student(); // vrednost polja ime: // s.ime = null s.ime = "Laza Lazi´ c"; // promena polja ime, // a ne promenljive s
* x + x ' , x
# x ' - void promeni(Student s) { s.ime = "Mika Miki´ c"; }
Student x = new Student(); x.ime = "Pera Peri´ c"; promeni(x); System.out.println(x.ime);
' "Mika Miki´c" promeni(x)
s = x; s.ime = "Mika Miki´ c";
ime s x
! "int double # false $ ’\u0000’ ! null $ ! ! KockaZaIgru ! % public class KockaZaIgru { public int broj = 6;
// broj koji je pao
public void baci() { // „bacanje” kocke broj = (int)(Math.random()*6) + 1; } }
broj KockaZaIgru KockaZaIgru broj public class KockaZaIgru { public int broj = (int)(Math.random()*6) + 1; public void baci() { broj = (int)(Math.random()*6) + 1; } }
broj KockaZaIgru ! broj " # !$
%&' % new ( KockaZaIgru KockaZaIgru kocka;
// deklaracija promenljive // klasnog tipa KockaZaIgru kocka = new KockaZaIgru(); // konstruisanje objekta klase // KockaZaIgru i dodela njegove // reference toj promenljivoj
KockaZaIgru kocka = new KockaZaIgru();
new KockaZaIgru() KockaZaIgru ) * )
kocka kocka KockaZaIgru() new KockaZaIgru ! ! " # $ $ $ " " % & ' ( ) public * + "
private
protected
void
, " ! ' , KockaZaIgru " % public class KockaZaIgru { public int broj;
// broj koji je pao
public KockaZaIgru(int n) { broj = n; }
// konstruktor
public void baci() { // „bacanje” kocke broj = (int)(Math.random()*6) + 1; } }
- %
public KockaZaIgru(int n) { broj = n; }
new
KockaZaIgru
KockaZaIgru kocka = new KockaZaIgru(1);
½
broj
kocka
!
$ #
KockaZaIgru
%
!
new KockaZaIgru()
"
#
#
KockaZaIgru
broj
%
# #
public class KockaZaIgru { public int broj;
// broj koji je pao
public KockaZaIgru() { baci(); }
// konstruktor bez parametara // poziv metoda baci()
public KockaZaIgru(int n) { broj = n; }
// konstruktor sa parametrom
public void baci() { // „bacanje” kocke broj = (int)(Math.random()*6) + 1; } }
KockaZaIgru
new KockaZaIgru() new KockaZaIgru(x) x int
! static " ! new new ime-klase( lista-argumenata )
lista-argumenata # $
% &'
"
$ %
( ) !
% * + ) '
,
- . ) % / #$ #$
0
KockaZaIgru KockaZaIgru ! public class BacanjaDveKocke { public static void main(String[] args) { int brojBacanja = 0; // brojaˇ c bacanja dve kocke KockaZaIgru kocka1 = new KockaZaIgru(); // prva kocka KockaZaIgru kocka2 = new KockaZaIgru(); // druga kocka do { kocka1.baci(); System.out.print("Na prvoj kocki je pao broj: "); System.out.println(kocka1.broj); kocka2.baci(); System.out.print("Na drugoj kocki je pao broj: "); System.out.println(kocka2.broj); brojBacanja++;
// uraˇ cunati bacanje
} while (kocka1.broj != kocka2.broj); System.out.print("Dve kocke su baˇ cene " + brojBacanja); System.out.println(" puta pre nego što je pao isti broj."); } }
" # BacanjaDveKocke.java
KockaZaIgru.java
BacanjaDveKocke KockaZaIgru
new ! ! " # ! $ !
$ % & & '
' (
! )
* + ,void novi() { Student s = new Student(); s.ime = "Pera Peri´ c"; ... }
novi() Student " s novi() s " novi() & !
Student s = new Student(); ... s = null; ... }
s
null
Student
! "
Student
#
"
" $% &
'
(
)
$* % & % "
% " " *
Student *
+
" !
$% &
,
*
%
-
' %
.
* / * "
#
,
!
* !
public ! private " # $ ! % & ' ( $ ( ) $ ' ) $
$ * public class Radnik { // Privatna polja private String ime; private long jmbg; private int staž; private double plata; // Konstruktor public Radnik(String i, long id, int s, double p) { ime = i; jmbg = id; staž = s; plata = p;
} // Javni interfejs public String getIme() { return ime; } public long getJmbg() { return jmbg; } public int getStaž() { return staž; } public void setStaž(int s) { staž = s; } public double getPlata() { return plata; } public void pove´ cajPlatu(double procenat) { plata += plata * procenat / 100; } }
Radnik
Radnik r = new Radnik("Pera Peri´ c", 111111, 3, 1000); System.out.println(r.ime); // GREŠKA: ime je privatno polje r.staž = 17; // GREŠKA: staž je privatno polje
Radnik r = new Radnik("Pera Peri´ c", 111111, 3, 1000); System.out.println(r.getIme());
r.setStaž(17);
!" # ime getIme jmbg getJmbg $ # Radnik vredan boolean isVredan() getVredan() % !" & staž setStaž ' ( !" !" !" ) * * + ,(
& ( ) - ( ( ime jmbg staž plata
. & . / ( ( ( / ime jmbg Radnik 0 staž plata setStaž() pove´cajPlatu() / (
( (
staž plata
public double getPlata() { plataBrojPristupa++; return plata; }
public void setStaž(int s) { if (s < 0) { System.out.println("Greška: staž je negativan"); System.exit(-1); } else staž = s; }
! ! Radnik private String prezime;
getIme() public String getIme() { return ime + " " + prezime; }
" # $ % & ! '
Radnik
this
pove´cajPlatu() Radnik public void pove´ cajPlatu(double procenat) { plata += plata * procenat / 100; }
plata agent007.pove´ cajPlatu(10);
plata agent007 ½¼ ! agent007.plata += agent007.plata * 10 / 100;
pove´cajPlatu() " Radnik
# ! $ % $ " & ' " this ( this pove´cajPlatu() " public void pove´ cajPlatu(double procenat) { this.plata += this.plata * procenat / 100; }
) this ! *
this
this public Radnik(String ime, long jmbg, int staž, double plata) { this.ime = ime; this.jmbg = jmbg; this.staž = staž; this.plata = plata; }
this
ime = ime;
ime
ime
this
!
this
"
Radnik
!
ve´ ceOd()
#
pera.ve´ ceOd(žika)
pera
$
žika
this
public Radnik ve´ ceOd(Radnik drugi) { if (this.getPlata() > drugi.getPlata()) return this; else return drugi; } $
this
this.getPlata()
ve´ ceOd()
getPlata()
%
return this; ve´ ceOd() this ! this
this( lista-argumenata );
" Radnik # ! public Radnik(String ime, long jmbg) { this.ime = ime; this.jmbg = jmbg; this.staž = 0; this.plata = 100; }
$ ! public Radnik(String ime, long jmbg) { this(ime, jmbg, 0, 100); }
% ! this(ime, jmbg, 0, 100);
Radnik & ' this %
this # '
! this ( ! public Radnik(String ime, long jmbg) {
this System.out.println("Konstruisan pripravnik ... "); this(ime, jmbg, 0, 100); }
public Radnik(String ime, long jmbg) { this(ime, jmbg, 0, 100); System.out.println("Konstruisan pripravnik ... "); }
7
! " # $
% &
' & !
(
) ! * +,-
! ½¼¼ a ½¼¼ "#
a[0]
a[1]
a[2]
a[99]
! a ½¼¼ $ ! a "# int a[0] a[1] a[99]
% & ' ( ) ) ( ) * ) ! T T[] % T[]
T + int int[] int , * Student Student[] Student T[] - T. - T. ( & !
/
int[] int[] a;
a int[] int[] int ! int[] new a a = new int[100];
½¼¼ " # $ int[] a = new int[100];
! a int[] ½¼¼ int a % ½¼¼ $ int $ & #
'( a
a[0]
a[1]
a[2]
a[99]
a ½¼¼
! $ ) * + a ½¼¼ , -" a $
null . $ $
Student[] s = new Student[15];
s Student[] ½ Student s Student Student null N new bazni-tip [N]
[]
! N " # $ % int k = 5; double[] x = new double[2*k+10];
x & 2*k+10 x length ' # x.length ! () " length final * % (% false ’\u0000’ null * % # " + int[] a = new int[] {1, 2, 4, 8, 16, 32, 64, 128};
a
a[0]
a[1]
a[7]
! Student pera = new Student("Pera Peri´ c", 1111, 99, 100, 100); Student[] odlikaši = new Student[] { pera, new Student("Laza Lazi´ c", 2222, 99, 95, 100), new Student("Mira Miri´ c", 3333, 100, 100, 100) };
" new !½ new bazni-tip [] { lista-vrednosti }
# $
% bazni-tip [] prikaži() ! prikaži( new String[] {"Vrati", "Nastavi", "Odustani"} );
" &' (
bazni-tip []
) *
! int[] a = new int[100];
new ½
bazni-tip []
½
a[0] a[1]
a[99]
i int a[i] a[3*i-7] a
!
i
a[3*i-7]
" i
a[2]# i
a[23] !
a$ for (int i = 0; i < a.length; i++) { System.out.println( a[i] ); }
%
i a[0] & i++ i
a[1] ! i
a !
i a[99] ' i
i < a.length a.length
"
a % (
!
a
null " a a[i] a
i a[i] " i i < 0 i >= a.length
¼
import java.util.*; public class Glasanje { public static void main(String[] args) { Scanner tastatura = new Scanner(System.in); // Uˇ citavanje ukupnog broja partija System.out.print ("Unesite ukupan broj partija: "); int brojPartija = tastatura.nextInt(); // Konstruisanje niza partija za sabiranje glasova int[] partija = new int[brojPartija]; // Uˇ citavanje glasova za pojedinaˇ cne partije for (;;) { // beskonaˇ cna petlja System.out.print("Redni broj partije kojoj ide glas> "); int p = tastatura.nextInt(); if (p < 1 || p > brojPartija) break; else partija[p-1] = partija[p-1] + 1; }
// Prikazivanje osvojenih glasova svih partija for (int i = 0; i < partija.length; i++) { System.out.print("Partija pod rednim brojem " + (i+1)); System.out.println(" ima " + partija[i] + " glasova."); } }
}
partija ½ ½ ¼
x double[] x = new double[20];
y double[] y;
x y y = x;
y x ! " x y # x[i] y[i] $ % &' Arrays( ) * + , % + - + %
public static double[] kopirajNiz(double[] original) { if (original == null) return null; double[] kopija = new double[original.length]; for (int i = 0; i < original.length; i++) kopija[i] = original[i]; return kopija; }
x y y = kopirajNiz(x);
y
x x[i] y[i]
main() public static void main(String[] args)
main() A ! "!#$% & A java A
' main() args String[]¾ ( main()
) main() & * + ! ) $ main() ) !#$ & args
& java A , ¾
args main()
main() public class Poruka { public static void main(String[] args) { if (args[0].equals("-d")) System.out.print("Dobar dan"); else if (args[0].equals("-z")) System.out.print("Zbogom"); // Prikazati ostale argumente u komandnom redu for (int i = 1; i < args.length; i++) System.out.print(" " + args[i]); System.out.println("!"); } }
java Poruka -z okrutni svete
args main() args[0] = "-z"; args[1] = "okrutni"; args[2] = "svete";
Zbogom okrutni svete!
java Poruka -d tugo
args main() args[0] = "-d"; args[1] = "tugo";
Dobar dan tugo!
for-each
for-each
for for-each for-each [] for-each ! for (bazni-tip element : niz) { . . // rad sa aktuelnim elementom niza . }
" # element
# for-each $ element # % for-each & for ! for (int i = 0; i < niz.length; i++) { bazni-tip element = niz[i]; . . // rad sa aktuelnim elementom niza . }
' a int[] for-each ! for (int e : a) { System.out.println( e ); }
( a & ! int zbir = 0; for (int e : a) { if ( e > 0) zbir = zbir + e; }
for-each for-each ! " # a ½ $ for (int e : a) { e = 17; }
% e a # e & #
' () System.out.printf() &
*+
" System.out.printf() String
# # # , # - prosek double prosek(1, 2, 3, 4) prosek(1.41, Math.PI, 2.3) prosek(Math.sqrt(3)) prosek() %
prosek
public static double prosek (double... broj)
double
broj
broj
broj double[] prosek
broj double[] broj.length broj[0] broj[1] ! prosek public static double prosek (double... broj) { double zbir = 0; for (int i = 0; i < broj.length; i++) zbir = zbir + broj[i]; return zbir / broj.length; }
" for-each # public static double prosek (double... broj) { double zbir = 0; for (double e : broj) zbir = zbir + e; return zbir / broj.length; }
$
% T
! T[] & '
( )
ocene double[] prosek(ocene) Arrays
Arrays java.util
String toString(tip[] a) ! a " # a tip[] copyOf(tip[] a, int d) ! a d $ d a.length %
% false d a tip[] copyOfRange(tip[] a, int od, int do) ! a od do & od a
do
$ do a.length %
% false void sort(tip[] a) ! a int binarnySearch(tip[] a, tip v) !
v a $ v ½ void fill(tip[] a, tip v) !
a v
true a b false tip sort binarnySearch boolean boolean equals(tip[] a, tip[] b)
Arrays ! "# $ n k
% broj & ' ( m
) m broj * Math.random() * broj * broj m ! k broj ) broj n - k kombinacija Arrays
import java.util.*; public class Loto { public static void main (String[] args) { final int n = 39; final int k = 7;
// dužina niza svih brojeva // dužina izvuˇ cene kombinacije
// Inicijalizacija niza brojevima 1, 2, ..., n int[] broj = new int[n]; for (int i = 0; i < n; i++) broj[i] = i + 1; int m;
// granica levog i desnog dela niza
// Izvlaˇ cenje k brojeva i premeštanje u desni deo niza for (m = n-1; m > n-k-1; m--) { // Generisanje sluˇ cajnog indeksa levog dela niza int i = (int) (Math.random() * (m+1)); // Me¯ dusobna zamena sluˇ cajnog elementa i poslednjeg // elementa levog dela niza int b = broj[i]; broj[i] = broj[m]; broj[m] = b; } // Kopiranje izvuˇ cenih brojeva u novi niz int[] kombinacija = Arrays.copyOfRange(broj, m+1, n); // Sortiranje novog niza Arrays.sort(kombinacija); // Prikazivanje izvuˇ cenih brojeva u rastu´ cem redosledu System.out.println("Dobitna kombinacija je: "); for (int b : kombinacija) System.out.print(b + " "); System.out.println();
} }
! int[] int[][] " # ! $ int[][][] " ! % & %
' " ! ( int[][] a;
a $ int[][] ) new !
( a = new int[3][4];
$ " a ) ( int[][] a = new int[3][4];
) a * + ,
a[i][j]
a
a[0][0]
a[0][1]
a[0][2]
a[0][3]
a[1][0]
a[1][1]
a[1][2]
a[1][3]
a[2][0]
a[2][1]
a[2][2]
a[2][3]
!
a
"
#
a
new int[3][4]
$
a a[0][0]
a[0][1]
a[0][2]
a[0][3]
a[1][0]
a[1][1]
a[1][2]
a[1][3]
a[2][0]
a[2][1]
a[2][2]
a[2][3]
a[0] a[1] a[2]
a
% & %
'
int[]
a[0] a[1]
a[2]
#
(
int[]
a.length a a[0].length a[1].length a[2].length
! " # new $ % & int[][] a = new int[][] { { 1, -1, 0, 0}, {10, 17, -2, -3}, { 0, 1, 2, 3} };
' (! " ! # for ( ( % b& double[][] b = new double[10][10];
½ ¼ ! & for (int i = 0; i < b.length; i++) {
// za svaki red // u tabeli for (int j = 0; j < b[i].length; j++) { // i za svaku kolonu // u aktuelnom redu if (i == j) // da li je element na glavnoj dijagonali? b[i][j] = 1;
else b[i][j] = 0; } }
b double zbir = 0; for (int i = 0; i < b.length; i++) for (int j = 0; j < b[i].length; j++) zbir = zbir + b[i][j];
b for-each double zbir = 0; for (double[] red : b) for (double e : red) zbir = zbir + e;
!"# ½ $ $ % & $ $ & $ profit double[][] profit = new double[10][12];
' & profit $ & $ (& & profit[5][2] $ )*& profit[i][j] $ $ + $ $ $ , - profit[i]& profit& $ $ $
profit public double godišnjiProfit() { double ukupniProfit = 0; for (int i = 0; i < 10; i++) for (int j = 0; j < 12; j++) ukupniProfit += profit[i][j]; return ukupniProfit; }
! private double profitZaMesec(int m) { double meseˇ cniProfit = 0; for (int i = 0; i < 10; i++) meseˇ cniProfit += profit[i][m]; return meseˇ cniProfit; }
" ! public void prikažiProfitPoMesecima() { if (profit == null) { System.out.println("Greška: podaci nisu uneseni!"); return; } System.out.println("Ukupni profit prodavnica po mesecima:"); for (int m = 0; m < 12; m++) System.out.printf("%6.2f", profitZaMesec(m)); System.out.println(); }
# ! $
public void prikažiProfitPoProdavnicama() { if (profit == null) { System.out.println("Greška: podaci nisu uneseni!"); return; } double[] profitProdavnice = new double[n]; for (int i = 0; i < 10; i++) for (int j = 0; j < 12; j++) profitProdavnice[i] += profit[i][j]; System.out.println("Ukupni profit firme po prodavnicama:"); for (int i = 0; i < 10; i++) { System.out.print("Prodavnica " + i + ": "); System.out.printf("%7.2f", profitProdavnice[i]); System.out.println(); } } !"#
$
profit
Firma
n
%
Firma
$
&
' (
import java.util.*; public class Firma { private int n; private double[][] profit; // Konstruktor
// broj prodavnica firme // tabela profita firme
public Firma(int n) { this.n = n; } // Geter metod za polje profit public double[][] getProfit() { return profit; } public void unesiProfit() { profit = new double[n][12]; Scanner tastatura = new Scanner(System.in); for (int i = 0; i < n; i++) for (int j = 0; j < 12; j++) { System.out.print("Unesite profit prodavnice " + i); System.out.print(" za mesec " + j + ": "); profit[i][j] = tastatura.nextDouble(); } } public void prikažiProfit() { if (profit == null) { System.out.println("Greška: podaci nisu uneseni!"); return; } System.out.print("Tabela profita "); System.out.println("po prodavnicama i mesecima:"); for (int i = 0; i < n; i++) { for (int j = 0; j < 12; j++) System.out.printf("%6.2f", profit[i][j]); System.out.println(); } } public double godišnjiProfit() { double ukupniProfit = 0; for (int i = 0; i < n; i++)
for (int j = 0; j < 12; j++) ukupniProfit += profit[i][j]; return ukupniProfit; } private double profitZaMesec(int m) { double meseˇ cniProfit = 0; for (int i = 0; i < n; i++) meseˇ cniProfit += profit[i][m]; return meseˇ cniProfit; } public void prikažiProfitPoMesecima() { if (profit == null) { System.out.println("Greška: podaci nisu uneseni!"); return; } System.out.println("Ukupni profit prodavnica po mesecima:"); for (int m = 0; m < 12; m++) System.out.printf("%6.2f", profitZaMesec(m)); System.out.println(); } public void prikažiProfitPoProdavnicama() { if (profit == null) { System.out.println("Greška: podaci nisu uneseni!"); return; } double[] profitProdavnice = new double[n]; for (int i = 0; i < n; i++) for (int j = 0; j < 12; j++) profitProdavnice[i] += profit[i][j]; System.out.println("Ukupni profit firme po prodavnicama:"); for (int i = 0; i < n; i++) { System.out.print("Prodavnica " + i + ": "); System.out.printf("%7.2f", profitProdavnice[i]); System.out.println();
} } }
import java.util.*; public class ProfitFirme { public static void main(String[] args) { System.out.print("Program za rad sa tabelom profita "); System.out.print("koji je ostvarilo 10 prodavnica "); System.out.println("firme za 12 meseci."); System.out.println(); Firma abc = new Firma(10); // firma sa 10 prodavnica Scanner tastatura = new Scanner(System.in); int brojOpcije; do { prikažiMeni(); brojOpcije = tastatura.nextInt(); switch (brojOpcije) { case 1: abc.unesiProfit(); break; case 2: abc.prikažiProfit(); break; case 3: if (abc.getProfit() == null) System.out.println( "Greška: podaci nisu uneseni!"); else { System.out.print(
"Ukupni godišnji profit firme:"); System.out.printf( "%8.2f", abc.godišnjiProfit()); System.out.println(); } break; case 4: abc.prikažiProfitPoMesecima(); break; case 5: abc.prikažiProfitPoProdavnicama(); break; case 0: System.out.println("Kraj programa ..."); break; default: System.out.println("Greška: pogrešna opcija!"); } } while (brojOpcije != 0); } private static void prikažiMeni() { System.out.println(); System.out.println("Izaberite jednu od ovih opcija:"); System.out.println(" 1. Unos tabele profita"); System.out.println(" 2. Prikaz tabele profita"); System.out.println(" 3. Prikaz ukupnog godišnjeg profita"); System.out.println(" 4. Prikaz profita po mesecima"); System.out.println(" 5. Prikaz profita po prodavnicama"); System.out.println(" 0. Kraj rada"); System.out.print("Unesite broj opcije: "); }
}
String[] ! " #
! $ Igraˇc
listaIgraˇca Igraˇc[] % ! ! brojIgraˇ ca ! % " ! ½¼ & ' Igraˇ c[] listaIgraˇ ca = new Igraˇ c[10]; // mogu´ ce do 10 igraˇ ca int brojIgraˇ ca = 0; // na poˇ cetku, broj igraˇ ca je 0
" ( & & )* brojIgraˇ ca
¼
listaIgraˇ ca
listaIgraˇ ca[0] listaIgraˇ ca[1] listaIgraˇ ca[2]
% listaIgraˇca
listaIgraˇ ca[9]
brojIgraˇ ca
+ ( ! "
brojIgraˇca % ' listaIgraˇ ca[0], listaIgraˇ ca[1], ... , listaIgraˇ ca[brojIgraˇ ca - 1]
brojIgraˇca brojIgraˇca listaIgraˇca noviIgraˇc listaIgraˇ ca ! listaIgraˇ ca[brojIgraˇ ca] = noviIgraˇ c; brojIgraˇ ca++;
// novi igraˇ c ide u prvi // slobodni element niza // aktuelni broj igraˇ ca je ve´ ci za 1
" # listaIgraˇca $ brojIgraˇca ! listaIgraˇ ca[k] = listaIgraˇ ca[brojIgraˇ ca - 1]; brojIgraˇ ca--;
% listaIgraˇca # ¼ brojIgraˇca - 1 & brojIgraˇca $ · ½ ' ´ · ½µ ´ · ¾µ ´ · ½µ (
! for (int i = k+1; i < brojIgraˇ ca; i++) listaIgraˇ ca[i - 1] = listaIgraˇ ca[i]; brojIgraˇ ca--;
) * + ,
+ ½¼ listaIgraˇca $ - .
! " listaIgraˇca ½¼ # // Registrovanje novog igraˇ ca kada je niz listaIgraˇ ca popunjen if (brojIgraˇ ca == listaIgraˇ ca.length) { int novaDužina = 2 * listaIgraˇ ca.length; Igraˇ c[] noviNiz = Arrays.copyOf(listaIgraˇ ca, novaDužina); listaIgraˇ ca = noviNiz; } // Dodavanje novog igraˇ ca u stari ili novi niz listaIgraˇ ca[brojIgraˇ ca] = noviIgraˇ c; brojIgraˇ ca++;
listaIgraˇca $
if % listaIgraˇca[brojIgraˇca] & listaIgraˇca
! " ArrayList java.util # ArrayList $ % &
¼
ArrayList ' ! ( % ArrayList ) ¼ size() - 1 *! new ArrayList()
add(elem) ( elem % +
a % a.length a[a.length]=elem get(n) ( % ¼ size() - 1 +
a a[n] set(n, elem) ( elem % ¼ size() - 1 + size()
a a[n]=elem remove(elem) elem
¼ size() - 1
remove(n)
indexOf(elem)
elem
½ ca ! listaIgraˇ " ArrayList listaIgraˇ ca = new ArrayList();
"
listaIgraˇ ca.add(noviIgraˇ c );
remove()" listaIgraˇ ca.remove(k);
iskljuˇ cenIgraˇ c Igraˇ c " listaIgraˇ ca.remove(iskljuˇ cenIgraˇ c );
# ArrayList $ get(n) % ArrayList() Object[] Object & Object ' Object
Object ! "# get() Object $ listaIgraˇca Igraˇ c ! get() % Igraˇ c pacer = (Igraˇ c)listaIgraˇ ca.get(n);
& Igraˇc odigrajPotez() % for (int i = 0; i < listaIgraˇ ca.size(); i++) { Igraˇ c slede´ ciIgraˇ c = (Igraˇ c)listaIgraˇ ca.get(i); slede´ ciIgraˇ c .odigrajPotez(); }
% ((Igraˇ c)listaIgraˇ ca.get(i)).odigrajPotez();
' $ $ listaIgraˇca Igraˇc odigrajPotez() ( (Igraˇ c)listaIgraˇ ca.get(i) ) * + $
* ,- . # # & ArrayList Object ArrayList T /T 0 . ArrayList T & %
ArrayList listaIgraˇ ca = new ArrayList();
listaIgraˇca ArrayList Igraˇc
listaIgraˇca ArrayList ! listaIgraˇ ca.add(noviIgraˇ c );
listaIgraˇ ca.remove(iskljuˇ cenIgraˇ c );
" # $
noviIgraˇc iskljuˇcenIgraˇc Igraˇ c %
listaIgraˇca Igraˇc
& ! Igraˇ c pacer = listaIgraˇ ca.get(n);
" ArrayList
! & # &
ArrayList '$ ( )* + & ArrayList
Double , Double double ArrayList double ! double x; ArrayList nizBrojeva = new ArrayList();
x nizBrojeva add() nizBrojeva.add( new Double(x) );
nizBrojeva.add( x );
public class TelStavka { String ime; // ime osobe String telBroj; // tel. broj osobe }
ArrayList ! TelImenik ! na¯ diBroj() dodajStavku() " # $ % ukloniStavku() $ &
import java.util.*;
'
class TelImenik { private ArrayList imenik;
// niz stavki
// Konstruktor klase konstruiše prazan imenik public TelImenik() { imenik = new ArrayList(); } private int na¯ diStavku(String imeOsobe) { for (int i = 0; i < imenik.size(); i++) { TelStavka s = imenik.get(i); // Da li i-ta osoba ima dato ime? if (s.ime.equals(imeOsobe)) return i; // i-ta osoba ima dato ime } return -1; // nema osobe sa datim imenom } public String na¯ diBroj(String imeOsobe) { int i = na¯ diStavku(imeOsobe); if (i >= 0) // osoba se nalazi u imeniku? // Ako da, vratiti njegov tel. broj return imenik.get(i).telBroj; else // Ako ne, vratiti null referencu return null; } public void dodajStavku(String imeOsobe, String brojOsobe) { if (imeOsobe == null || brojOsobe == null) { System.out.println("Greška: prazno ime ili broj!"); return; } int i = na¯ diStavku(imeOsobe); if (i >= 0) // osoba se nalazi u imeniku? // Ako da, zameniti stari broj novim brojem imenik.get(i).telBroj = brojOsobe; else {
// Ako ne, dodati novu stavku ime/broj u imenik TelStavka s = new TelStavka(); s.ime = imeOsobe; s.telBroj = brojOsobe; imenik.add(s); } } public void ukloniStavku(String imeOsobe) { int i = na¯ diStavku(imeOsobe); if (i >= 0) // osoba se nalazi u imeniku? // Ako da, ukloniti ga imenik.remove(i); }
}
na¯diStavku()
na¯diStavku()
TelImenik TelImenik
!
"
# TelImenik
$ public static void main(String[] args) { TelImenik mojImenik = new TelImenik(); mojImenik.dodajStavku("Pera", null); mojImenik.dodajStavku("Pera", "111-1111"); mojImenik.dodajStavku("Žika", "222-2222"); mojImenik.dodajStavku("Laza", "333-3333"); mojImenik.dodajStavku("Mira", "444-4444"); System.out.println("Laza: " + mojImenik.na¯ diBroj("Laza")); mojImenik.dodajStavku("Laza", "999-9999"); System.out.println("Laza: " + mojImenik.na¯ diBroj("Laza")); System.out.println("Pera: " + mojImenik.na¯ diBroj("Pera")); mojImenik.ukloniStavku("Žika");
System.out.println("Žika: " + mojImenik.na¯ diBroj("Žika")); System.out.println("Mira: " + mojImenik.na¯ diBroj("Mira")); }
8
! " # $##%&
" '
"
" ( " % " # ##%
))*
!"#
$ % $
&
' # # $
( $ # # # # & & ' #
$ # & $
%
) $ $ (
modifikatori class ime-nove-klase extends ime-stare-klase { . . // Izmene ili dopune postoje´ ce klase . } ' $# ime-nove-klase #
ime-stare-klasa % &
$
* $# & $ extends
+ # B & A (
class B extends A { . . // Novi ˇ clanovi klase ili izmene . // postoje´ cih ˇ clanova klase A . } , & $ $ - $
Radnik
public class Radnik { String ime; long jmbg; long raˇ cun; double plata;
// // // //
ime i prezime radnika jedinstven broj radnika bankovni raˇ cun radnika plata radnika
public void uplatiPlatu() { System.out.print("Plata za " + ime + ", broj " + jmbg); System.out.println(" upla´ cena na raˇ cun " + raˇ cun); } public double izraˇ cunajPlatu() { // Obraˇ cunavanje meseˇ cne plate radnika } }
Radnik
!
"
"
#
$
#
pla´ cenPoSatu
Radnik
%
public double izraˇ cunajPlatu() { if (pla´ cenPoSatu) // Obraˇ cunavanje plate radnika pla´ cenog po satu } else { // Obraˇ cunavanje plate radnika sa fiksnom zaradom
} }
! " tipRadnika # ¼ ½ ¾ $ ! ! % public double izraˇ cunajPlatu() switch (tipRadnika) { 0 : // Obraˇ cunavanje plate break; 1 : // Obraˇ cunavanje plate break; 2 : // Obraˇ cunavanje plate break; } }
{
radnika sa fiksnom zaradom
radnika pla´ cenog po satu
radnika pla´ cenog po danu
# ! & Radnik ' ( ! # ) % public class RadnikPla´ cenFiksno { String ime; long jmbg;
// ime i prezime radnika // jedinstven broj radnika
long raˇ cun; double plata;
// bankovni raˇ cun radnika // meseˇ cna plata radnika
public void uplatiPlatu() { System.out.print("Plata za " + ime + ", broj " + jmbg); System.out.println(" upla´ cena na raˇ cun " + raˇ cun); } public double izraˇ cunajPlatu() { return plata; } } public class RadnikPla´ cenPoSatu { String ime; long jmbg; long raˇ cun; double brojSati; double cenaSata;
// // // // //
ime i prezime radnika jedinstven broj radnika bankovni raˇ cun radnika broj radnih sati radnika iznos za jedan radni sat
public void uplatiPlatu() { System.out.print("Plata za " + ime + ", broj " + jmbg); System.out.println(" upla´ cena na raˇ cun " + raˇ cun); } public double izraˇ cunajPlatu() { return brojSati * cenaSata; } }
! " # $
public class Radnik { String ime; long jmbg; long raˇ cun;
// ime i prezime radnika // jedinstven broj radnika // bankovni raˇ cun radnika
public void uplatiPlatu() { System.out.print("Plata za " + ime + ", broj " + jmbg); System.out.println(" upla´ cena na raˇ cun " + raˇ cun); } } public class RadnikPla´ cenFiksno extends Radnik { double plata;
// meseˇ cna plata radnika
public double izraˇ cunajPlatu() { return plata; } } public class RadnikPla´ cenPoSatu extends Radnik { double brojSati; double cenaSata;
// broj radnih sati radnika // iznos za jedan radni sat
public double izraˇ cunajPlatu() { return brojSati * cenaSata; } }
izraˇ cunajPlatu() Radnik !
"
!
RadnikPla´ cenFiksno RadnikPla´ cenPoSatu
Radnik
"
Radnik
%
Date$
%
Date
Date #
Radnik
!
Date
"
%
#
% &
"
(
&
)
* +
&
' &
&
"
A
A A
& * +
B C
D
&
D
* + #
E
E
,
- . %
D
E
/
A
C
B
D
E
Osoba Vozilo Vozilo !" Vozilo
Putniˇ ckoVozilo
Auto
Motocikl
TeretnoVozilo
Kamion
# Vozilo
$ %
public class Vozilo { Osoba vlasnik; int brojMotora; String brojTablice; . . . public void promeniVlasnika(Osoba noviVlasnik) { . . . } . . . }
public class Putniˇ ckoVozilo extends Vozilo { int brojVrata; Color boja; . . . } public class TeretnoVozilo extends Vozilo { int brojOsovina; . . . } public class Auto extends Putniˇ ckoVozilo { int brojSedišta; . . . } public class Motocikl extends Putniˇ ckoVozilo { boolean sedišteSaStrane; . . . } public class Kamion extends TeretnoVozilo { int nosivost;
. . . }
bmw Auto
Auto bmw = new Auto();
bmw brojSedišta brojVrata boja vlasnik brojMotora brojTablice
promeniVlasnika º º º
Auto bmw
brojSedišta Auto bmw ! bmw.brojSedišta = 2;
" Auto # PutniˇckoVozilo Auto bmw ! PutniˇckoVozilo $ bmw brojVrata boja % & PutniˇckoVozilo ' System.out.println(bmw.brojVrata + bmw.boja);
' PutniˇckoVozilo # Vozilo PutniˇckoVozilo ( Auto) ! & Vozilo #
bmw.vlasnik
bmw.brojMotora
bmw.brojTablice
bmw.promeniVlasnika()
Auto Putniˇ ckoVozilo Vozilo Auto ! PutniˇckoVozilo Vozilo " bmw # $ % A x A & A ' x & ( ) ' A
" $ * + " $ ' + Vozilo & Auto Putniˇ ckoVozilo Vozilo , * Vozilo mojeVozilo; mojeVozilo = bmw;
"* Vozilo mojeVozilo = bmw;
* Vozilo mojeVozilo = new Auto();
mojeVozilo Vozilo Auto Vozilo instanceof ime-promenljive instanceof ime-klase
! " ime-klase# instanceof true$ # false % # if (mojeVozilo instanceof Auto) ...
mojeVozilo Auto & instanceof# # ' # # " # ( ) # ( % # bmw = mojeVozilo;
# mojeVozilo " % # mojeVozilo Kamion# bmw Kamion ! bmw.brojSedišta#
# bmw brojSedišta# ( " Kamion ) int short# int "
short Vozilo Auto
mojeVozilo Auto bmw = (Auto)mojeVozilo;
((Auto)mojeVozilo).brojSedišta = 4;
! mojeVozilo Kamion (Auto)mojeVozilo "
instanceof # if (mojeVozilo instanceof Auto) ((Auto)mojeVozilo).brojSedišta = 4; else if (mojeVozilo instanceof Motocikl) ((Motocikl)mojeVozilo).sedišteSaStrane = false; else if (mojeVozilo instanceof Kamion) ((Kamion)mojeVozilo).nosivost = 2;
$ Vozilo $ % % !
& ' ( $ private public % ) $ protected * protected + ),
! protected " boja PutniˇckoVozilo # $ % & PutniˇckoVozilo $ boja $ ' protected PutniˇckoVozilo "
( ) $ $ $ % * * & $
super + $ $ # * $ * * " * $ $ * )
super
! super" super.zaklonjen-ˇ clan
# ! super $ super.x ! x % ! " $ ! &
'
! ! super ( Dete Uˇ cenik" Dete Uˇcenik ) ) ( Uˇcenik Dete " public class Dete { private String ime; private int uzrast; // Konstruktor
public Dete(String ime, int uzrast) { this.ime = ime; this.uzrast = uzrast; } // Metod prikaži() public void prikaži() { System.out.println(); System.out.println("Ime: " + ime); System.out.println("Uzrast: " + uzrast); }
} public class Uˇ cenik extends Dete { private String škola; private int razred; // Konstruktor public Uˇ cenik(String ime, int uzrast, String škola, int razred){ super(ime, uzrast); this.škola = škola; this.razred = razred; System.out.println("Konstruisan uˇ cenik ... "); prikaži(); } // Metod prikaži() public void prikaži() { super.prikaži(); System.out.println("Škola: " + škola); System.out.println("Razred: " + razred); } }
Dete ime uzrast prikaži()
Uˇcenik škola razred prikaži()
super
prikaži() Uˇcenik Dete Uˇcenik
prikaži() Uˇcenik Uˇcenik prikaži() Uˇcenik ime uzrast Dete ! " super.prikaži();
prikaži() Uˇcenik prikaži() Dete # ime uzrast
! $ % & " Uˇ cenik u = new Uˇ cenik("Laza Lazi´ c", 16, "gimnazija", 2);
' & " Konstruisan uˇ cenik ... Ime: Uzrast: Škola: Razred:
Laza Lazi´ c 16 gimnazija 2
( % % prikaži() Uˇ cenik Dete super prikaži() ) prikaži() Uˇ cenik & # super % $ & * & ' * & + super % * & + ! prikaži()
prikaži() super ime uzrast Dete prikaži() Uˇcenik super prikaži() Uˇcenik Dete
! " # final $ public final void nekiMetod() {...}
% &' final # ( )
* final # * # final final # $ public final class NekaKlasa {...}
% final final final final + final ! final # # final *
System String # final , # final !
super
final
! " # $% ! super &
' % super ( super( lista-argumenata )
) Uˇ cenik Dete ime uzrast Uˇ cenik( super(ime, uzrast);
& super $
new this super super() ! ! super ! ! this ! !
!
! Object
" # $
# % & ! Object & ' Object # !
(
Object
Object Object extends ! public class NekaKlasa { ... }
! public class NekaKlasa extends Object { ... }
" Object Object # $ %& ' Object ( Object ' ArrayList )* + Object ' $ ' #, & $ & Object - ' ' % ' ' & equals
. equals() & / o1 o2 Object Object o1.equals(o2) o1 == o2 $ Object , $ & '
Dete Dete equals() public boolean equals(Object obj) { if (obj == null || !(obj instanceof Dete)) return false; Dete drugoDete = (Dete)obj; // Konverzija tipa obj u Dete if (this.ime == drugoDete.ime && this.uzrast == drugoDete.uzrast) // Drugo dete ima isto ime i uzrast kao ovo dete, // pa se podrazumeva da su jednaki objekti-deca. return true; else return false; }
equals() String String String ime = "Pera"; . . . if (ime.equals(korisniˇ ckoIme)) login(korisniˇ ckoIme); . . .
! if (ime == korisniˇ ckoIme)
// Pogrešno!
! if String " hashCode
# hashCode() ! $ % & '& (" ) '
Object
HashTable HashMap HashSet hashCode() Object ! equals() Object " equals() hashCode() # hashCode() $ Object %
toString & toString() String
" toString() $ toString()
' toString() ( Object ) @ % mojeDete Dete * mojeDete.toString()
"Dete@163b91" ) ( toString() ! + % Dete ! * public String toString() { return ime + " (" + uzrast + ")"; }
mojeDete Dete mojeDete Dete mojeDete = new Dete("Aca", 10); System.out.print("Moj mali je " + mojeDete); System.out.println(", ljubi ga majka.");
Moj mali je Aca (10), ljubi ga majka.
clone
clone()
! " #
$ % &
' ( #
)
clone() Object $ *
%
$ + , #
+ ' + -* . / 0 1 2 + 2 +
*
! " # $ % A & B m ' ( public class A { public void m() { System.out.println("m()"); } } public class B extends A { public void m(int x) { System.out.println("m(int x)"); } public void m(String y) { System.out.println("m(String y)"); } }
A m() ) B ! ! ( m(int x)
m(String y)
% m * B( B b = new B(); b.m(); b.m(17); b.m("niska");
m ! m() m(int x) m(String y)
" # $ %& ' ( # $ ) ! public class Ku´ cniLjubimac { public void koSamJa() { System.out.println("Ja sam ku´ cni ljubimac."); } } public class Pas extends Ku´ cniLjubimac { public void koSamJa() { System.out.println("Ja sam pas."); } } public class Maˇ cka extends Ku´ cniLjubimac { public void koSamJa() { System.out.println("Ja sam maˇ cka."); } }
" Ku´ cniLjubimac * koSamJa() Pas Maˇ cka (
ljubimac Ku´cniLjubimac koSamJa() ljubimac.koSamJa();
ljubimac Ku´cniLjubimac Pas Maˇcka koSamJa() ljubimac koSamJa() !
Ku´ cniLjubimac ljubimac1 = new Ku´ cniLjubimac(); Ku´ cniLjubimac ljubimac2 = new Pas(); Ku´ cniLjubimac ljubimac3 = new Maˇ cka(); ljubimac1.koSamJa(); ljubimac2.koSamJa(); ljubimac3.koSamJa();
Ja sam ku´ cni ljubimac. Ja sam pas. Ja sam maˇ cka.
"
ljubimac1 ljubimac2
ljubimac3 Ku´cniLjubimac # $ Ku´cniLjubimac ! % koSamJa()
Ku´cniLjubimac & % $ %
' ' % !
½¼¼¼¼¼
Ku´ cniLjubimac[] populacija = new Ku´ cniLjubimac[100000];
Pas
Maˇ cka
Ku´ cniLjubimac
for (Ku´ cniLjubimac ljubimac : populacija) { ljubimac.koSamJa(); }
public class Kanarinac extends Ku´ cniLjubimac { public void koSamJa() { System.out.println("Ja sam kanarinac."); } }
Kanarinac
populacija
9
! "# $% " & '
# ' & ( ) & & " & ) # ) ' & * " & +$,
! ! " #
$ ! # % ! & % # !
' ( " ) *
! ½ P L J Z + ) ! z , - . ) public enum GodišnjeDoba { PROLE´ CE, LETO, JESEN, ZIMA }
* GodišnjeDoba PROLE´CE LETO JESEN ZIMA " ! !
enum ime-tipa { lista-konstanti }
enum
! " #
$! % & ! ½ $ ! GodišnjeDoba '
'
GodišnjeDoba modnaSezona;
" modnaSezona GodišnjeDoba null ( modnaSezona
GodišnjeDoba ' modnaSezona = GodišnjeDoba.LETO;
"
' if (modnaSezona == GodišnjeDoba.LETO) System.out.println("Krpice za jun, jul i avgust."); else System.out.println(modnaSezona);
) ! if equals() == $ GodišnjeDoba GodišnjeDoba.java ½
println
!
GodišnjeDoba.
public final static
"
#
$
#
%
$
#
# &
public enum GodišnjeDoba { PROLE´ CE(’P’), LETO(’L’), JESEN(’J’), ZIMA(’Z’); private char skra´ cenica;
// polje
private GodišnjeDoba(char skra´ cenica) { // konstruktor this.skra´ cenica = skra´ cenica; } public char getSkra´ cenica() { return skra´ cenica; }
// geter metod
} '
toString()
(
Enum
Enum
&
modnaSezona = GodišnjeDoba.LETO; System.out.println(modnaSezona);
println modnaSezona.toString() "LETO"
toString() Enum valueOf() static Enum valueOf(Class nabrojiviTip, String ime)
valueOf()
Scanner tastatura = new Scanner(System.in); System.out.print("Unesite godišnje doba: "); String g = tastatura.nextLine(); modnaSezona = (GodišnjeDoba) Enum.valueOf( GodišnjeDoba.class, g.toUpperCase());
! " zima modnaSezona GodišnjeDoba.ZIMA
ordinal() Enum # $ GodišnjeDoba.PROLE´CE.ordinal() int ¼ GodišnjeDoba.LETO.ordinal() int ½ values() # gd GodišnjeDoba.PROLE´CE GodišnjeDoba.LETO GodišnjeDoba.JESEN GodišnjeDoba.ZIMA % GodišnjeDoba[] gd = GodišnjeDoba.values();
values() for-each " enum Dan { PONEDELJAK, UTORAK, SREDA, ˇ CETVRTAK, PETAK, SUBOTA, NEDELJA}; for (Dan d : Dan.values()) {
System.out.print(d); System.out.print(" je dan pod rednim brojem "); System.out.println(d.ordinal()); }
PONEDELJAK je dan pod rednim brojem 0 UTORAK je dan pod rednim brojem 1 SREDA je dan pod rednim brojem 2 ˇ CETVRTAK je dan pod rednim brojem 3 PETAK je dan pod rednim brojem 4 SUBOTA je dan pod rednim brojem 5 NEDELJA je dan pod rednim brojem 6
switch switch case switch (modnaSezona) { case PROLE´ CE: // pogrešno je System.out.println("Krpice break; case LETO: System.out.println("Krpice break; case JESEN: System.out.println("Krpice break; case ZIMA: System.out.println("Krpice break; }
´ GodišnjeDoba.PROLECE za mart, april i maj.");
za jun, jul i avgust.");
za sept., okt. i nov.");
za dec., jan. i feb.");
!
Trougao Pravougaonik
Krug
!
" # GeomOblik
$
% # GeomOblik
GeomOblik
Trougao
Pravougaonik
Krug
&
' GeomOblik ( !
( ! )¾
public class GeomOblik {
¾
Color
java.awt
private Color boja; public void oboji(Color novaBoja) { boja = novaBoja; nacrtaj(); } public void nacrtaj() { . . // Naredbe za crtanje geometrijskog oblika . } // Ostala polja i metodi . . . }
nacrtaj() GeomOblik oboji() nacrtaj() nacrtaj() GeomOblik public class Trougao extends GeomOblik { public void nacrtaj() { . . // Naredbe za crtanje trougla . } // Ostala polja i metodi . . . } public class Pravougaonik extends GeomOblik { public void nacrtaj() { .
. // Naredbe za crtanje pravougaonika . } // Ostala polja i metodi . . . } public class Krug extends GeomOblik { public void nacrtaj() { . . // Naredbe za crtanje kruga . } // Ostala polja i metodi . . . }
oblik
GeomOblik GeomOblik oblik;
Trougao Pravougaonik Krug oblik oblik.nacrtaj();
nacrtaj()
oblik ! oblik " # nacrtaj() $
nacrtaj()
GeomOblik
nacrtaj() GeomOblik GeomOblik nacrtaj() GeomOblik GeomOblik ! nacrtaj() " GeomOblik
# oblik GeomOblik oblik.nacrtaj();
$ % & GeomOblik oblik " nacrtaj()
% nacrtaj() GeomOblik
' (
GeomOblik ) GeomOblik * oblik+ ' % GeomOblik , GeomOblik " % . " # # # , " / " 0 - nacrtaj() GeomOblik " % / %
GeomOblik GeomOblik GeomOblik
nacrtaj() nacrtaj() GeomOblik
GeomOblik nacrtaj()
GeomOblik GeomOblik nacrtaj()
!
abstract "
! GeomOblik # $
public abstract class GeomOblik { private Color boja; public void oboji(Color novaBoja) { boja = novaBoja; nacrtaj(); } public abstract void nacrtaj();
// apstraktni metod
// Ostala polja i metodi . . . } % &
' GeomOblik boja oboji() new $
new GeomOblik()
new
!
super
" #
!
$ "
% &
GeomOblik oblik = new Pravougaonik(); ' (! )
* "
%
! % % % " $ ! + , !
abstract
* + "
-..
+ ! + %
/ +
/ + /
#"
" !
+ " ! 0 1 ( 2)
2 2
! " interface # $ % & ' " ! static final ' ( " ) & ' % ! $ $ $ # ! * sort() Arrays " + Comparable , ! ) $ + public interface Comparable { int compareTo(Object o); }
- ) ! ) class interface ) . & ' ) public # ) Comparable ) compareTo() Object int ( " + x.compareTo(y) compareTo() x y $ $ x y x $ y
implements public class Radnik implements Comparable { String ime; double plata;
// ime i prezime radnika // plata radnika
// Ostala polja i metodi . . . public int compareTo(Object o) { Radnik drugiRadnik = (Radnik) o; if (this.plata < drugiRadnik.plata) return -1; if (this.plata > drugiRadnik.plata) return +1; return 0; } }
! compareTo() Radnik " # $% compareTo() & ' " public Comparable ( Radnik " Comparable % Radnik ) Radnik[] spisakRadnika = new Radnik[500]; . . . Arrays.sort(spisakRadnika);
Radnik Comparable
!
.java " .class # ! " $ " ! % new Comparable()
$&" ' ( & " &" ' ) % Comparable x;
// OK
* + Radnik Comparable %
Comparable x = new Radnik();
// OK
instanceof if (nekiObjekat instanceof Comparable) . . .
!! " # $! !!
! !! % !! & public interface Radio { void ukljuˇ ci(); void iskljuˇ ci(); } public interface Klasiˇ canRadio extends Radio { void izaberiStanicu(); } public interface InternetRadio extends Radio { void izaberiSajt(); }
' ( extends )
& public interface Klasiˇ canRadio extends Radio { double B92 = 92.5; double STUDIO_B = 99.1; void izaberiStanicu(); }
* public public static final
Cloneable ! " clone() Object # ! $ ! ! Cloneable
Comparable % public class Radnik implements Cloneable, Comparable { ... }
Radnik clone()
compareTo()
& " !
# Comparable ! ! ' % abstract class Comparable { // Zašto ne? public abstract int compareTo(Object o); }
( ! Radnik
compareTo()% public class Radnik extends Comparable { // Zašto ne? String ime; double plata;
// ime i prezime radnika // plata radnika
// Ostala polja i metodi . . . public int compareTo(Object o) { Radnik drugiRadnik = (Radnik) o;
if (this.plata < drugiRadnik.plata) return -1; if (this.plata > drugiRadnik.plata) return +1; return 0; } }
Radnik
Osoba Radnik public class Radnik extends Osoba, Comparable
// GREŠKA
! " # public class Radnik extends Osoba implements Comparable
// OK
$ % % & ' ( ) ( * + , + " %# )
- . % / % 0
¿
! " static ! class SpoljašnjaKlasa { // Ostala polja i metodi . . . static class Statiˇ ckaUgnjež¯ denaKlasa { . . . } class ObjektnaUgnjež¯ denaKlasa { . . . } }
# $ public private protected % $ public & ' % ( & " ( ) $ $
! ¿
static
! " # ! ! $ KoordSistem ! % KoordSistem Duž $ & public class KoordSistem { // Ostali ˇ clanovi klase KoordSistem . . . public static class Duž { // Predstavlja duž u ravni od // taˇ cke (x1,y1) do taˇ cke (x2,y2) double x1, y1; double x2, y2; } }
' Duž KoordSistem new Duž() ( KoordSistem new KoordSistem.Duž() ' KoordSistem ( Duž !
KoordSistem static
KoordSistem$Duž.class
KoordSistem
KoordSistem.class
!
"
#
static
# $ %
& '
"
(
)
!
* !
promenljiva.ObjektnaUgnjež¯ denaKlasa
this
! public class Tabli´ c { private Karta[] špil;
ca // špil karata za this igru tabli´
private class Igraˇ c { . . . }
ca // jedan igraˇ c this igre tabli´
// Ostali ˇ clanovi klase Tabli´ c . . . }
" igra Tabli´c
igra # #
Igraˇc Tabli´c
new Igraˇc() $" Tabli´ c igra.new Igraˇ c()%
Igraˇc špil Tabli´c & ' ( Igraˇc ) Igraˇc
Igraˇc )
! " # " # " $ % & # .this %
'
% public private protected static ' final ' #
final
! " # $ % & new '
new natklasa (lista-argmenata) { metodi-i-promenljive }
new interfejs () { metodi-i-konstante }
new
new
new
new
!
"
!
!
#
!
$
!
Object
!
"
# $ #
%
java.awt
Button
$
&
addMouseListener
#
addMouseListener
%' $
MouseListener
new
( #
addMouseListener
)
Button dugme = new Button("Pritisni me"); // dugme sa tekstom dugme.addMouseListener(new MouseListener() { // poˇ cetak tela // anonimne klase // Svi metodi interfejsa MouseListener se moraju definisati public void mouseClicked(MouseEvent e) { System.out.println("Kliknuto na dugme"); } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } }); // srednja zagrada i taˇ cka-zapeta završavaju poziv metoda!
! " # NekaKlasa NekaKlasa$1.class NekaKlasa$2.class
10
! " # $%&' $ !
( $ ) # " ' %
) #
# *
( " ' + # , - !
.//
!" #$ % & ' & ( )
*+
, -
.
%
)
!
/
&
.
%
java.awt
0# ! '
1
&
&
1
'
0#
' / * +
! javax.swing ! " #$ $% % " & $ ! % ' ! ( ( % ) * % +% * ) , % + -. / (
0% * !1 $ + ! 2 3 ! $ + 4,' 3 ! 3 ! $ " # + ! + % (* $ * /' + ! % JButton0 5 java.awt javax.swing% % ! *
!
" # $ JOptionPane showInputDialog() showMessageDialog() % ! &
' ! null ! ( JOptionPane ) import javax.swing.*; public class ZdravoGUI { public static void main(String[] args) { String ime = JOptionPane.showInputDialog(null, "Kako se zovete?", "Grafiˇ cki ulaz", JOptionPane.QUESTION_MESSAGE); String godine = JOptionPane.showInputDialog(null, "Koliko imate godina?", "Grafiˇ cki ulaz", JOptionPane.QUESTION_MESSAGE); int god = Integer.parseInt(godine); String poruka = "Zdravo " + ime + "!\n"; poruka += god + " su najlepše godine.";
JOptionPane.showMessageDialog(null, poruka, "Grafiˇ cki izlaz", JOptionPane.INFORMATION_MESSAGE); System.exit(0); } }
showInputDialog() parseInt() Integer
! " # $ $ % &
!
" "
!
# $ " "
" " " %&'
(
" & )* +
JFrame
#
JFrame
!
"
!
,- . ,- .
import javax.swing.*; public class PrazanOkvir { public static void main(String[] args) {
JFrame okvir = new JFrame("Prazan okvir"); okvir.setSize(300, 200); okvir.setLocation(100, 150); okvir.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); okvir.setVisible(true); } }
main() JFrame JFrame okvir = new JFrame("Prazan okvir");
JFrame ¼ ¼ ½ ! " # $ " # % JFrame $ setSize() setLocation() okvir.setSize(300, 200); okvir.setLocation(100, 150);
! ! & okvir.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
& ' ( $ )* ½
setVisible()
JFrame true okvir.setVisible(true);
main() ! " # System.exit() $ JFrame % %&' $( ) * * +* JFrame * ! * + JFrame * + * , setLocationByPlatform() true
* - !# , setBounds() - ! okvir.setSize(300, 200); okvir.setLocation(100, 150);
okvir.setBounds(100, 150, 300, 200);
, setTitle() , setResizable() ! ! , setIconImage() * , setLayout() !
!"# $% & ' ()* + ¾ Object
Component
Container
JComponent
Window
JPanel
Frame
JFrame
, !"#-$%
Component
Container ' !"#
¾
Container Component
! " JComponent #$ Container #$ JButton JLabel JComboBox JMenuBar #$ % #$ JFrame JPanel & ' ' JFrame Container Component ( & JPanel JComponent #$ ) * " ! ) * " ! + JComponent , #$ JComponent ' JButton JLabel JTextField JCheckBox JRadioButton JComboBox )& + -./0#$ * 1
// Dugme sa tekstom "OK" JButton dugmeOK = new JButton("OK"); // Oznaka sa tekstom "Unesite svoje ime: " JLabel oznakaIme = new JLabel("Unesite svoje ime: "); // Tekstualno polje sa tekstom "Ovde upišite svoje ime" JTextField tekstPoljeIme = new JTextField("Ovde upišite svoje ime"); // Polje za potvrdu sa tekstom "Student" JCheckBox potvrdaStudent = new JCheckBox("Student"); // Radio dugme sa tekstom "Zaposlen" JRadioButton radioDugmeZaposlen = new JRadioButton("Zaposlen"); // Kombinovano polje sa tekstom godine studija JComboBox kombPoljeGodina = new JComboBox(new String[]{"I godina", "II godina", "III godina", "IV godina"});
!"# $% &
' add() ( '
panel JPanel okvir JFrame
panel.add(new JButton("Test"));
okvir okvir.add(panel);
! " # $ % &
½
! $ ' JFrame setBounds() % okvir.setBounds(100, 150, 300, 200);
(
) *+ , '
% -
JButton dugme = new JButton("OK"); // OK dugme dugme.setBounds(20, 100, 60, 40); // granice OK dugmeta okvir.add(dugme); // dodavanje OK dugmeta u okvir
!
" # $ !
% & & !
'
( )
setLayout() Container public void setLayout(LayoutManager m)
LayoutManager LayoutManager ! " # $ %&!'(
) * + , $
$ # - . / $ $ )
/ import javax.swing.*;
public class TestFlowLayout { public static void main(String[] args) { // Konstruisanje okvira JFrame okvir = new JFrame("Test FlowLayout"); okvir.setSize(300, 200); okvir.setLocation(100, 150); okvir.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Konstruisanje šest dugmadi JButton crvenoDugme = new JButton("Crveno"); JButton zelenoDugme = new JButton("Zeleno"); JButton plavoDugme = new JButton("Plavo"); JButton narandžastoDugme = new JButton("Narandžasto"); JButton beloDugme = new JButton("Belo"); JButton crnoDugme = new JButton("Crno"); // Konstruisanje panela za dugmad JPanel panel = new JPanel(); // Smeštanje dugmadi u panel panel.add(crvenoDugme); panel.add(zelenoDugme); panel.add(plavoDugme); panel.add(narandžastoDugme); panel.add(beloDugme); panel.add(crnoDugme); // Smeštanje panela u okvir okvir.add(panel); okvir.setVisible(true); } }
! "
! " GridLayout# " "
$ # # %
import javax.swing.*; import java.awt.*; public class TestGridLayout {
public static void main(String[] args) { // Konstruisanje okvira JFrame okvir = new JFrame("Test GridLayout"); okvir.setSize(300, 200); okvir.setLocation(100, 150); okvir.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Konstruisanje više dugmadi JButton crvenoDugme = new JButton("Crveno"); JButton zelenoDugme = new JButton("Zeleno"); JButton plavoDugme = new JButton("Plavo"); JButton narandžastoDugme = new JButton("Narandžasto"); JButton beloDugme = new JButton("Belo"); JButton crnoDugme = new JButton("Crno"); // Konstruisanje panela za dugmad JPanel panel = new JPanel(); // Pridruživanje postupka GridLayout za razmeštanje // komponenti u panel u 3 reda i 2 kolone, sa horizontalnim // i vertikalnim rastojanjem 5 i 10 piksela izme¯ du njih panel.setLayout(new GridLayout(3, 2, 5, 10)); // Smeštanje dugmadi u panel panel.add(crvenoDugme); panel.add(zelenoDugme); panel.add(plavoDugme); panel.add(narandžastoDugme); panel.add(beloDugme); panel.add(crnoDugme); // Smeštanje panela u okvir okvir.add(panel); okvir.setVisible(true); } }
setLayout()
new GridLayout(3, 2, 5, 10)
"
GridLayout
!
GridLayout
"
#$%
&
" '
add()
(
BorderLayout.EAST
BorderLayout.WEST
BorderLayout.NORTH
BorderLayout.SOUTH
BorderLayout.CENTER
import javax.swing.*; import java.awt.*; public class TestBorderLayout { public static void main(String[] args) { // Konstruisanje okvira JFrame okvir = new JFrame("Test BorderLayout"); okvir.setSize(300, 200); okvir.setLocation(100, 150); okvir.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Konstruisanje pet dugmadi JButton istoˇ cnoDugme = new JButton("Istoˇ cno"); JButton zapadnoDugme = new JButton("Zapadno"); JButton severnoDugme = new JButton("Severno"); JButton južnoDugme = new JButton("Južno"); JButton centralnoDugme = new JButton("Centralno"); // Konstruisanje panela za dugmad JPanel panel = new JPanel(); // Pridruživanje postupka BorderLayout za razmeštanje // komponenti u panel, sa horizontalnim i vertikalnim // rastojanjem 5 i 10 piksela izme¯ du njih panel.setLayout(new BorderLayout(5, 10));
// Smeštanje dugmadi u panel panel.add(istoˇ cnoDugme, BorderLayout.EAST); panel.add(zapadnoDugme, BorderLayout.WEST); panel.add(severnoDugme, BorderLayout.NORTH); panel.add(južnoDugme, BorderLayout.SOUTH); panel.add(centralnoDugme, BorderLayout.CENTER); // Smeštanje panela u okvir okvir.add(panel); okvir.setVisible(true);
} }
! " " #
! ! "#$% & ! ' ! JComponent paintComponent() JComponent ! ! ( public class MojaKomponenta extends JComponent { public void paintComponent(Graphics g) { // Naredbe za crtanje u komponenti } }
)! ' *
+ ) ! paintComponent() Graphics &
Graphics
Graphics !" # Graphics $ % & Graphics Graphics ' ( Graphics ' ' Graphics ' & ) ' ( public void drawString(String s, int x, int y)
x y s ' ' ( public void drawRect(int x, int y, int w, int h)
x y w h # % '
' * ' ' # ' +,+- . Graphics import javax.swing.*; import java.awt.*; public class TestGraphics { public static void main(String[] args) { // Konstruisanje okvira JFrame okvir = new JFrame("Test Graphics"); okvir.setSize(300, 200); okvir.setLocation(100, 150); okvir.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Konstruisanje komponente TestGraphicsKomponenta komp = new TestGraphicsKomponenta();
// Smeštanje komponente u okvir okvir.add(komp); okvir.setVisible(true); } } class TestGraphicsKomponenta extends JComponent { public void paintComponent(Graphics g) { g.drawString("Java je zabavna za programiranje!", 20, 50); g.drawRect(50, 80, 150, 50); } }
Graphics
TestGraphics
MojaKomponenta MojaKomponenta
public paintComponent() MojaKomponenta !
"# paintComponent()
paintComponent() ! " JComponent # $ protected void paintComponent(Graphics g)
%&' ( %&' ) * g Graphics paintComponent() ) # + # (* paintComponent() ) * , , ( ) , $ public void repaint()
# Component ) " * ) * %&' %&' , paintComponent() * ) , ,
- Graphics % - , , #
Graphics2D
! " # $ Graphics2D % Graphics !
& Graphics Graphics2D paintComponent() & Graphics2D Graphics ' & # Graphics2D (
! & paintComponent() JComponent & % Graphics # Graphics2D )% !
Graphics2D paintComponent() & ! * public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; // Metodi za crtanje primenjeni na objekat g2, a ne g . . . }
+ java.awt.geom & " Shape )%
* , Rectangle2D , Ellipse2D , Arc2D , CubicCurve2D -
Line2D
Graphics2D % * void draw(Shape s) void fill(Shape s)
s Graphics2D !
! " ! # $
% float &
' !
float double ! float double ( )! double! float! F float ! * float x = 2.34;
// GREŠKA!
¾ double float x = 2.34F;
// OK
double float ! " float double # Rectangle2D $ ¿ Rectangle2D.Float
Rectangle2D.Double
% Rectangle2D.Float float
Rectangle2D FloatRectangle2D DoubleRectangle2D ¿
Rectangle2D.Double double Rectangle2D.Float p1 = new Rectangle2D.Float(50.0F, 100.0F, 22.5F, 45.5F); Rectangle2D.Double p2 = new Rectangle2D.Double(50.0, 100.0, 22.5, 45.5);
Rectangle2D.Float Rectangle2D.Double Rectangle2D Rectangle2D Rectangle2D Rectangle2D p1 = new Rectangle2D.Float(50.0F, 100.0F, 22.5F, 45.5F); Rectangle2D p2 = new Rectangle2D.Double(50.0, 100.0, 22.5, 45.5);
Rectangle2D.Float Rectangle2D.Double
Rectangle2D
! " #$ % & ' Ü
& Point2D
$ Point2D.Float Point2D.Double float double Point2D t1 = new Point2D.Float(10F, 20F); Point2D t2 = new Point2D.Double(10, 20);
( Point2D Point2D
% ) " *+, - & . /0, - &
¼
Color java.awt
! Color mojaBoja = new Color(r,g,b);
r g b " int float # $
Color % $ $ $ ! Color.WHITE
Color.BLACK
Color.RED
Color.GREEN
Color.BLUE
Color.CYAN
Color.MAGENTA
Color.YELLOW
Color.PINK
Color.ORANGE
Color.LIGHT_GRAY
Color.GRAY
Color.DARK_GRAY
&
'(
" # "
$ $ ) # * '( float + + " float ) + , double * Color % $ getHSBColor()
'( ! Color mojaBoja = Color.getHSBColor(h,s,b);
- '(
.
$ $ $ Graphics2D " Graphics & g2 Graphics2D %$ setPaint()! g2.setPaint(c);
c Color g2.setPaint(Color.RED);
paintComponent() g2.setPaint(Color.RED); g2.drawString("Ceo disk ´ ce biti obrisan!", 50, 100);
setPaint()
getPaint() Paint Paint
Color Color aktuelnaBoja = (Color) g2.getPaint();
getPaint() Color staraBoja = (Color) g2.getPaint(); g2.setPaint(new Color(0, 128, 128)); // zeleno-plava boja . . . g2.setPaint(staraBoja);
! "# $% & ' () " % " % * + setBackground() Component MojaKomponenta k = new MojaKomponenta(); k.setBackground(Color.PINK);
setBackground() , ( paintComponent()
public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; if (isOpaque()) { // obojiti pozadinu g2.setPaint(getBackground()); g2.fillRect(0, 0, getWidth(), getHeight()); // Za preciznije bojenje pravougaonika komponente: // g2.fill(new // Rectangle2D.Double(0, 0, getWidth(), getHeight())); g2.setPaint(getForeground()); } // Ostale naredbe za crtanje u komponenti . . . }
setForeground() Component
! " ! # $ ! %
& ! '()* + ! , - !. -0 .
- !. -0 1.
-/ .
- !. ! 2!3 4 ! &
- !. !
! " #$ % && ' & ( ) * Font+ Font.PLAIN
Font.BOLD
Font.ITALIC
Font.BOLD + Font.ITALIC
% ! % ! ½ % ), - + ./ 0
! ( % 1 ) ! Font java.awt ( % + Font obiˇ canFont = new Font("Serif", Font.PLAIN, 12); Font sansBold24 = new Font("SansSerif", Font.BOLD, 24);
2 * 3 ' * 3 setFont() "! % 3 ! getFont() ) ! Font % ) 4546+ class TestFontKomponenta extends JComponent { public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; Font sansBold36 = new Font("SansSerif", Font.BOLD, 36); g2.setFont(sansBold36); // veliki font za tekst
g2.drawString("Zdravo narode!", 50, 50); Font serifPlain18 = new Font("Serif", Font.PLAIN, 18); g2.setFont(serifPlain18); // manji font za tekst g2.setPaint(Color.RED); // crvena boja za crtanje g2.drawString("Java je zabavna za programiranje!", 80, 100); } }
setFont() Component
!" #$ % & ' ( " % ) ! *&' + + % JFrame
JApplet JApplet init()
! init() "
# $ "! init() main() # %
& '(')
* + Kamion
+ KamionAplet init() JApplet ! init() KamionAplet
JLabel Kamion
import javax.swing.*; import java.awt.*; import java.awt.geom.*; public class KamionAplet extends JApplet { public void init() { setLayout(new BorderLayout()); JLabel naslov = new JLabel("KAMION", SwingConstants.CENTER); naslov.setFont(new Font("Serif", Font.BOLD, 20)); add(naslov, BorderLayout.NORTH); JComponent fap = new Kamion(); add(fap, BorderLayout.CENTER); } } class Kamion extends JComponent { public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; // Bojenje pozadine Color bledoPlava = new Color(0.75f, 0.750f, 1.0f); g2.setColor(bledoPlava); g2.fill(new Rectangle2D.Double(0,0,300,300)); // Crtanje šasije kamiona g2.setColor(Color.RED); g2.fill(new Rectangle2D.Double(50,100,120,80)); g2.fill(new Rectangle2D.Double(170,130,80,50)); // Crtanje kabine kamiona Polygon trougao = new Polygon(); trougao.addPoint(170,100);
trougao.addPoint(170,130); trougao.addPoint(200,130); g2.setColor(Color.YELLOW); g2.fillPolygon(trougao); // Crtanje zadnjeg toˇ cka g2.setColor(Color.DARK_GRAY); g2.fill(new Ellipse2D.Double(70,160,40,40)); g2.setColor(Color.WHITE); g2.fill(new Ellipse2D.Double(80,170,20,20)); // Crtanje prednjeg toˇ cka g2.setColor(Color.DARK_GRAY); g2.fill(new Ellipse2D.Double(190,160,40,40)); g2.setColor(Color.WHITE); g2.fill(new Ellipse2D.Double(200,170,20,20)); /* Crtanje logoa na stranici kamiona */ g2.setFont(new Font("Serif", Font.ITALIC, 25)); g2.setColor(Color.WHITE); g2.drawString("Java",70,125); g2.drawString("prevoznik",70,150); } }
! " #
$ %
& ' (
'
¿¼¼ ¿¼¼
)
*
KamionAplet.class
main()
! !
"
" #
$
EventObject java.util %
! $&'
( )
* ! !
MouseEvent +
( , -!
" ! ! .
ActionEvent % MouseEvent ActionEvent , - EventObject *
!
/
$ 0 " , - * !
ActionEvent 1
.
getSource()
EventObject
ActionEvent
e
! " #
EventObject
e.getSource()
$
! !
%
& $ ! " $ ! ' ( ! " & $ ) ! ) ! ' " *+ *, ( $ ' -
%
.
! ! "
/
ActionEvent
ActionListener
ActionPerformed()
package java.awt.event; public interface ActionListener extends java.util.EventListener { public void ActionPerformed(ActionEvent e); }
ActionListener
public class MojRukovalac implements ActionListener { . . . public void ActionPerformed(ActionEvent e) { // Reakcija na pritisak tasterom miša na dugme . . . } } ! " #
JButton dugme = new JButton("OK");
ActionListener rukovalacDugmeta = new MojRukovalac(...); dugme.addActionListener(rukovalacDugmeta);
rukovalacDugmeta e ActionEvent rukovalacDugmeta.ActionPerformed(e)
e ! ActionPerformed() "
" # $ Event % Listener ActionEvent MouseEvent " ActionListener MouseListener & java.awt.event ' addListener() ! Button public void addActionListener(ActionListener a);
" ( $ " " ) * % java.awt.event import
¾
ActionListener
! "
#
! $ "
&
%
addActionListener()
' ( " &
&
)" *+ *,
)"
&
&
$ &
ActionEvent
!
&
-
& *+ *. / &
brojaˇ c
$
$
oznaka
JLabel0
class RukovalacDugmeta implements ActionListener {
private int brojaˇ c;
// brojaˇ c pritisaka na dugme
public void actionPerformed(ActionEvent e) { brojaˇ c++; oznaka.setText("Broj pritisaka = " + brojaˇ c); } }
DugmeBrojaˇ cOkvir JFrame
oznaka JLabel
class DugmeBrojaˇ cOkvir extends JFrame { private JLabel oznaka; // oznaka u okviru . . . // Konstruktor public DugmeBrojaˇ cOkvir() { setTitle("Brojanje pritisaka na dugme "); setSize(300, 150); setLayout(new FlowLayout(FlowLayout.CENTER, 30, 20)); oznaka = new JLabel("Broj pritisaka = 0"); add(oznaka); JButton dugme = new JButton("Pritisni me");
add(dugme); dugme.addActionListener(new RukovalacDugmeta()); }
}
DugmeBrojaˇcOkvir addActionListener()
RukovalacDugmeta DugmeBrojaˇcOkvir
oznaka JLabel
!
oznaka
" RukovalacDugmeta oznaka DugmeBrojaˇcOkvir ! RukovalacDugmeta # DugmeBrojaˇ cOkvir $ %& # '
! import java.awt.*; import javax.swing.*; import java.awt.event.*; // Poˇ cetna klasa public class TestDugmeBrojaˇ c { public static void main(String[] args) {
DugmeBrojaˇ cOkvir okvir = new DugmeBrojaˇ cOkvir(); okvir.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); okvir.setVisible(true); } } // Glavni okvir sa dugmetom i oznakom class DugmeBrojaˇ cOkvir extends JFrame { private JLabel oznaka; // oznaka u okviru // Ugnjež¯ dena klasa rukovaoca akcijskog doga¯ daja private class RukovalacDugmeta implements ActionListener { private int brojaˇ c;
// brojaˇ c pritisaka na dugme
public void actionPerformed(ActionEvent e) { brojaˇ c++; oznaka.setText("Broj pritisaka = " + brojaˇ c); } } // Konstruktor public DugmeBrojaˇ cOkvir() { setTitle("Brojanje pritisaka na dugme "); setSize(300, 150); setLayout(new FlowLayout(FlowLayout.CENTER, 30, 20)); oznaka = new JLabel("Broj pritisaka = 0"); add(oznaka); JButton dugme = new JButton("Pritisni me"); add(dugme); dugme.addActionListener(new RukovalacDugmeta()); } }
RukovalacDugmeta DugmeBrojaˇcOkvir()
RukovalacDugmeta
import java.awt.*; import javax.swing.*; import java.awt.event.*; // Poˇ cetna klasa public class TestDugmeBrojaˇ c { public static void main(String[] args) { DugmeBrojaˇ cOkvir okvir = new DugmeBrojaˇ cOkvir(); okvir.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); okvir.setVisible(true); } } // Glavni okvir sa dugmetom i oznakom class DugmeBrojaˇ cOkvir extends JFrame { private JLabel oznaka;
// oznaka u okviru
// Konstruktor public DugmeBrojaˇ cOkvir() { setTitle("Brojanje pritisaka na dugme "); setSize(300, 150); setLayout(new FlowLayout(FlowLayout.CENTER, 30, 20)); oznaka = new JLabel("Broj pritisaka = 0"); add(oznaka); JButton dugme = new JButton("Pritisni me"); add(dugme); // Dodavanje objekta za rukovanje doga¯ dajem dugmeta dugme.addActionListener(new ActionListener() { // Anonimna klasa koja implementira ActionListener private int brojaˇ c ; // brojaˇ c pritisaka na dugme
public void actionPerformed(ActionEvent e) { brojaˇ c++; oznaka.setText("Broj pritisaka = " + brojaˇ c); } }); } }
MouseListener
package java.awt.event; public interface MouseListener extends java.util.EventListener { public public public public public
void void void void void
mousePressed(MouseEvent e); mouseReleased(MouseEvent e); mouseClicked(MouseEvent e); mouseEntered(MouseEvent e); mouseExited(MouseEvent e);
}
mousePressed() mouseReleased() mouseClicked() ! " mousePressed() mouseReleased() mouseClicked() # mouseEntered() mouseExited() $ % $ $ $ MouseListener & '
& $ ( JFrame WindowEvent )$ $ $ WindowListener package java.awt.event;
public interface WindowListener extends java.util.EventListener { public public public public public public public
void void void void void void void
windowOpened(WindowEvent e); windowClosing(WindowEvent e); windowClosed(WindowEvent e); windowIconified(WindowEvent e); windowDeiconified(WindowEvent e); windowActivated(WindowEvent e); windowDeactivated(WindowEvent e);
}
windowIconified() windowDeiconified()
WindowEvent ! WindowListener windowClosing() " public class Zatvaraˇ cOkvira implements WindowListener { public void windowClosing(WindowEvent e) { if (korisnik se slaže) System.exit(0); } public public public public public public
void void void void void void
windowOpened(WindowEvent e) {} windowClosed(WindowEvent e) {} windowIconified(WindowEvent e) {} windowDeiconified(WindowEvent e) {} windowActivated(WindowEvent e) {} windowDeactivated(WindowEvent e) {}
}
# ! !
$ MouseAdapter ! MouseListener
WindowAdapter WindowListener ! " # $ ActionListener! WindowAdapter % ZatvaraˇcOkvira windowClosing()& public class Zatvaraˇ cOkvira extends WindowAdapter { public void windowClosing(WindowEvent e) { if (korisnik se slaže) System.exit(0); } }
' ZatvaraˇcOkvira $ $ & okvir.addWindowListener(new Zatvaraˇ cOkvira());
( okvir WindowEvent $ ZatvaraˇcOkvira ) " windowClosing() System.exit(0) ZatvaraˇcOkvira % $ $ & okvir.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {
if (korisnik se slaže) System.exit(0); } });
! "
# WindowAdapter $ % # # windowClosing() &
showOptionDialog() JOptionPane # " '
( okvir.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
import java.awt.*; import javax.swing.*; import java.awt.event.*; // Poˇ cetna klasa public class TestDugmeBrojaˇ c { public static void main(String[] args) { DugmeBrojaˇ cOkvir okvir = new DugmeBrojaˇ cOkvir(); okvir.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); // Pridruživanje rukovaoca doga¯ daja zatvaranja okvira okvir.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { Object[] opcija = {"Da", "Ne"}; int izabranaOpcija = JOptionPane.showOptionDialog(null, "Zaista želite da završite program?", "Kraj rada programa", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, opcija, opcija[0]); if (izabranaOpcija == 0) System.exit(0); } }); okvir.setVisible(true); }
} // Glavni okvir sa dugmetom i oznakom class DugmeBrojaˇ cOkvir extends JFrame { private JLabel oznaka;
// oznaka u okviru
// Konstruktor public DugmeBrojaˇ cOkvir() { setTitle("Brojanje pritisaka na dugme "); setSize(300, 150); setLayout(new FlowLayout(FlowLayout.CENTER, 30, 20)); oznaka = new JLabel("Broj pritisaka = 0"); add(oznaka); JButton dugme = new JButton("Pritisni me"); add(dugme); dugme.addActionListener(new ActionListener() { private int brojaˇ c ; // brojaˇ c pritisaka na dugme public void actionPerformed(ActionEvent e) { brojaˇ c++; oznaka.setText("Broj pritisaka = " + brojaˇ c); } }); } }
!
"
#
$%
&
'())*)+ , -
&
./0
!
1
&
./0
! , 1
!
2% 3 45 $
" "
6!
7
%
!
6
" # $
80 "
9
6!
7
! 6
% &
'
" # $
80 9
:
;