Professional Documents
Culture Documents
e )
N a me o f t h e C o mp a n y: S UB MI T T E D B y P RI Y AB R AT K U M A R C o mp u t e r s c i e n c e 5109027
K A R NA L I NS TI T U T E OF T EC HN O L O G Y & M AN A G EM E N T K U NJ P U R A , KAR N A L
IN D E X 1. Introduction 1.1. History 1 . 2 . O ve r vi e w 1 . 3 . C h a r a c t e r i s t i c s o f J a va 1 . 4 . D e ve l o p me n t wi t h J a va 2 . Cl a s s p a t h 3 . Y o u r f i r s t J a va p r o g r a m 3.1. Write source code 3 . 2 . C o m p i l e a n d r u n yo u r J a va p r o g r a m 3 . 3 . Us i n g t h e c l a s s p a t h 4 . I n t e g r a t e d De ve l o p me n t E n vi r o n m e n t 5 . Y o u r f i r s t g r a p h i c a l u s e r i n t e r f a c e a p p l i c a t i o n ( G UI ) 6 . S t a t e me n t s 6.1. Boolean Operations 6 . 2 . S wi t c h S t a t e me n t 7 . W o r k i n g wi t h S t r i n g s 8 . Co l l e c t i o n 9 . T yp e C o n ve r s i o n 9 . 1 . C o n ve r s i o n t o S t r i n g 9 . 2 . C o n ve r s i o n f r o m S t r i n g t o N u mb e r 9.3. Double to int 9 . 4 . S Q L D a t e c o n ve r s i o n s 1 0 . J A R f i l e s - J a va A r c h i ve 10.1. What is a jar 1 0 . 2 . E xe c u t a b l e j a r 11. Cheat Sheets 1 1 . 1 . W o r k i n g wi t h c l a s s e s 1 1 . 2 . W o r k i n g wi t h l o c a l va r i a b l e 1 2 . T h a n k yo u 13. Questions and Discussion 14. Links and Literature
T O W H O M I T M A Y CO NC E RN
T h i s i s t o c e r t i f y t h a t M r . P R I B R A T K UM AR , R o l l No . 5 1 0 9 0 27 Student of Karnal I n s t i t u t e o f T e c h n o l o g y & Ma n a g e me n t , K a r n a l h a s u n d e r g o n e a practical training from 1 5 J U LY t o 2 5 A U G US T E 2 0 1 1 a t o u r o r g a n i z a t i o n t o f u l f i l l t h e r e q u i r e me n t s o f t h e Ku r u k s h e t r a U n i v e r s i t y s c o ur s e c u r r i c u l u m f o r t h e a wa r d o f B . Te c h . D e g r e e . H e / S h e wo r k e d on the p r o je c t J AV A_ TI P S under the supervision of Sh.
( S UP ER VI S O R )
A C K NO W L E D G E ME NT
f o r t h e e n c o u r a g e me n t a n d
i mp o s s i b l e f o r me t o c o mp l e t e t h e p r o je c t . Hi s c o n t r i b u t i o n i s profusely acknowledged. Moral, intellectual and very frequently required support from all t h e f a c u l t y me mb e r s i s a l s o h e r e b y a c k n o wl e d g e d . L a s t l y t h e a u t h o r wo u l d a l s o l i k e t o t h a n k e a c h a n d e v e r y p e r s o n who contributed directly o r i n d i r e c t l y f o r c o mp l e t i o n o f t h i s p r o je c t . N A M E OF T H E S T U DE N T : P R I B R A T KU M AR R O O L : - 5 1 0 9 0 27 ( C S E )
1 . In t r od u ct i on 1 . 1 . H is t or y J a va is a p r o g r a m m ing la ng ua g e c r e a te d b y J a m e s G o s l i ng f r o m S u n Mi c r o s y s te m s in 1 99 1. Th e f ir s t p ub l i c a v a i l a b le ve r s i o n o f J a va ( J a va 1. 0 ) wa s r e le a s e d 199 5 . O ve r t im e s e ve r a l ve r s i o n o f J a v a we r e r e le a s e d wh ic h e nh a nc e d th e l a ng ua g e a n d it s l ib r a r ie s . Th e c u r r e n t ve r s io n o f J a va is J a va 1. 6 a ls o k no wn a s J a v a 6. 0 . F r o m th e J a va p r o g r a m m i ng l a ng ua g e th e J a va p la tf o r m e v o lve d. Th e J a va p la tf o r m a l l o ws th a t c o de is wr i t te n in o t h e r l a ng ua g e s t h e n t h e J a va p r o g r a m m ing l a ng ua g e a nd s ti l l r uns o n th e J a v a vi r t ua l m a c h ine . 1 . 2 . O ve r v ie w T h e J a va p r o g r a m m ing la ng ua g e c o ns is ts o u t o f a J a va c o m p i le r , th e J a va v ir tu a l m a c h i ne , a nd t h e J a v a c la s s l ib r a r ie s . Th e J a va vi r t ua l m a c h ine ( J V M ) i s a s o f twa r e i m p le m e nt a t io n o f a c o m p ute r t h a t e x e c u te s p r o g r a m s lik e a r e a l m a c h i ne . T h e J a v a c o m p il e r tr a ns l a te s J a va c o d ing i n to s o - c a l le d b y te c o de . Th e J a va v ir t ua l m a c h ine i n te r p r e ts th is b y te - c o de a n d r uns th e p r o g r a m . T h e J a va v ir t ua l m a c h i ne is wr it te n s p e c i f ic a l ly f o r a s p e c if ic o p e r a t ing s y s te m . T h e J a v a r u nt im e e n vi r o n m e nt ( J R E) c o ns is ts o f th e J V M a nd th e J a v a c la s s lib r a r ie s .
6
1 . 3 . C h a r a ct e r i s t ics o f J a va T h e t a r g e t o f J a va is t o wr i te a p r o g r a m o nc e a n d th e n r u n t h is p r o g r a m o n m ul t ip le o p e r a ti ng s y s te m s . J a va h a s th e f o ll o wi ng p r o p e r t ie s : P l a tf o r m in de p e n de n t: J a va p r o g r a m s us e t h e J a va
v ir t ua l m a c h ine a s a b s tr a c ti o n a nd do n o t a c c e s s th e o p e r a t ing s y s te m d ir e c t ly . Th is m a k e s J a va p r o g r a m s h ig h ly p o r ta b le . A J a v a p r o g r a m w h i c h is s ta n da r d c o m p la i nt a nd f o l l o ws c e r ta in r u le s c a n r u n unm o d if ie d a l l s e ve r a l p la t f o r m s , e . g . W in do ws o r L i nu x . O b je c t - o r ie n ta te d p r o g r a m m ing l a ng ua g e : Ex c e p t th e p r im i t ive da ta ty p e s , a l l e le m e nt s in J a va a r e o b je c ts . S tr o ng ly - ty p e d p r o g r a m m ing l a ng ua g e : J a va is s tr o ng ly t y p e d, e . g . th e t y p e s o f t h e us e d v a r ia b le s m u s t b e p r e de f ine d a nd c o n ve r s io n to o th e r o b je c ts is r e la t ive ly s tr ic t, e.g. must be do ne in most cases by th e programmer. I n te r p r e te d a nd c o m p i le d la ngu a g e : J a va s o ur c e c o de is t r a ns f e r e d in t o b y te - c o de wh i c h d o e s no t de p e n d o n th e t a r g e t p la tf o r m . T h is b y te - c o de w i ll b e i nte r p r e te d b y t h e J a va V ir tu a l m a c h ine ( J V M) . Th e J V M c o nt a ins a s o c a l le d Ho ts p o t - C o m p i le r wh ic h t r a ns la te s c r i tic a l b y te c o de in to n a t ive c o de . A u t o m a t ic memory m a n a g em e nt: Java m a na g e s th e
m e m o r y a l lo c a ti o n a nd de - a l lo c a t io n f o r c r ea t ing ne w o b je c ts . Th e p r o g r a m do e s n o t h a ve di r e c t a c c e s s to th e
7
memory.
Th e
s o - c a l le d
garbage
c o l le c to r
de le te s
a u to m a t i c a l ly o b je c t to wh ic h no a c ti ve p o in te r e x is ts . T h e J a va s y n ta x i s s i m i la r to C + +. J a va is c a s e s e ns i t ive , e . g . the v a r ia b le s m y V a lue a nd m y va lue wi l l be t r e a te d as d i f f e r e nt v a r ia b l e s . 1 . 4 . D e ve l op m e n t w it h J a va T h e p r o g r a m m er w r i te s J a v a s o ur c e c o de in a n te x t e d i to r w h ic h s up p o r ts p la in te x t. N o r m a l ly th e p r o g r a m m e r us e s a n I DE ( in te g r a t e d de ve l o p m e nt e n vi r o n m e n t) for p r o g r a m m ing . A n I D E s u p p o r t t h e p r o g r a m m e r in t h e ta s k o f w r it ing c o de , e . g . i t p r o v i de s a u to - f o r m a tt i ng o f t h e s o ur c e c o de , h ig h l ig h t ing o f t h e im p o r t a nt k e y w o r ds , e tc . A t s o m e p o in t t h e p r o g r a m m e r ( o r t h e I D E) c a l ls t h e J a va c o m p i le r ( ja v a c ) . Th e Java c o m p ile r c r e a te s p la tf o r m i n de p e n de n t c o de w h i c h is c a l le d b y te c o de . T h i s b y te - c o de is s to r e d i n ". c la s s " f i le s . B y te c o de c a n be e x e c u te d b y th e J a va r un t im e e nv ir o n m e n t. T h e J a va r u n tim e e nv ir o nm e nt ( J RE ) is a p r o g r a m w h i c h k n o ws h o w t o r u n t h e b y te c o de o n th e o p e r a t ing s y s te m . Th e J R E t r a ns la te s t h e b y te c o de int o na t ive c o de a n d e x e c u te s it, e . g . th e na t ive c o de f o r L i nux is d i f f e r e n t th e n th e na t ive c o de f o r W in do ws . B y de f a ul t, th e c o m p i le r p u ts e a c h c la s s f i le in th e s a m e d ir e c to r y a s its s o ur c e f i le . Y o u c a n s p e c i f y a s e p a r a te de s t in a t io n d ir e c t o r y w i th - d 2 . C la s s p a t h
8
T h e c la s s p a th is th e c o nne c t io n b e t we e n th e J a va c o m p i le r a nd J a v a in te r p r e te r . I t de f ine s w h e r e th e c o m p i le r a nd i n te r p r e te r lo o k f o r . c la s s f i le s t o lo a d. T h e c la s s p a t h in J a va de f i ne s w h ic h J a va c l a ss a r e a va il a b le f o r y o u r J a va p r o g r a m . F o r e x a m p le i f y o u w a n t t o us e a n e x te r na l J a v a li b r a r y y o u h a ve to a dd th is li b r a r y to y o ur c l a s s p a th to us e i t i n y o u r y o u r p r o g r a m . 3 . F ir s t J a va p r o gr a m 3 . 1 . W r it e s our ce c od e T h e f o l l o w ing J a va p r o g r a m is de ve l o p e d u nde r M ic r o s o f t W in do ws . T h e p r o c e s s o n o th e r o p e r a t ing s y s te m s h o u ld b e s im il a r b u t wi l l no t b e c o ve r e d h e r e . S e le c t a di r e c t o r y wh ic h should c o n ta in your c o de . I will us e the di r e c to r y c : \ te m p \ ja v a wh i c h w i l l b e c a l le d "ja va di r ". O p e n a te x t e di t o r wh ic h s up p o r ts p la in te x t , e . g . n o te p a d u n de r W in do ws a nd w r i te th e f o l l o w ing s o ur c e c o de . Y o u c a n s ta r t n o te p a d v ia S ta r t - >R un - > n o te p a d a nd p r e s s i ng e n te r .
S a ve t h e s o ur c e c o de in y o u r d ir e c to r y "j a va di r " un de r th e n a m e " He l lo W o r l d. ja va ". T h e na m e o f a J a va s o ur c e f i le m us t a l wa y s e q ua ls th e c la s s n a m e ( wi t h i n th e s o ur c e c o de ) a nd end w i th . j a va . In our case the f ile na m e m us t be He l l o W o r ld. ja va b e c a us e t h e c la s s is c a l le d He l l o W o r l d. 3 . 2 . C om p i le a n d r un y our J a va p r o gr a m S w i tc h t o th e c o m m a n d l ine , e . g . u nde r W in do ws S t a r t - > Run - > c m d. S wi t c h to t h e " ja va d ir " d ir e c t o r y wi t h th e c o m m a nd c d j a va d ir , f o r e x a m p le i n m y c a s e c d c : \ te m p \ ja v a . Us e th e c o m m a n d di r t o s e e th a t th e s o u r c e f i le is i n t h e d ir e c t o r y .
f ir s t
gr a p h i ca l
us e r
in t e r f a ce
a p p l i ca t i on
ne w
J a va
p r o je c t
C r e a te th e f o l lo w i ng c la s s My F ir s t UI . j a va in p a c k a g e u i.
p a c k a g e ui ;
i m p o r t j av a .a w t . B o rd e r L ay o u t ; i m p o r t j av a .a w t . G r id L a y ou t ; i m p o r t j av a .a w t . e v en t . A ct i o n E v en t ; i m p o r t j av a .a w t . e v en t . A ct i o n L i st e n e r;
i m p o r t j av a x. s w i n g .J B u t to n ; i m p o r t j av a x. s w i n g .J C h e ck B o x ; i m p o r t j av a x. s w i n g .J F r a me ; i m p o r t j av a x. s w i n g .J L a b el ; i m p o r t j av a x. s w i n g .J O p t io n P a n e ; i m p o r t j av a x. s w i n g .J P a n el ; i m p o r t j av a x. s w i n g .J T e x tF i e l d ;
p u b l i c c l a s s M y F i r st U I e x t e n d s J Fr a me {
p r i v a t e JC h ec k B o x ch e c k bo x ; p r i v a t e JT e xt F i e l d f i r s tN a m e ; p r i v a t e JT e xt F i e l d l a s t Na m e ;
13
p u b l i c M yF i rs t U I ( ) {
// Lets make it look nice // This you don't like it // try { // for (LookAndFeelInfo info UIManager.getInstalledLookAndFeels()) { // ("Nimbus".equals(info.getName())) { : if you can ignore / delete if
s e t T i t le ( " M y F i r s t U I " ) ;
UI
elements
14
i n t n u m be r O fR o w s = 3 ; i n t n u m be r O fC o l u m n s = 2 ; p a n e . s et L a y ou t ( n e w G r i d L a yo u t ( nu m b e r O fR o w s , n u m b e rO f C o lu m n s ) ) ;
// create and attach buttons // main win d o w create a label and add
=
it
to
the
JLabel F i r s t n am e : " ) ;
f i r st N a m e l ab e l
new
J La b el ( "
p a n e . a dd ( f i rs t N a m e la b e l ); f i r s t N am e = n e w J T e xt F i el d ( ) ; p a n e . a dd ( f i rs t N a m e );
JLabel L a s t n a me : " );
l a stN a m e l a be l
new
J L a b el ( "
p a n e . a dd ( l a st N a m e l ab e l ) ; l a s t N a me = n e w J T e x tF i e ld ( ) ; p a n e . a dd ( l a st N a m e ) ;
JButton s o m e t h in g " ) ;
s ayH e l l o
n ew
J B u tt o n ( "S a y
p a n e . a dd ( s a yH e l l o ) ;
c h e c k b ox = n e w J C h e ck B o x( " N i c e " ) ; p a n e . a dd ( c h ec k b o x ) ;
15
// Pack will make the size of window fitting to the compoents // You could setSize(300, 400);
pack();
also
use
for
example
p r i v a t e c l as s A c t i o n Li s t e ne r {
M y A ct i o nL i s t e ner
implements void
"I
} }
C r e a te a ls o th e f o l l o w ing c la s s Ma i nTe s te r . ja v a in p a c k a g e t e s t a nd s ta r t th is c la s s .
p a c k a g e te s t;
i m p o r t u i. M yF i r s t U I;
p u b l i c c l a s s M a i n T es t e r { p u b l i c s t a t ic v o i d m ai n (S t r i n g [] a r gs ) { M y F i r s tU I v ie w = n e w M y Fi r s t U I () ; v i e w . s et V i s ib l e ( t r ue ) ; } }
17
Y o u s h o u ld s e e t h e f o l lo w i ng . A m e s a g e di a lo g s h o u ld b e s e e n i f y o u p r e ss t h e b u tt o n.
6. Statements T h e f o l l o w ing de s c r ib e s c e r ta in a s p e c ts o f th e s o f twa r e . 6 . 1. B o ol e a n O p e r a t i on s U s e = = to c o m p a r e t wo p r im it ive s o r to s e e if t w o r e f e r e nc e s r e f e r s to t h e s a m e o b je c t. Us e t h e e q ua ls ( ) m e t h o d t o s e e if t w o d if f e r e n t o b je c ts a r e e q ua l. & & a nd | | a r e b o t h S h o r t C ir c ui t Me t h o ds w h ic h m e a ns th a t t h e y te r m ina te o nc e t h e r e s u lt o f a n e va l ua ti o n is a lr e a dy c le a r . Ex a m p le ( tr ue | | . . . . ) is a l wa y s t r ue wh i le ( f a ls e & & . . . ) a lw a y s f a ls e is . Us a g e : ( va r ! = nu l l & & v a r . m e th o d 1( ) . . ) e ns u r e s t h a t v a r is n o t n u l l b e f o r e do ing th e r e a l c h e c k .
18
T a b le 1 . B o o le a n Operations == Description I s e q u a l , i n c a s e o f o b je c t s t h e s ys t e m checks if the reference variable point to the s a me o b je c t , i s wi l l n o t c o mp a r e t h e c o n t e n t o f t h e o b je c t s ! && And != i s n o t e q u a l , s i mi l a r t o t h e " = = " a .e q u a l s ( b ) Checks if string a equals b a .e q u a l s I g n o r e C a s e ( b ) C h e c k s i f s t r i n g a e q u a l s b wh i le i g n o r i n g l o we r c a s e s I f ( v a l u e ? f a l s e : R e t u r n t r u e i f v a l u e i s n o t t r u e . Ne g o t i a t i o n t r u e ) {} 6 .2 . S w it ch S t a t e m e n t The s w it c h s ta te m e nt can be us e d to h a nd le s e ve r a l
a l te r na ti ve s if th e y a r e b a s e d o n th e s a m e c o ns t a nt v a lue .
s w i t c h ( ex p re s s i o n ) { c a s e c o ns t a nt 1 : c o m m a n d; b r e a k ; // Will prevent that the other cases or also executed c a s e c o ns t a nt 2 : c o m m a n d; break; ... default: }
19
E x a m p l e:
s w i t c h ( ca t .g e t L e v el ( ) ) { case 0: r e t u r n t ru e ; case 1: i f ( c a t .g e t Le v e l ( ) = = 1 ) { if ( c a t . g et N a m e( ) . e q u al s I g no r e C a s e( r e q .g e t C a t eg o r y ())) { r e t u r n t ru e ; } } case 2: if ( c a t . g et N a m e( ) . e q u al s I g no r e C a s e( r e q .g e t S u b Ca t e g ory())) { r e t u r n t ru e ; } } 7 . W or k in g w it h S t r in gs T h e f o l l o w ing lis ts th e m o s t c o m m o n s tr ing o p e r a t io ns . T a b le 2 . C o mma n d t e x t 1 . e q u a l s ( " Te s t i n g " ) ; Description return true if text1 is equal to
20
" Te s t i n g " . Th e t e s t i s c a s e sensitive. t e x t 1 . e q u a l s I g n or e C a s e ( " Te s t i n g " ) ; r e t u r n t r u e i f t e x t 1 i s e q u a l t o " Te s t i n g " . Th e t e s t i s n o t c a s e sensitive. For e x a mp l e it would also be true for "testing" StringBuffer str1 = n e w D e f i n e a n e w S t r i n g wi t h a StringBuffer(); variable length. s t r .c h a r a t ( 1 ) ; Return the character at position 1. (Strings starting with 0) s t r .s u b s t r i n g ( 1 ) ; R e mo v e s t h e f i r s t c h a r a c t e r s . s t r .s u b s t r i n g ( 1 , 5 ) ; Gets the substring from the second to the fifths character. s t r .i n d e x O f ( S t r i ng ) Find / Search for String R e t u r n s t h e i n d ex o f t h e f i r s t occurrence of the specified string. s t r .l a s t I n d e x Of ( S t r i n g ) Returns the index of the last occurrence of the specified string. StringBuffer does not s u p p o r t t h i s me t h o d . He n c e first convert the StringBuffer t o S t r i n g v i a me t h o d t o S t r i n g . s t r .e n d s Wi t h ( S t r i n g ) R e t u r n s t r u e i f s t r e n d s wi t h String s t r .s t a r t s Wi t h ( S t r i n g ) R e t u r n s t r u e i f s t r s t a r t s wi t h String s t r .t r i m( ) R e mo v e s s p a c e s s t r .r e p l a c e ( s t r 1 ,s t r 2 ) Replaces all occurrences of str1 by str2 s t r .c o n c a t ( s t r 1 ) ; Concatenates str1 at the end of str. s t r .t o Lo we r C a s e ( ) Converts string to lower- or s t r .t o Up p e r C a s e ( ) uppercase str1 + str2 Concatenate str1 and str2 S t r i n g [ ] z e u g = m yS t r i n g .s p l i t ( " - S p i t s myS t r i n g a t / i n t o "); String[] zeug = Strings. Attention: the split
21
m yS t r i n g .s p l i t ( " \ \ ." ) ;
string is a regular expression, so if you using special characters which have a m ea n i n g in regular expressions you need to quote t h em . I n t h e s e c o n d e x am p l e the . is used and must be quoted by two backslashes.
22
p a c k a g e co l le c t i o n s;
i m p o r t j av a .u t i l . A rr a y L is t ;
p u b l i c c l a s s M y A r r ay L i s t {
p u b l i c s t a t ic v o i d m ai n (S t r i n g [] a r gs ) {
list) to another C o l l e c t i o n s .r e v e r s e ( l i s t ) R e s e r v e t h e o r d e r of the list C o l l e c t i o n s .s h u f f l e ( l i s t ) S h u f f l e s t h e l i s t C o l l e c t i o n s .s o r t ( l i s t ) Sort the list 9 . T y p e C on ve r s i on I f y o u us e va r i a b le s o f di f f e r e nt ty p e s J a va r e q ui r e s f o r c e r t a i n ty p e s a n e x p l i c i t c o n ve r s io n. T h e f o l lo wi ng g ive s e x a m p le s f o r th i s c o nve r s io n. 9 . 1. C on ve r s i on t o S t r in g U s e th e f o l lo w ing to c o n ve r t f r o m o t h e r ty p e s t o S tr ing s
String s2 =
s1
S t r i ng . v a lu e O f
10
);
//
"10"
"3.141592653589793"
M a t h . PI
);
//
new
Da t e ( ) ) ;
//
9 .2 . C on ve r s io n f r om S t r in g t o Num b e r
24
private {
D o ub l e
c o n v er tS t r i n g To D o u bl e ( S t r in g
s)
nf
p a c k a g e te s t;
i m p o r t j av a .t e x t . D at e F o rm a t ;
26
i m p o r t j av a .t e x t . P ar s e E xc e p t i o n; i m p o r t j av a .t e x t . S im p l e Da t e F o r ma t ;
p u b l i c c l a s s C o n v e rt D a t eT o S Q L D at e {
j a v a .u t i l .D a t e e nd d a t e = n e w j a v a. u t il . D a t e ( " 1 0 / 31 / 9 9 " ) ; j a v a .s q l . Da t e s q lD a t e = j a v a . s ql . D a te . v a l u eO f ( t e m p l a te . f o rm a t ( e n dd a t e )) ;
} p u b l i c s t a t ic v o i d m ai n (S t r i n g [] a r gs ) { C o n v e r tD a t e To S Q L D a te C o n v e r tD a t e To S Q L D a te ( ) ; da t e = new
d a t e . c on v e r tD a t e T o SQ L ( ) ; }
27
1 0 . J A R f ile s - J a va A r ch i ve 1 0 .1 . W h a t is a j a r A J AR f i le is a J a va A r c h i ve b a s e d o n t h e p k z ip f i le f o r m a t. A j a r f i le s c a n c o n t a i n ja va c la s s e s a n d o th e r r e s o ur c e s ( i c o ns , p r o p e r ty f i le s ) a nd c a n b e e x e c u t a b le . J AR f i le s a r e t h e de p lo y m e nt f o r m a t f o r J a va . Y o u c a n d is tr ib u te y o ur p r o g r a m in a ja r f i le o r y o u c a n us e e x i t ing j a v a c o de vi a ja r s b y p u t ti ng th e m in to y o ur c la s s p a t h . 1 0 .2 . Ex e cut a b l e j a r A n e x e c u ta b le J AR m e a ns t h e e n d - us e r do e s n ' t h a ve t o p u ll t h e c l a s s f i le s o u t b e f o r e r un ning t h e p r o g r a m . Th is is d o ne v ia a m a ni f e s t. t x t f i le w h i c h te l ls t h e J V M wh i c h c l a s s h a s t h e m a in ( ) m e th o d. Th e c o n te nt o f th e m a ni f e s t . tx t f i le : M a n i f es t - V er s i o n : 1. 0 Ma i n - C l as s : My A p p C l as s Path: . l i b /j c o m m o n - 1 . 0 .6 . j ar l i b / i t ex t - 1 .4 . 6 . j a r " E m pt y L i n e" An e m p ty l i ne is r e q ui r e d o t h e r w is e the jar wo n' t be
28
T h e f o l lo w ing c a n b e us e d a s a r e f e r e n c e f o r c e r t a i n ta s k w h ic h y o u h a ve t o d o . 1 1 . 1. W or k in g w it h c la s s e s W h i le p r o g r a m m ing J a va y o u h a ve to c r e a te s e ve r a l c la s s e s , m e th o d s , ins ta n c e v a r ia b le s . T h e f o l lo wi ng us e s th e p a c k a g e t e s t. T a b le 4 . What to do Create a ne w " M yN e wC l a s s " . How to do it class called p a c k a g e te s t;
public M y N e w C la s s {
class
class S tr i n g
29
Create a Constructor for " M yN e wC l a s s w h i c h h a s a S t r i n g p a r a me t e r a n d a s s i g n s t h e v a l u e o f i t p a c k a g e te s t; to the "var1" instance variable. public M y N e w C la s s { private var1; class S tr i n g
// this.var1= para1;
} }
or
class S tr i n g
30
// this.var1= para1;
}
or
public d o S o m e Th i n g () {
void
// this.var1= para1;
}
or
public d o S o m e Th i n g () {
void
public void d o S o m e Th i n g 2( i n t a, P e r s o n p e r s on ) {
public M y N e w C la s s ( St r i n g para1) {
32
var1 para1;
// this.var1= para1;
}
or
public d o S o m e Th i n g () {
void
public void d o S o m e Th i n g 2( i n t a, P e r s o n p e r s on ) {
return
5;
33
C r e a t e a c l a s s " M yO t h e r C l a s s " w i t h t wo i n s t a n c e v a r i a b l e s . On e wi l l s t o r e a S t r i n g , t h e o t h e r wi l l s t o r e a p a c k a g e te s t; Dog. Create getter and setter for these variables. public M y O t h e rC l a s s { class
S t r i n g m y v a lu e ; D o g d o g;
public S tr i n g g e t M y v al u e ( ) { return m y v a l u e; }
public void s e t M y v al u e ( St r i n g m y v a l u e) { t h i s . m y va l u e m y v a l u e; } =
public g e t D o g () {
Dog
r e t u r n d og ; }
public void s e t D o g (D o g do g ) {
34
this.dog dog; } }
1 1 . 2. W or k in g w it h lo ca l va r ia b l e A l o c a l v a r ia b le m us t a l wa y s b e de c l a r e d in a m e th o d. T a b le 5 . What to do How to do it D e c l a r e a ( l o c a l ) v a r i a b l e o f t yp e S t r i n g v a r i a b l e 1 ; string. D e c l a r e a ( l o c a l ) v a r i a b l e o f t yp e S t r i n g v a r i a b l e 2 = " Te s t " ; s t r i n g a n d a s s i g n " Te s t " t o i t . D e c l a r e a ( l o c a l ) v a r i a b l e o f t yp e P e r s o n p e r s o n ; Person D e c l a r e a ( l o c a l ) v a r i a b l e o f t yp e P e r s o n person = new P e r s o n , c r e a t e a n e w Ob je c t a n d P e r s o n ( ) ; a s s i g n t h e v a r i a b l e t o t h i s o b je c t . D e c l a r e a a r r a y o f t yp e S t r i n g S t r i n g a r r a y[ ] ; D e c l a r e a a r r a y o f t yp e P e r s o n a n d P e r s o n a r r a y[ ] = new c r e a t e a n a r r a y f o r t h i s v a r i a b l e wh i c h P e r s o n [ 5 ]; c a n h o l d 5 P e r s on s . Assign 5 to the int variable var1 var1 = 5; ( wh i c h w a s a l r e a d y d e c l a r e d ) ; A s s i g n t h e e x i s ti n g v a r i a b l e p e r s 2 t o p e r s 1 = p e r s 2 ; the exiting variable pers1; D e c l a r e a A r r a yL i s t v a r i a b l e w h i c h A r r a yLi s t < P e r s o n > c a n h o l d o b je c t s o f t yp e P e r s o n persons; C r e a t e a n e w Ar r a yL i s t wi t h o b j e c t s p e r s o n s = new o f t yp e P e r s o n a n d a s s i g n i t t o t h e A r r a yLi s t < P e r s o n > ( ) ;
35
existing variable persons D e c l a r e a A r r a yL i s t v a r i a b l e w h i c h A r r a yLi s t < P e r s o n > p e r s o n s c a n h o l d o b je c t s o f t yp e P e r s o n a n d = new c r e a t e a n e w Ob je c t f o r i t . A r r a yLi s t < P e r s o n > ( ) ;
36
Compared t o C++:
no header files, m acros, point ers and references, unions, operat or overloading, t em plates, et c.
Object -or ient at ion: Classes + Inherit ance Dist r ibut ed: RMI, Servlet , Distribut ed object programming. Robust : St rong t yping + no point er + garbage collect ion Secur e: Type-saf et y + access cont rol Ar chit ect ur e neut r al: archit ect ure neut ral represent at ion Por t able Int er pr et ed
High per f or m ance t hr ough Just in t im e com pilation + runt ime m odification of code
Well def ined primit ive dat a t ypes: int , f loat , double, char, et c.
Concurrency
Packages Name spaces
Ref lection
Applet model
37