SlideShare a Scribd company logo
1875-4
First Latin American Regional Workshop on Distributed Laboratory
Instrumentation in Physics
Carlos Kavka
7 January - 4 February, 2008
INFN Sezione di Trieste
Area di Ricerca
Padriciano 99
34012 Trieste
I t a l y
Introduction to JAVA
- slides -
!#$ !
%    ' 
(  '
)  * +,'-.  $) $ !*  !* 
 / ,
  

   !-01 2 2' ' 2 
1  ' ! 3
'   
'4 $0
)  * +,'-.  $) $ !*  !* 
 / ,
  

  2 --  $5   2 2
0 ' ! 6 *   77$*  21 
'   *-6  13
  
8 ,0  *-    8 ,0  *-  $  !0 '
-    
96  11  ! . --  !
'-2 **   '-2 **
$  !**! - $ :*! '2'$5 
 6-  96- -  
  $   !  !- !-  1!
  $5   ;$5  
;-    2 :  21-  ** $
)  * +,'-.  $) $ !*  !* 
 / ,
  

'00 0$' --  '1 
$ -2 * $ - !0 0 '
0$- 2 6   ! *-0 '  
- $$03

  --       -2 *'  $
6  -!1 !0$$03

  --  -2 * 2$6 
  - $$03
)  * +,'-.  $) $ !*  !* 
 / ,
' - 1*

-2 *  *-  $!# 
, 1* '  --  3
'-2 * '6 $!  -
' (  : ' = (:3
  
*- 
-= (:
)  * +,'-.  $) $ !*  !* ?
 / ,
' - 1*

' *-    -1'
 '  1' *-3

'- - !  06  3
  
*- 
-= (:
-= (:
-= (:
)  * +,'-.  $) $ !*  !*
 / ,
1 6 *-
   

   
  
   
   

       
    

      
     !# !$ 
%     '$(   % 
)
)
)  * +,'-.  $) $ !*  !* 
 / ,
. *  

'5    ! $2 
*  ! *  1'  3
/**
* My first bTest/b
* @author Carlos Kavka
* @version 1.1
*/
public class HelloWorld {
/**
* @param args the command line arguments
* @since 1.0
*/
public static void main(String[] args) {
System.out.println(Hello World);
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
. *
)  * +,'-.  $) $ !*  !* 
 / ,
 * !-

- 1 * !-@
 2@     
 1  2- @!  3
 '  @3
 
  
  2
)  * +,'-.  $) $ !*  !* 
 / ,
(  $

'  $   - 1! 2 !- 
 *      ' - 1    
 0 ''  2*6- @
int x;
double f = 0.33;
char c = ’a’;
String s = abcd;
x = 55;
)  * +,'-.  $) $ !*  !* 
 / ,
)  

' 2  $0   * 
'6  *      2 1*@
int x = 34; // decimal value
int y = 0x3ef; // hexadecimal
int z = 0772; // octal
long m = 240395922L; // long
double d = 6.28; // 6.28 is a double value
float f = 6.28F; // 6.28F is a float value

'1  2-   1!-$!
1 @
)  * +,'-.  $) $ !*  !* 
 / ,
)  

' '    - 1 0 ''  
  0 '6 1%  @
char c = ’a’; // character lowercase a
char d = ’n’; // newline
char e = ’u2122’ // unicode character (TM)

'$     !@
boolean ready = true; // boolean value true
boolean late = false; // boolean value false
)  * +,'-.  $) $ !*  !* 
 / ,
 

    0 ''0!  13
'- 1  1'      *-!@
final double pi = 3.1415; // constant PI
final int maxSize = 100; // integer constant
final char lastLetter = ’z’; // last lowercase letter
final String word = Hello; // a constant string
)  * +,'-.  $) $ !*  !* 
 / ,
96- 

-   '16- @
  '*
 8  
    
 )2 
  2
)  * +,'-.  $) $ !*  !* ?
 / ,
 '* 6- 

- ' 1  '* - @
   =7
 $  =#
   =A
 * -  =B
 *=C
)  * +,'-.  $) $ !*  !* 
 / ,
 '* - 
class Arithmetic {
public static void main(String[] args) {
int x = 12;
int y = 2 * x;
System.out.println(y);
int z = (y - x) % 5;
System.out.println(z);
final float pi = 3.1415F;
float f = pi / 0.62F;
System.out.println(f);
}
}
$ java Arithmetic
24
2
5.0669355
)  * +,'-.  $) $ !*  !* 
 / ,
 '* - 
class ShortHand {
public static void main(String[] args) {
int x = 12;
x += 5; // x = x + 5
System.out.println(x);
x *= 2; // x = x * 2
System.out.println(x);
}
}
$ java ShortHand
17
34

'' -  - @
)  * +,'-.  $) $ !*  !* 
 / ,
 '* - 
class Increment {
public static void main(String[] args) {
int x = 12,y = 12;
System.out.println(x++); // printed and then incremented
System.out.println(x);
System.out.println(++y); // incremented and then printed
System.out.println(y);
}
}
$ java Increment
12 13 13 13

 --   - @
)  * +,'-.  $) $ !*  !* 
 / ,
   6- 

- '10 2   - @
 D =EE
 D =FE
 ' =G
 2 ' =H
 ' D =GE
 2 ' D =HE

*- @   6-  0 ! 
 3
)  * +,'-.  $) $ !*  !* 
 / ,
   96- 
$ java Boolean
true
false
true
class Boolean {
public static void main(String[] args) {
int x = 12,y = 33;
System.out.println(x  y);
System.out.println(x != y - 21);
boolean test = x = 10;
System.out.println(test);
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
8  - 

- '10 2- @
 =I
 =J
 =K
 ' 11=GG
 ' 1 2'0 ' 26 =HH
 ' 1 2'0 '6 =HHH3

@   2* 
-*  $1 '    3
)  * +,'-.  $) $ !*  !* 
 / ,
8  - 
class Bits {
public static void main(String[] args) {
int x = 0x16; // 00000000000000000000000000010110
int y = 0x33; // 00000000000000000000000000110011
System.out.println(x  y);// 00000000000000000000000000010010
System.out.println(x | y);// 00000000000000000000000000110111
System.out.println(˜x); // 11111111111111111111111111101001
x = 0xf; // 00000000000000000000000000000110
System.out.println(x); // 00000000000000000000000000000110
short s = 7; // 0000000000000111
System.out.println(˜s); // 11111111111111111111111111111000
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
8  - 
class Bits2 {
public static void main(String[] args) {
int x = 0x16; //00000000000000000000000000010110
System.out.println(x  3);//00000000000000000000000010110000
int y = 0xfe; //00000000000000000000000011111110
y = 4; //00000000000000000000000000001111
System.out.println(y); //00000000000000000000000000001111
x = 9; //00000000000000000000000000001001
System.out.println(x  3);//00000000000000000000000000000001
System.out.println(x 3);//00000000000000000000000000000001
x = -9; //11111111111111111111111111110111
System.out.println(x  3);//11111111111111111111111111111110
System.out.println(x 3);//00011111111111111111111111111110
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
)2 - 

- '10 2- @
 =II
 =JJ
 =F

@'2 -  !$
-- 6-   
 3
)  * +,'-.  $) $ !*  !* ?
 / ,
)2 - 
$ java Logical
true
false
true
class Logical {
public static void main(String[] args) {
int x = 12,y = 33;
double d = 2.45,e = 4.54;
System.out.println(x  y  d  e);
System.out.println(!(x  y));
boolean test = ’a’  ’z’;
System.out.println(test || d - 2.1  0);
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 2- 

- * !- 1 2@
    =7
 * !*333

@1'6- $2 0 '  2
'7- ''6 2* 
   23

@ 2 $ *- 0 'EE
FE3
)  * +,'-.  $) $ !*  !* 
 / ,
 2- 
$ java Strings
Hello World!
The value of i is 35 and the value of j is 44
class Strings {
public static void main(String[] args) {
String s1 = Hello +  World!;
System.out.println(s1);
int i = 35,j = 44;
System.out.println(The value of i is  + i +
 and the value of j is  + j);
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 2- 
$ java Strings2
true
false
class Strings2 {
public static void main(String[] args) {
String s1 = Hello;
String s2 = Hello;
System.out.println(s1.equals(s2));
System.out.println(s1.equals(Hi));
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
  2

-1*  *  !-    '
0''  ,1  $3
class TestWide {
public static void main(String[] args) {
int a = ’x’; // ’x’ is a character
long b = 34; // 34 is an int
float c = 1002; // 1002 is an int
double d = 3.45F; // 3.45F is a float
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
  2

- 1!   0'   $
   ! ' - 3
class TestNarrow {
public static void main(String[] args) {
long a = 34;
int b = (int)a; // a is a long
double d = 3.45;
float f = (float)d; // d is a double
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 

- ' *1  
' 3

@'  '    
6- *$ 3
)  * +,'-.  $) $ !*  !* 
 / ,
 = 1
$ java If
letter: x
class If {
public static void main(String[] args) {
char c = ’x’;
if ((c = ’a’  c = ’z’) || (c = ’A’  c = ’Z’))
System.out.println(letter:  + c);
else
if (c = ’0’  c = ’9’)
System.out.println(digit:  + c);
else {
System.out.println(the character is:  + c);
System.out.println(it is not a letter);
System.out.println(and it is not a digit);
}
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 =0' 
$ java While
Incremented 22 times
class While {
public static void main(String[] args) {
final float initialValue = 2.34F;
final float step = 0.11F;
final float limit = 4.69F;
float var = initialValue;
int counter = 0;
while (var  limit) {
var += step;
counter++;
}
System.out.println(Incremented  + counter +  times);
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 =1
$ java For
Incremented 22 times
class For {
public static void main(String[] args) {
final float initialValue = 2.34F;
final float step = 0.11F;
final float limit = 4.69F;
int counter = 0;
for (float var = initialValue;var  limit;var += step)
counter++;
System.out.println(Incremented  + counter +  times);
}
}
)  * +,'-.  $) $ !*  !* ?
 / ,
 =$ ,A  
$ java BreakContinue
0 2 4 6 done.
class BreakContinue {
public static void main(String[] args) {
for (int counter = 0;counter  10;counter++) {
// start a new iteration if the counter is odd
if (counter % 2 == 1) continue;
// abandon the loop if the counter is equal to 8
if (counter == 8) break;
// print the value
System.out.println(counter);
}
System.out.println(done.);
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 =0  '
class Switch {
public static void main(String[] args) {
boolean leapYear = true;
int days = 0;
for(int month = 1;month = 12;month++) {
switch(month) {
case 1: // months with 31 days
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days += 31;
break;
)  * +,'-.  $) $ !*  !* 
 / ,
 =0  '
$ java Switch
number of days: 366
case 2: // February is a special case
if (leapYear)
days += 29;
else
days += 28;
break;
default: // it must be a month with 30 days
days += 30;
break;
}
}
System.out.println(number of days:  + days);
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 !

 ! $ *$1*
1'  *!-@

@'     - 1!  3
40   $ 10'    @
int[] a; // an unitialized array of integers
float[] b; // an unitialized array of floats
String[] c; // an unitialized array of Strings
int[] a = {13,56,2034,4,55}; // size: 5
float[] b = {1.23F,2.1F}; // size: 2
String[] c = {Java,is,great}; // size: 3
)  * +,'-.  $) $ !*  !* 
 / ,
 !

;'- $  !  - 1  !
  '1'- @

*-1'  !     0 '
1  @
 1* !-*
 LML1 '  
 11 3
int i = 3,j = 5;
double[] d; // unitialized array of doubles
d = new double[i+j]; // array of 8 doubles
)  * +,'-.  $) $ !*  !* 
 / ,
 !

*- $ 0 '  2 6
0 ' 1*2' * 3

9 !  !'  **$  '  
$2'2'1'  !@
a[2] = 1000; // modify the third element of a
int len = a.length; // get the size of the array
)  * +,'-.  $) $ !*  !* 
 / ,
 !
class Arrays {
public static void main(String[] args) {
int[] a = {2,4,3,1};
// compute the summation of the elements of a
int sum = 0;
for(int i = 0;i  a.length;i++) sum += a[i];
// create an array of the size computed before
float[] d = new float[sum];
for(int i = 0;i  d.length;i++) d[i] = 1.0F / (i+1);
// print values in odd positions
for(int i = 1;i  d.length;i += 2)
System.out.println(d[ + i + ]= + d[i]);
}
}
$ java Arrays
d[1]=0.5 d[3]=0.25 d[5]=0.16666667 d[7]=0.125 d[9]=0.1
)  * +,'-.  $) $ !*  !* 
 / ,
**   2*

+' ' '*' ' $
1  10@

'2''  ! 2*'-2 * 2
' **   2*
public static void main(String[] args)
)  * +,'-.  $) $ !*  !* 
 / ,
**   2*
class CommandArguments {
public static void main(String[] args) {
for(int i = 0;i  args.length;i++)
System.out.println(args[i]);
}
}
$ java CommandArguments Hello World
Hello
World
$ java CommandArguments
$ java CommandArguments I have 25 cents
I
have
25
cents
!
  
 
*#+#
)  * +,'-.  $) $ !*  !* 
 / ,
**   2*
class Add {
public static void main(String[] args) {
if (args.length != 2) {
System.out.println(Error);
System.exit(0);
}
int arg1 = Integer.parseInt(args[0]);
int arg2 = Integer.parseInt(args[1]);
System.out.println(arg1 + arg2);
}
}
$ java Add 234 12
246
$ java Add 24
Error !
,-.
+,
*#+#
!
,.
*#
)  * +,'-.  $) $ !*  !* ?
 / ,
 

   1   $! 2'  
,!0 - 1! 2  *1 @

0   1'   $  0 '
0@
class Book {
}
Book b1 = new Book();
Book b2 = new Book();
b3 = new Book();
)  * +,'-.  $) $ !*  !* 
 / ,
 

      - $1 @
   * !      $
 1   ! *'

 # 0 '     $@

'     $ $ 0 ''
  3
class Book {
String title;
String author;
int numberOfPages;
}
)  * +,'-.  $) $ !*  !* 
 / ,
 
class ExampleBooks {
public static void main(String[] args) {
Book b = new Book();
b.title = Thinking in Java;
b.author = Bruce Eckel;
b.numberOfPages = 1129;
System.out.println(b.title +  :  + b.author +
 :  + b.numberOfPages);
}
}
class Book {
String title;
String author;
int numberOfPages;
}
/0!  1
2  3 0 
++,4
title
author
numberOfPages
)  * +,'-.  $) $ !*  !* 
 / ,
 

'   0'   1   
'  --!    3

    *'' @
 ' ' * * ' *1'  
0' ' $2
 ' - 1  1'    
' 23
)  * +,'-.  $) $ !*  !* 
 / ,
 
class ExampleBooks2 {
public static void main(String[] args) {
Book b = new Book(Thinking in Java,Bruce Eckel,1129);
System.out.println(b.title +  :  + b.author +
 :  + b.numberOfPages);
}
}
class Book {
String title;
String author;
int numberOfPages;
Book(String tit,String aut,int num) {
title = tit;
author = aut;
numberOfPages = num;
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
.1   

-  1   1'  3

' 1    !  $0'
   1  '  3
b = new Book();
)  * +,'-.  $) $ !*  !* 
 / ,
: -  

 - $1 *'   1 
 2  ! 1'!'  11*$1
2* 11!-1' 2*3
a = new Book(Thinking in Java,Bruce Eckel,1129);
b = new Book(Thinking in Java,Bruce Eckel,1129,0-13-027363);
/0!  1
2  3 0 
++,4
title
author
numberOfPages
ISBN *5+-5*,6-7-58
/0!  1
2  3 0 
++,4
title
author
numberOfPages
ISBN 09
)  * +,'-.  $) $ !*  !* 
 / ,
: -  
class Book {
String title;
String author;
int numberOfPages;
String ISBN;
Book(String tit,String aut,int num) {
title = tit; author = aut;
numberOfPages = num;
ISBN = unknown;
}
Book(String tit,String aut,int num,String isbn) {
title = tit; author = aut;
numberOfPages = num;
ISBN = isbn;
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
: -  
class ExampleBooks3 {
public static void main(String[] args) {
Book b1,b2;
b1 = new Book(Thinking in Java,Bruce Eckel,1129);
System.out.println(b1.title +  :  + b1.author +
 :  + b1.numberOfPages +  :  + b1.ISBN);
b2 = new Book(Thinking in Java,Bruce Eckel,1129,
0-13-027363-5);
System.out.println(b2.title +  :  + b2.author +
 :  + b2.numberOfPages +  :  + b2.ISBN);
}
}
$ java ExampleBooks3
Thinking in Java : Bruce Eckel : 1129 : unknown
Thinking in Java : Bruce Eckel : 1129 : 0-13-027362-5
)  * +,'-.  $) $ !*  !* 
 / ,
:'

*'  *-*'* 2'  
  =       3

  *-*  1  - 1! 2 2*
!-1' 3

  $! 2'  3
)  * +,'-.  $) $ !*  !* ?
 / ,
:'
class Book {
String title;
String author;
int numberOfPages;
String ISBN;
...
// compute initials of author's name
public String getInitials() {
String initials = ;
for(int i = 0;i  author.length();i++) {
char currentChar = author.charAt(i);
if (currentChar = ’A’  currentChar =’Z’)
initials = initials + currentChar + ’.’;
}
return initials;
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
:'
class ExampleBooks4 {
public static void main(String[] args) {
Book b;
b = new Book(Thinking in Java,Bruce Eckel,1129);
System.out.println(Initials:  + b.getInitials());
}
}
$ java ExampleBooks4
Initials: B.E. /0!  1
2  3 0 
++,4
title
author
numberOfPages
ISBN 09
)  * +,'-.  $) $ !*  !* 
 / ,
:'
class ExampleBooks5 {
public static void main(String[] args) {
Book[] a = new Book[3];
a[0] = new Book(Thinking in Java,Bruce Eckel,1129);
a[1] = new Book(Java in a nutshell,David Flanagan,353);
a[2] = new Book(Java network programming,
Elliott Rusty Harold,649);
for(int i = 0;i  a.length;i++)
System.out.println(Initials:  + a[i].getInitials());
}
}
$ java ExampleBooks5
Initials: B.E.
Initials: D.F.
Initials: E.R.H.
)  * +,'-.  $) $ !*  !* 
 / ,
:'
1   / 
: ; !
-8-
title
author
numberOfPages
ISBN 09

/0!  1
2  3 0 
++,4
title
author
numberOfPages
ISBN 09
1 90 !!
3  %  
7.4
title
author
numberOfPages
ISBN 09
=  23
=  :;
=  3
)  * +,'-.  $) $ !*  !* ?
 / ,
9D  ! D  
class ExampleBooks6 {
public static void main(String[] args) {
Book b1,b2;
b1 = new Book(Thinking in Java,Bruce Eckel,1129);
b2 = new Book(Thinking in Java,Bruce Eckel,1129);
if (b1 == b2)
System.out.println(The two books are the same);
else
System.out.println(The two books are different);
}
}
$ java ExampleBooks6
The two books are different
)  * +,'-.  $) $ !*  !* ?
 / ,
9D  ! D  
/0!  1
2  3 0 
++,4
title
author
numberOfPages
ISBN *5+-5*,6-7-58
/0!  1
2  3 0 
++,4
title
author
numberOfPages
ISBN 09
+ ,
b1 = new Book(Thinking in Java,Bruce Eckel,1129);
b2 = new Book(Thinking in Java,Bruce Eckel,1129);
if (b1 == b2)
System.out.println(The two books are the same);
else
System.out.println(The two books are different);
)  * +,'-.  $) $ !*  !* ?
 / ,
9D  ! D  
class ExampleBooks6a {
public static void main(String[] args) {
Book b1,b2;
b1 = new Book(Thinking in Java,Bruce Eckel,1129);
b2 = b1;
if (b1 == b2)
System.out.println(The two books are the same);
else
System.out.println(The two books are different);
}
}
$ java ExampleBooks6a
The two books are the same
)  * +,'-.  $) $ !*  !* ?
 / ,
9D  ! D  
/0!  1
2  3 0 
++,4
title
author
numberOfPages
ISBN 09
+
,
b1 = new Book(Thinking in Java,Bruce Eckel,1129);
b2 = b1;
if (b1 == b2)
System.out.println(The two books are the same);
else
System.out.println(The two books are different);
)  * +,'-.  $) $ !*  !* ?
 / ,
9D  ! D  
class Book {
String title;
String author;
int numberOfPages;
String ISBN;
...
// compare two books
public boolean equals(Book b) {
return (title.equals(b.title) 
author.equals(b.author) 
numberOfPages == b.numberOfPages 
ISBN.equals(b.ISBN));
}
}
)  * +,'-.  $) $ !*  !* ?
 / ,
9D  ! D  
class ExampleBooks7 {
public static void main(String[] args) {
Book b1,b2;
b1 = new Book(Thinking in Java,Bruce Eckel,1129);
b2 = new Book(Thinking in Java,Bruce Eckel,1129);
if (b1.equals(b2))
System.out.println(The two books are the same);
else
System.out.println(The two books are different);
}
}
$ java ExampleBooks7
The two books are the same
)  * +,'-.  $) $ !*  !* ??
 / ,
   $

   $ 1 ' $2'   
6   '   3

* ' '  0 !! -!1' 
  **$ -1'*$1'
  ' 0  3
)  * +,'-.  $) $ !*  !* ?
 / ,
   $
class Book {
String title;
String author;
int numberOfPages;
String ISBN;
static String owner;
...
public void setOwner(String name) {
owner = name;
}
public String getOwner() {
return owner;
}
}
)  * +,'-.  $) $ !*  !* ?
 / ,
   $
class ExampleBooks8 {
public static void main(String[] args) {
Book b1,b2;
b1 = new Book(Thinking in Java,Bruce Eckel,1129);
b2 = new Book(Java in a nutshell,David Flanagan,353);
b1.setOwner(Carlos Kavka);
System.out.println(Owner of book b1:  + b1.getOwner());
System.out.println(Owner of book b2:  + b2.getOwner());
}
}
$ java ExampleBooks8
Owner of book b1: Carlos Kavka
Owner of book b2: Carlos Kavka
)  * +,'-.  $) $ !*  !* ?
 / ,
 *'

+ '' *  1'    **$  
- $1   *'  *'3

'*'0,  !0 '   $
0 ''  3
)  * +,'-.  $) $ !*  !* 
 / ,
 *'
class Book {
String title;
String author;
int numberOfPages;
String ISBN;
static String owner;
...
public static String description() {
return Book instances can store information on books;
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 *'
class ExampleBooks9 {
public static void main(String[] args) {
Book b1 = new Book(Thinking in Java,Bruce Eckel,1129);
System.out.println(b1.description());
System.out.println(Book.description());
}
}
$ java ExampleBooks9
Book instances can store information on books
Book instances can store information on books
)  * +,'-.  $) $ !*  !* 
 / ,
   --  

'6 *-0'  01    
'      *'  * 0'
 !   1*'     3

 - $1    0 '!  *'
    **$3
)  * +,'-.  $) $ !*  !* 
 / ,
   --  
class AllStatic {
static int x;
static String s;
public static String asString(int aNumber) {
return  + aNumber;
}
public static void main(String[] args) {
x = 165;
s = asString(x);
System.out.println(s);
}
}
$ java AllStatic
165
)  * +,'-.  $) $ !*  !* 
 / ,
        

  **$  $5  2  ' 
    3

'6  1  1 - *  !-@
   
$! 
' 
 
2 
1  3
$ 3
'  LML
$  1 
1
)  * +,'-.  $) $ !*  !* 
 / ,
        
class InitialValues {
public static void main(String[] args) {
Values v = new Values();
System.out.println(v.x);
System.out.println(v.f);
System.out.println(v.s);
System.out.println(v.b);
}
}
class Values {
int x;
float f;
String s;
Book b;
}
$ java InitialValues
0 0.0 null null
)  * +,'-.  $) $ !*  !* ?
 / ,
        
class InitialValues2 {
public static void main(String[] args) {
Values v = new Values(hello);
System.out.println( + v.x + t + v.f);
System.out.println( + v.s + t + v.b);
}
}
class Values {
int x = 2;
float f = inverse(x);
String s;
Book b;
Values(String str) { s = str; }
public float inverse(int value) { return 1.0F / value; }
}
$ java InitialValues2
2 0.5
hello null
)  * +,'-.  $) $ !*  !*
 / ,
' ,!0  

',!0  0'   *'1
'  $5 3

' 0* @
  1 '  $5 1* 
*'
    1*'  3
)  * +,'-.  $) $ !*  !* 
 / ,
',!0  
B.E.
Carlos Kavka
public Book setOwner(String name) {
owner = name;
return this;
}
Book b1 = new Book(Thinking in Java,Bruce Eckel,1129);
System.out.println(b1.setOwner(Carlos Kavka).getInitials());
System.out.println(b1.getOwner());

6 *-'*';0 '- 
8,   ' $1  10@
)  * +,'-.  $) $ !*  !* 
 / ,
',!0  

'  8,' 0  @

'  $1  *1'1 @
Book(String tit,String aut,int num) {
title = tit; author = aut; numberOfPages = num;
ISBN = unknown;
}
Book(String tit,String aut,int num,String isbn) {
title = tit; author = aut; numberOfPages = num;
ISBN = isbn;
}
Book(String tit,String aut,int num,String isbn) {
this(tit,aut,num); ISBN = isbn;
}
)  * +,'-.  $) $ !*  !* 
 / ,
6 *-@ *-6  
class TestComplex {
public static void main(String[] args) {
Complex a = new Complex(1.33,4.64);
Complex b = new Complex(3.18,2.74);
Complex c = a.add(b);
System.out.println(c=a+b= + c.getReal()
+   + c.getImaginary());
Complex d = c.sub(a);
System.out.println(d=c-a= + d.getReal()
+   + d.getImaginary());
}
}
$ java TestComplex
c=a+b= 4.51 7.38 d=c-a= 3.18 2.74
+--
.7.
-+?
,6.
.8+
6-?
-+?
,6.
)  * +,'-.  $) $ !*  !* 
 / ,
6 *-@ *-6  
class Complex {
double real; // real part
double im; // imaginary part
Complex(double r,double i) {
real = r;
im = i;
}
public double getReal() {
return real;
}
public double getImaginary() {
return im;
}
}
 @ A +--B.7.$
   C @ ! $
  C @ !=!%$
)  * +,'-.  $) $ !*  !* 
 / ,
6 *-@ *-6  
// add two complex numbers
public Complex add(Complex x) {
return new Complex(real + x.real,im + x.im);
}
A  @ $(
+--
.7.
-+?
,6.
.8+
6-?
)  * +,'-.  $) $ !*  !* 
 / ,
6 *-@ *-6  
// substract two complex numbers
public Complex sub(Complex c) {
return new Complex(real - c.real,im - c.im);
}
A   @ $(
.8+
6-?
+--
.7.
-+?
,6.
)  * +,'-.  $) $ !*  !* 
 / ,
6 *-@ *-6  

'*'$  *5' - 1
' -1'* 2 0 ''  -  
2*@
public Complex addReal(double x) {
real += x;
return this;
}
Complex a = new Complex(1.33,4.64);
a.addReal(2.0);
a.addReal(3.0).addReal(3.23);
+--
.7.

---
.7.

487
.7.
)  * +,'-.  $) $ !*  !* 
 / ,
6 *-@ *-6  

+*$ 1 100    *-6
*$   -! 1''@
Complex a = new Complex(1.33,4.64);
Complex e = a;
+--
.7.
 



 +' 0 $'11 1
 87$( N
)  * +,'-.  $) $ !*  !* ?
 / ,
6 *-@ *-6  

+ 1  0    '-$*@
Complex a = new Complex(1.33,4.64);
Complex e = new Complex(a);
+--
.7.
 




Complex(Complex x) {
this(x.real,x.im);
}
+--
.7.
)  * +,'-.  $) $ !*  !* 
 / ,
'   

'    01 0  $! 2
'  - 1! 25 ' 11 3

 - $1  0  =$  $! ! 2
' '  *$ '  =-  @
class ScientificBook extends Book {
String area;
boolean proceeding = false;
}
20
 20
)  * +,'-.  $) $ !*  !* 
 / ,
'   ='   '!
20
 20 D
 ;  A
 
!  A
)  * +,'-.  $) $ !*  !* 
 / ,
'   =  
class ScientificBook extends Book {
String area;
boolean proceeding = false;
ScientificBook(String tit, String aut,
int num, String isbn, String a) {
super(tit,aut,num,isbn);
area = a;
}
}
20
 20
ScientificBook sb;
sb = new ScientificBook(
Neural Networks,
Simon Haykin,696,0-02-352761-7,
Artificial Intelligence);
20$
 20$
)  * +,'-.  $) $ !*  !* 
 / ,
'   =  
D D90
  %0
747
title
author
numberOfPages
ISBN *5*,5-8,67+56
/0!  1
2  3 0 
++,4
title
author
numberOfPages
ISBN 09
 
Book b = new Book(Thinking in Java,Bruce Eckel,1129);
ScientificBook sb = new ScientificBook(
Neural Networks,
Simon Haykin,696,0-02-352761-7,
Artificial Intelligence);
area
proceeding
  = !
)  * +,'-.  $) $ !*  !* 
 / ,
'   =*'

0*' $1  '$  - 1!
'$' 1'$5 1'   3

+' * 2  $5 '*' 
  '1 '  1' -$5 3

1  1'    '1' 2'- '
'   '!3
)  * +,'-.  $) $ !*  !* 
 / ,
'   = '  2*'
20
 20
ScientificBook sb;
sb = new ScientificBook(Neural Networks,Simon Haykin, 696,
0-02-352761-7,Artificial Intelligence);
System.out.println(sb.getInitials());
S.H.
D D90
  %0
747
title
author
numberOfPages
ISBN *5*,5-8,67+56

area
proceeding
  = ! 
 
!= $
)  * +,'-.  $) $ !*  !* 
 / ,
'   =   2*'
class ScientificBook extends Book {
String area;
boolean proceeding = false;
ScientificBook(String tit, String aut,
int num, String isbn, String a) {
super(tit,aut,num,isbn);
area = a;
}
public boolean equals(ScientificBook b){
return super.equals(b) 
area.equals(b.area) 
proceeding == b.proceeding;
}
}
20
 20
E $
E $
)  * +,'-.  $) $ !*  !* 
 / ,
'   =   2*'
public boolean equals(ScientificBook b){
return super.equals(b)  area.equals(b.area)
 proceeding == b.proceeding;
}

0- $ @
public boolean equals(ScientificBook b) {
return (title.equals(b.title)  author.equals(b.author)
 numberOfPages == b.numberOfPages
 ISBN.equals(b.ISBN)  area.equals(b.area)
 proceeding == b.proceeding;
}
+' ' $N
)  * +,'-.  $) $ !*  !* 
 / ,
'   =   2*'
class ScientificBook extends Book {
String area;
boolean proceeding = false;
ScientificBook(String tit, String aut,
int num, String isbn, String a) {
...
}
public boolean equals(ScientificBook b){
...
}
public static String description() {
return ScientificBook instances can +
 store information on  +
 scientific books;
}
}
20
 20
E $
 $
E $
 $
)  * +,'-.  $) $ !*  !* ?
 / ,
'   =0*'
class ScientificBook extends Book {
String area;
boolean proceeding = false;
ScientificBook(String tit, String aut,
int num, String isbn, String a) {
super(tit,aut,num,isbn);
area = a;
}
...
public void setProceeding() {
proceeding = true;
}
public boolean isProceeding() {
return proceeding;
}
}
20
 20
E $
 $
E $
 $
C !$
C !$
)  * +,'-.  $) $ !*  !* 
 / ,
'   =0*'
class TestScientificBooks {
public static void main(String[] args) {
ScientificBook sb1,sb2;
sb1 = new ScientificBook(Neural Networks,Simon Haykin,
696,0-02-352761-7,
Artificial Intelligence);
sb2 = new ScientificBook(Neural Networks,Simon Haykin,
696,0-02-352761-7,
Artificial Intelligence);
sb2.setProceeding();
System.out.println(sb1.getInitials());
System.out.println(sb1.equals(sb2));
System.out.println(sb2.description());
}
}
$ java TestScientificBooks
S.H. false
ScientificBook instances can store information on scientific books
)  * +,'-.  $) $ !*  !* 
 / ,
 !

 !  - ' *  1 $5 
     1 - 1   @
Book b1 = new Book(Thinking in Java,Bruce Eckel,1129);
System.out.println(b1 instanceof Book);
True
)  * +,'-.  $) $ !*  !* 
 / ,
 =

 =' *  1 $5 @
Book b1 = new Book(Thinking in Java,Bruce Eckel,1129);
System.out.println(b1.getClass().getName());
Book
)  * +,'-.  $) $ !*  !* 
 / ,
 !   =
class TestClass {
public static void main(String[] args) {
Book b1 = new Book(Thinking in Java,Bruce Eckel,1129);
ScientificBook sb1 = new ScientificBook(Neural Networks,
Simon Haykin,696,0-02-352761-7,
Artificial Intelligence);
System.out.println(b1.getClass().getName());
System.out.println(sb1.getClass().getName());
System.out.println(b1 instanceof Book);
System.out.println(sb1 instanceof Book);
System.out.println(b1 instanceof ScientificBook);
System.out.println(sb1 instanceof ScientificBook);
}
}
$ java TestClass
class Book
class ScientificBook
true true false true
)  * +,'-.  $) $ !*  !* 
 / ,
%  

- , 2    0' '   $
2  3

    !*$1   ! 
$!--$! '   3

1- 1      '  
- , 23
)  * +,'-.  $) $ !*  !* 
 / ,
%  

'     '!* 2   
- , 2@
import java.util.*; // or import java.util.Date
class TestDate {
public static void main(String[] args) {
System.out.println(new Date());
}
}
 :
   ,8 *4.?8. A3  ,**7
)  * +,'-.  $) $ !*  !* 
 / ,
%  

 , 2 * 1 $! 2',!0
- , 2 ' 1    @
package myBook;
class Book {
String title;
String author;
int numberOfPages;
}
package myBook;
class ExampleBooks {
public static void main(String[] args) {
Book b = new Book();
b.title = Thinking in Java;
b.author = Bruce Eckel;
b.numberOfPages = 1129;
System.out.println(b.title +  :  +
b.author +  :  + b.numberOfPages);
}
}
20
3 20
)  * +,'-.  $) $ !*  !* 
 / ,
%  

 ' $ -      $
'  - ' =O)4@
package it.infn.ts;
class Book {
...
}



import it.infn.ts.Book;
class TestBook {
...
Book b = new Book(...);
...
}
96 *-1@
)  * +,'-.  $) $ !*  !* 
 / ,
 

 - $ ' *' 
 $1*'  0 ''* 1 @
  
   
   
20
 20 D
 ;  A
   (
  (
   (
)  * +,'-.  $) $ !*  !* ?
 / ,
 

'1   01 1*   
' $2' *- , 23

6 *-  - $'-  2
  1   1 $, 00 !@

$!5  2'  **$@
+C !$(
+ ! @ (
)  * +,'-.  $) $ !*  !* 
 / ,
 

% !00       **$
2    -  @

0'-  2     !$ 
0 ''* 2@
class ScientificBook extends Book {
private String area;
private boolean proceeding = false;
...............
}
sb1.setProceeding(); // fine
sb1.proceeding = true; // wrong
)  * +,'-.  $) $ !*  !* 
 / ,
 

' *   $ -- *'3
class ScientificBook extends Book {
private String area;
private boolean proceeding = false;
...............
private boolean initialized() {
return title != null  author != null 
numberOfPages != 0  area != null;
}
}
+'     =$ 1*N
)  * +,'-.  $) $ !*  !* 
 / ,
 

'* 1 !     $ -- 
  *'@
 ! @

1     0$   23

1  *' $1   $  3
   @

 $       '  $
  3

 $ *'' $!  *$
1   $  3
)  * +,'-.  $) $ !*  !* 
 / ,
 

6 *-@'  ;8   $  3
=2
=3/2 =  2
)  * +,'-.  $) $ !*  !* 
 / ,
 
abstract class IOBoard {
String name;
int numErrors = 0;
IOBoard(String s) {
System.out.println(IOBoard constructor);
name = s;
}
final public void anotherError() {
numErrors++;
}
final public int getNumErrors() {
return numErrors;
}
abstract public void initialize();
abstract public void read();
abstract public void write();
abstract public void close();
}
)  * +,'-.  $) $ !*  !* 
 / ,
 
class IOSerialBoard extends IOBoard {
int port;
IOSerialBoard(String s,int p) {
super(s); port = p;
System.out.println(IOSerialBoard constructor);
}
public void initialize() {
System.out.println(initialize method in IOSerialBoard);
}
public void read() {
System.out.println(read method in IOSerialBoard);
}
public void write() {
System.out.println(write method in IOSerialBoard);
}
public void close() {
System.out.println(close method in IOSerialBoard);
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 
class IOEthernetBoard extends IOBoard {
long networkAddress;
IOEthernetBoard(String s,long netAdd) {
super(s); networkAddress = netAdd;
System.out.println(IOEthernetBoard constructor);
}
public void initialize() {
System.out.println(initialize method in IOEthernetBoard);
}
public void read() {
System.out.println(read method in IOEthernetBoard);
}
public void write() {
System.out.println(write method in IOEthernetBoard);
}
public void close() {
System.out.println(close method in IOEthernetBoard);
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 

  1  $    @
class TestBoards1 {
public static void main(String[] args) {
IOSerialBoard serial = new IOSerialBoard(my first port,
0x2f8);
serial.initialize();
serial.read();
serial.close();
}
}
$ java TestBoards1
IOBoard constructor
IOSerialBoard constructor
initialize method in IOSerialBoard
read method in IOSerialBoard
close method in IOSerialBoard
)  * +,'-.  $) $ !*  !* 
 / ,
% 
class TestBoards2 {
public static void main(String[] args) {
IOBoard[] board = new IOBoard[3];
board[0] = new IOSerialBoard(my first port,0x2f8);
board[1] = new IOEthernetBoard(my second port,0x3ef8dda8);
board[2] = new IOEthernetBoard(my third port,0x3ef8dda9);
for(int i = 0;i  3;i++)
board[i].initialize();
for(int i = 0;i  3;i++)
board[i].read();
for(int i = 0;i  3;i++)
board[i].close();
}
}
  
*#+#
/
,#
)  * +,'-.  $) $ !*  !* ?
 / ,
 !

 1   $  '0 '
- 1! 2'!' 3

 1 , ,   1   0'@
 1     1  
 *'' $!  -$
     $  1* 1 3
)  * +,'-.  $) $ !*  !* 
 / ,
 !

 1 1- 1! 2;$ $' @

 1 1- 1! 2  $' @
interface IOBoardInterface {
public void initialize();
public void read();
public void write();
public void close();
}
interface NiceBehavior {
public String getName();
public String getGreeting();
public void sayGoodBye();
}
)  * +,'-.  $) $ !*  !* 
 / ,
 !
class IOSerialBoard2 implements IOBoardInterface {
int port;
IOSerialBoard(String s,int p) {
super(s); port = p;
System.out.println(IOSerialBoard constructor);
}
public void initialize() {
System.out.println(initialize method in IOSerialBoard);
}
public void read() {
System.out.println(read method in IOSerialBoard);
}
public void write() {
System.out.println(write method in IOSerialBoard);
}
public void close() {
System.out.println(close method in IOSerialBoard);
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 !

    *-**'  1 3
+' '*''  *-*N
class IOSerialBoard2 implements IOBoardInterface,
NiceBehavior {
....
}
)  * +,'-.  $) $ !*  !* 
 / ,
' 

' $'  *  $'
6  @
class TestExceptions1 {
public static void main(String[] args) {
String s = Hello;
System.out.print(s.charAt(10));
}
}
$ java TestExceptions1
Exception in thread main
java.lang.StringIndexOutOfBoundsException:
String index out of range: 10
at java.lang.String.charAt(String.java:499)
at TestExceptions1.main(TestExceptions1.java:11)
)  * +,'-.  $) $ !*  !* 
 / ,
' 

'6 -  $ --@
class TestExceptions2 {
public static void main(String[] args) {
String s = Hello;
try {
System.out.print(s.charAt(10));
} catch (Exception e) {
System.out.println(No such position);
}
}
$ java TestExceptions2
No such position
)  * +,'-.  $) $ !*  !* 
 / ,
' 

 - $- 1!  -   
6 - @
class TestExceptions3 {
public static void main(String[] args) {
String s = Hello;
try {
System.out.print(s.charAt(10));
} catch (StringIndexOutOfBoundsException e) {
System.out.println(No such position);
}
}
$ java TestExceptions3
No such position
)  * +,'-.  $) $ !*  !* 
 / ,
' 

 - $* 2 6 - $5 @
class TestExceptions4 {
public static void main(String[] args) {
String s = Hello;
try {
System.out.print(s.charAt(10));
} catch (StringIndexOutOfBoundsException e) {
System.out.println(No such position);
System.out.println(e.toString());
}
}
$ java TestExceptions4
No such position
java.lang.StringIndexOutOfBoundsException:
String index out of range: 10
)  * +,'-.  $) $ !*  !* 
 / ,
' 
 F  A / 
   = !  $ 
% 
 !    /  / 
/  @   /*$(
/  @   / $ 5 +$(
!  @ !; G H G BB $(
% $(
)  /  !=23  +$ 
% !  B  I$(
)  / D C3  ,$ 
% D   !$(
)  % 
% '$(
)
)
)

+  * -  '$ ,  1  !  @
)  * +,'-.  $) $ !*  !* 
 / ,
' 
 F  A / 
   = !  $ 
% 
 !    /  / 
/  @   /*$(
/  @   / $ 5 +$(
!  @ !; G H G BB $(
% $(
)  /  !=23  +$ 
% !  B  I$(
)  / D C3  ,$ 
% D   !$(
)  % 
% '$(
)
)
) !   @    (
F  A /  @ 9 F  A /$(
 = $(
;  H 
'
)  * +,'-.  $) $ !*  !* ?
 / ,
' 
 F  A / 
   = !  $ 
% 
 !    /  / 
/  @   /*$(
/  @   / $ 5 +$(
!  @ !; G H G BB $(
% $(
)  /  !=23  +$ 
% !  B  I$(
)  / D C3  ,$ 
% D   !$(
)  % 
% '$(
)
)
) !   @    (
F  A /  @ 9 F  A /$(
 = $(
!  B  I
'
)  * +,'-.  $) $ !*  !* 
 / ,
' 
 F  A / 
   = !  $ 
% 
 !    /  / 
/  @   /*$(
/  @   / $ 5 +$(
!  @ !; G H G BB $(
% $(
)  /  !=23  +$ 
% !  B  I$(
)  / D C3  ,$ 
% D   !$(
)  % 
% '$(
)
)
) !   @  (
F  A /  @ 9 F  A /$(
 = $(
D   !
'
)  * +,'-.  $) $ !*  !* 
 / ,
' 

'6  1-1 6 - '  $
2'3

*    *-!  '6 - 3

  - $6-' 
 '  *-!6 - 3
)  * +,'-.  $) $ !*  !* 
 / ,
 () 

--    ' *- 3

40  --1*1  **!
0$  -1* ' *0 !3

 $ '  1 *@
        '  $  
2  3
       ,0'   $
0 3
)  * +,'-.  $) $ !*  !* 
 / ,
 () 

 * $   1  @
 $! *

- -- 11 * !-3
 '   *

% $0 '; '  --3

 * $@
 $11
 $11
)  * +,'-.  $) $ !*  !* 
 / ,
 () 
import java.io.*;
class WriteBytes {
public static void main(String[] args) {
int data[] = { 10,20,30,40,255 };
FileOutputStream f;
try {
f = new FileOutputStream(file1.data);
for(int i = 0;i  data.length;i++)
f.write(data[i]);
f.close();
} catch (IOException e) {
System.out.println(Error with files:+e.toString());
}
}
}
$!  *
)  * +,'-.  $) $ !*  !* 
 / ,
 () 
import java.io.*;
class ReadBytes {
public static void main(String[] args) {
FileInputStream f;
try {
f = new FileInputStream(file1.data);
int data;
while((data = f.read()) != -1)
System.out.println(data);
f.close();
} catch (IOException e) {
System.out.println(Error with files:+e.toString());
}
}
}
$ java ReadBytes
10 20 30 40 255
$!  *
)  * +,'-.  $) $ !*  !* 
 / ,
 () 
import java.io.*;
class WriteArrayBytes {
public static void main(String[] args) {
byte data[] = { 10,20,30,40,-128 };
FileOutputStream f;
try {
f = new FileOutputStream(file1.data);
f.write(data,0,data.length);
f.close();
} catch (IOException e) {
System.out.println(Error with files:+e.toString());
}
}
}
$!  *
)  * +,'-.  $) $ !*  !* 
 / ,
 () 
import java.io.*;
class WriteBufferedBytes {
public static void main(String[] args) {
int data[] = { 10,20,30,40,255 };
FileOutputStream f;
BufferedOutputStream bf;
try {
f = new FileOutputStream(file1.data);
bf = new BufferedOutputStream(f);
for(int i = 0;i  data.length;i++)
bf.write(data[i]);
bf.close();
} catch (IOException e) {
System.out.println(Error with files:+e.toString());
}
}
}
$11$!  *
)  * +,'-.  $) $ !*  !* 
 / ,
 () 
$ java ReadBufferedBytes
10 20 30 40 255
import java.io.*;
class ReadBufferedBytes {
public static void main(String[] args) {
FileInputStream f; BufferedInputStream bf;
try {
f = new FileInputStream(file1.data);
bf = new BufferedInputStream(f);
int data;
while((data = bf.read()) != -1)
System.out.println(data);
bf.close();
} catch (IOException e) {
System.out.println(Error with files:+e.toString());
}
}
}
$11$!  *
)  * +,'-.  $) $ !*  !* ?
 / ,
 () 

  $11$!  *  0 '
   * -  =1 * !-3

'10 2* 2 - @
 #= #= 
 # = # = 
  =  =
  =  = 
  =  = 
   =   = 
 = =
)  * +,'-.  $) $ !*  !* 
 / ,
 () 
  $11$!  *
import java.io.*;
class WriteData {
public static void main(String[] args) {
double data[] = { 10.3,20.65,8.45,-4.12 };
FileOutputStream f; BufferedOutputStream bf;
DataOutputStream ds;
try {
f = new FileOutputStream(file1.data);
bf = new BufferedOutputStream(f);
ds = new DataOutputStream(bf);
ds.writeInt(data.length);
for(int i = 0;i  data.length;i++)
ds.writeDouble(data[i]);
ds.writeBoolean(true); ds.close();
} catch (IOException e) {
System.out.println(Error with files:+e.toString());
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 () 
  $11$!  *
import java.io.*;
class ReadData {
public static void main(String[] args) {
FileOutputStream f; BufferedOutputStream bf;
DataOutputStream ds;
try {
f = new FileInputStream(file1.data);
bf = new BufferedInputStream(f);
ds = new DataInputStream(bf);
int length = ds.readInt();
for(int i = 0;i  length;i++)
System.out.println(ds.readDouble());
System.out.println(ds.readBoolean());
ds.close();
} catch (IOException e) {
System.out.println(Error with files:+e.toString());
}
}
$ java ReadData
10.3
20.65
8.45
-4.12
true
)  * +,'-.  $) $ !*  !* 
 / ,
 () 

' '    * $ 
0  '  3

'6 '*''  $0 
   ' , 1 *@
  =   
  =PQ  
  =
)  * +,'-.  $) $ !*  !* 
 / ,
 () 
$11 '    *
import java.io.*;
class WriteText {
public static void main(String[] args) {
FileWriter f;
BufferedWriter bf;
try {
f = new FileWriter(file1.text);
bf = new BufferedWriter(f);
String s = Hello World!;
bf.write(s,0,s.length());
bf.newLine();
bf.write(Java is nice!!!,8,5);
bf.newLine();
bf.close();
} catch (IOException e) {
System.out.println(Error with files:+e.toString());
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 () 
$11 '    *
import java.io.*;
class ReadText {
public static void main(String[] args) {
FileReader f;
BufferedReader bf;
try {
f = new FileReader(file1.text);
bf = new BufferedReader(f);
String s;
while ((s = bf.readLine()) != null)
System.out.println(s);
bf.close();
} catch (IOException e) {
System.out.println(Error with files:+e.toString());
}
}
$ java ReadText
HelloWorld!
nice!
)  * +,'-.  $) $ !*  !* 
 / ,
 () 
   -
import java.io.*;
class StandardInput {
public static void main(String[] args) {
InputStreamReader isr;
BufferedReader br;
try {
isr = new InputStreamReader(System.in);
br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null)
System.out.println(line);
} catch (IOException e) {
System.out.println(Error with standard input);
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
 () 
   -0 ' 
import java.io.*;
class ReadWithScanner {
public static void main(String[] args) {
try {
Scanner sc = new Scanner(System.in);
int sum = 0;
while (sc.hasNextInt()) {
int anInt = sc.nextInt();
sum += anInt;
}
System.out.println(sum);
} catch (IOException e) {
System.out.println(Error with standard input);
}
}
$ java ReadWithScanner
11
9
^D
20
)  * +,'-.  $) $ !*  !* 
 / ,
*

 - $  ! 11 , 
' 3

''   ** $0'* 

'  '    $! ' 3
)  * +,'-.  $) $ !*  !* 
 / ,
*
class CharThread extends Thread {
char c;
CharThread(char aChar) {
c = aChar;
}
public void run() {
while (true) {
System.out.println(c);
try {
sleep(100);
} catch (InterruptedException e) {
System.out.println(Interrupted);
}
}
}
}
)  * +,'-.  $) $ !*  !* ?
 / ,
*
class TestThreads {
public static void main(String[] args) {
CharThread t1 = new CharThread(’a’);
CharThread t2 = new CharThread(’b’);
t1.start();
t2.start();
}
}
$ java TestThreads
a
b
a
b
...
)  * +,'-.  $) $ !*  !* 
 / ,
*
class ProducerConsumer {
public static void main(String[] args) {
Buffer buffer = new Buffer(10);
Producer prod = new Producer(buffer);
Consumer cons = new Consumer(buffer);
prod.start();
cons.start();
}
}
   
 

!- - # * --  @
)  * +,'-.  $) $ !*  !* 
 / ,
' 

  * 1* '$11@
/ 

/ 
 
/ 

/ 
  !  8
!  ? !
)  * +,'-.  $) $ !*  !* 
 / ,
' 
 


R 2 $!' * 1'$11@
/ 
 

/ 
!  ,
)  * +,'-.  $) $ !*  !* 
 / ,
*
class Producer extends Thread {
Buffer buffer;
public Producer(Buffer b) {
buffer = b;
}
public void run() {
double value = 0.0;
while (true) {
buffer.insert(value);
value += 0.1;
}
}
}
class Consumer extends Thread {
Buffer buffer;
public Consumer(Buffer b) {
buffer = b;
}
public void run() {
while(true) {
char element = buffer.delete()
System.out.println(element);
}
}
}
)  * +,'-.  $) $ !*  !* 
 / ,
*
class Buffer {
double buffer[];
int head = 0,tail = 0,size = 0,numElements = 0;
public Buffer(int s) {
buffer = new double[s];
size = s;
}
public void insert(double element) {
buffer[tail] = element; tail = (tail + 1) % size;
numElements++;
}
public double delete() {
double value = buffer[head]; head = (head + 1) % size;
numElements--;
return value;
}
}
40 333 0,
)  * +,'-.  $) $ !*  !* 
 / ,
*

' *-*  0,F
 '*'  =  =-   !
 ' * 3
 '*'  = ' , 1'   
1 '$11
 '*' = ' , 1'   
-  1    $ '$113

'  1! '   3
)  * +,'-.  $) $ !*  !* 
 / ,
*

! '        $
'  0 ' +*'@
 '!  0$6   !'
 *   3
 9 '   '   ,! ' ' 3
   
 
% /J $
% /J  $
)  * +,'-.  $) $ !*  !* 
 / ,
*

'  ! ' 0 '   !@
 '* 2 -'  2' -
  2' ,3
 '* 2 ! 0 , 0  2' '
- 2 ,3
)  * +,'-.  $) $ !*  !* 
 / ,
*
   
 
% /J $
% /J  $
% 
9$
%$ % /J  $
)  * +,'-.  $) $ !*  !* ?
 / ,
*
public synchronized void insert(double element) {
if (numElements == size) {
try {
wait();
} catch(InterruptedException e) {
System.out.println(Interrupted);
}
}
buffer[tail] = element;
tail = (tail + 1) % size;
numElements++;
notify();
}
)  * +,'-.  $) $ !*  !* 
 / ,
*
public synchronized double delete() {
if (numElements == 0) {
try {
wait();
} catch(InterruptedException e) {
System.out.println(Interrupted);
}
}
double value = buffer[head];
head = (head + 1) % size;
numElements--;
notify();
return value;
}
)  * +,'-.  $) $ !*  !* 
 / ,
 ! 

+'00 *-  2'6 *-1' 
*1  1 02 @

  $'6  $ --    
  ! -!'11 3
$ ls *.class
Buffer.class
Consumer.class
ProducerConsumer.class
Producer.class
)  * +,'-.  $) $ !*  !* 
 / ,
 ! 

$=  ' 1  $   
*  - $!' ** 5 3

   $1     !1  
*  11 0' '   1*  '1 
 3

' ** 5    1 *  11  '
  !,*(- 0 ' *,- *., 5
$0'   !3
)  * +,'-.  $) $ !*  !* ?
 / ,
 ! 

'   1' 1  $ 10@

0 '@

' --   $6  10@
$ jar cmf mylines.txt ProducerConsumer.jar 
ProducerConsumer.class Producer.class 
Consumer.class Buffer.class
$ cat mylines.txt
Main-Class: ProducerConsumer
$ java -jar ProducerConsumer.jar
)  * +,'-.  $) $ !*  !* ?
 / ,
 ! 

  $  - ! 10@

'  *  11 0  @
$ jar tf ProducerConsumer.jar
META-INF/
META-INF/MANIFEST.MF
ProducerConsumer.class
Producer.class
Consumer.class
Buffer.class
Manifest-Version: 1.0
Main-Class: ProducerConsumer
Created-By: 1.2.2 (Sun Microsystems Inc.)
)  * +,'-.  $) $ !*  !* ?
 / ,


  $  2' - -- *- 
- ,-!  *  --  3

* 1    !  *  '* ,
** 6 -' ' -- '  *-!
 113

'- 1  1'  **  1  
*1S:) 3

 $ 6  $5  3
)  * +,'-.  $) $ !*  !* ?
 / ,

?xml version=1.0?
!-- first build file --
project name=HelloWorld default=build basedir=.
target name=build
javac srcdir=. /
/target
/project
# ant
Buildfile: build.xml
build:
[javac] Compiling 1 source file
BUILD SUCCESSFUL
Total time: 3 seconds

6 *-1  .'1 @
)  * +,'-.  $) $ !*  !* ?
 / ,


 - 1 '*
 
  
  

 - 1 1 *@
)  * +,'-.  $) $ !*  !* ?
 / ,


-   ,  $@

'  $$ $!- 2'--!
 *$0/0 13
property name=conditionOK value=yes/
property name=src-dir location=src/
javac srcdir=${src-dir}/
)  * +,'-.  $) $ !*  !* ??
 / ,


6 *-@
A 

 

A  A 
A   A
)  * +,'-.  $) $ !*  !* ?
 / ,

?xml version=1.0?
!-- first build file --
project name=Complex default=dist basedir=.
!-- set global properties --
property name=src-dir location=src/
property name=build-dir location=build/
property name=dist-dir location=dist/
target name=init description=initial task
!-- Create the build directory --
mkdir dir=${build-dir}/
/target
)  * +,'-.  $) $ !*  !* ?
 / ,

target name=build depends=init
description=compile task
javac srcdir=${src-dir} destdir=${build-dir}/
/target
target name=dist depends=build
description=build distribution 
mkdir dir=${dist-dir}/
jar jarfile=${dist-dir}/complex.jar
basedir=${build-dir}
include name=*.class/
manifest
attribute name=Main-Class value=TestComplex/
/manifest
/jar
/target
)  * +,'-.  $) $ !*  !* ?
 / ,

target name=clean description=clean up
delete dir=${build-dir}/
delete dir=${dist-dir}/
/target
/project
$ ant
Buildfile: build.xml
init:
[mkdir] Created dir: ComplexNumbers/build
build:
[javac] Compiling 2 source files to ComplexNumbers/build
dist:
[mkdir] Created dir: ComplexNumbers/dist
[jar] Building jar: ComplexNumbers/dist/complex.jar
BUILD SUCCESSFUL
Total time: 11 seconds
)  * +,'-.  $) $ !*  !*  
 / ,
  *-

$ $6   --   -
 '    !10 1
-- @
   
*-     1
  
6
)  * +,'-.  $) $ !*  !*  
 / ,
  *-

-@ *-   

-@   
$ javac HelloWorld.java
$ java -classpath /tini/bin/tini.jar TINIConvertor 
-f HelloWorld.class 
-d /tini/bin/tini.db -o HelloWorld.tini
)  * +,'-.  $) $ !*  !*  
 / ,
  *-

-@ 1
$ ftp tini
Connected to tini.
220 Welcome to slush. (Version 1.17) Ready for user login.
User (tini:(none)): root
331 root login allowed. Password required.
Password:
230 User root logged in.
ftp bin
200 Type set to Binary
ftp put HelloWorld.tini
200 PORT Command successful.
150 BINARY connection open, putting HelloWorld.tini
226 Closing data connection.
ftp: 183 bytes sent in 0.00 Seconds.
ftp bye
)  * +,'-.  $) $ !*  !*  
 / ,
  *-

-@6  
# telnet tini
Connected to tini.
Escape character is ’ˆ]’.
Welcome to slush. (Version 1.17)
tini00a93c login: root
tini00a93c password:
TINI / java HelloWorld.tini
HelloWorld
)  * +,'-.  $) $ !*  !*  
 / ,
  
?xml version=1.0 encoding=UTF-8?
project name=HelloWorld default=convert basedir=.
taskdef name=tini classname=net.geeba.ant.Tini/
property name=tini.dir value=/tini/
property name=tini.db value=${tini.dir}/bin/tini.db/
property name=tini.classes
value=${tini.dir}/bin/tiniclasses.jar/
property name=tini.jar
value=${tini.dir}/bin/tini.jar/
target name=init description=initialize
mkdir dir=build/
/target
)  * +,'-.  $) $ !*  !*  
 / ,
  
target name=build depends=init description=compile
javac srcdir=src destdir=build
bootclasspath=${tini.classes}/
/target
target name=convert depends=build description=convert
tini outputfile=HelloWorld.tini database=${tini.db}
classpath=${tini.jar}
convert dir=build/
/tini
/target
target name=clean description=clean
delete dir=build/
delete file=HelloWorld.tini/
/target
/project
)  * +,'-.  $) $ !*  !*  ?
 / ,
  
$ ant
Buildfile: build.xml
init:
[mkdir] Created dir: HelloWorldAnt/build
build:
[javac] Compiling 1 source file to HelloWorldAnt/build
convert:
[tini] TINIConvertor (KLA)
[tini] Version 1.24 for TINI 1.1 (Beta 2 and later ONLY!!!)
[tini] Built on or around March 20, 2002
[tini] Copyright (C) 1996 - 2002 Dallas Semiconductor Corp.
[tini] Loading class HelloWorldAnt/build/HelloWorld.class
from file HelloWorldAnt/build/HelloWorld.class
[tini] Getting UNMT...there are 0 user native methods
[tini] Class HelloWorld, size 125, CNUM 8000, TH Contrib: 19
[tini] Initial length of the application: 125
[tini] Output file size : 472
[tini] Number of string table entries: 1
BUILD SUCCESSFUL
Total time: 8 seconds

More Related Content

PDF
PDF
Thai Alcoholic Beverages Regulations 2011
PDF
Ico corporate presentation en
PDF
Wclessons atd-sm
PDF
PDF
PDF
Orden de llegada I Ultra Trail Macizo de Ubiña "Güeyos del Diablu" 2014
PDF
Report of the Export Group on the methodology for the people below the povert...
Thai Alcoholic Beverages Regulations 2011
Ico corporate presentation en
Wclessons atd-sm
Orden de llegada I Ultra Trail Macizo de Ubiña "Güeyos del Diablu" 2014
Report of the Export Group on the methodology for the people below the povert...

Similar to java-introduction.pdf (20)

PDF
Hand Outs On the neurobiology of Touch and Trauma somatic experiencing from ...
PDF
Présentation Quadrans
PDF
Perspec sys tokenization paper_a4
PDF
Perspecsys - TOKENISATION FOR CLOUD DATA PROTECTION
PDF
Offbeat
PDF
PDF
Story bird resources_part_3
PDF
Apostila Ambiente, Energia e Sociedade. Unidade 1.
PDF
“Innovación para el empoderamiento de la ciudadanía a través de las tic”
PDF
Gate ee previous year papers 1992 2010
PDF
A Little Bit Of Insight 2011
PDF
Genro de Pedro Corrêa é preso em nova fase da Lava Jato
PDF
PDF
Análise da cartelería electoral na década dos 80 en Galicia
PDF
Mazzeo's Sample Graphs from Internship Report
PDF
Upload obeclms
PDF
"International Markets and Financing Opportunities for Biofuels"
PDF
Cindy thyfault advanced biofuels market presentation 11-9-11
PDF
Surgimento dasociologia
PDF
Vers la performance globale de la commande publique
Hand Outs On the neurobiology of Touch and Trauma somatic experiencing from ...
Présentation Quadrans
Perspec sys tokenization paper_a4
Perspecsys - TOKENISATION FOR CLOUD DATA PROTECTION
Offbeat
Story bird resources_part_3
Apostila Ambiente, Energia e Sociedade. Unidade 1.
“Innovación para el empoderamiento de la ciudadanía a través de las tic”
Gate ee previous year papers 1992 2010
A Little Bit Of Insight 2011
Genro de Pedro Corrêa é preso em nova fase da Lava Jato
Análise da cartelería electoral na década dos 80 en Galicia
Mazzeo's Sample Graphs from Internship Report
Upload obeclms
"International Markets and Financing Opportunities for Biofuels"
Cindy thyfault advanced biofuels market presentation 11-9-11
Surgimento dasociologia
Vers la performance globale de la commande publique
Ad

Recently uploaded (20)

PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
Chapter 5: Probability Theory and Statistics
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
Architecture types and enterprise applications.pdf
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Hybrid model detection and classification of lung cancer
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Getting Started with Data Integration: FME Form 101
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
Web App vs Mobile App What Should You Build First.pdf
PPTX
The various Industrial Revolutions .pptx
OMC Textile Division Presentation 2021.pptx
Assigned Numbers - 2025 - Bluetooth® Document
Module 1.ppt Iot fundamentals and Architecture
Chapter 5: Probability Theory and Statistics
DP Operators-handbook-extract for the Mautical Institute
Architecture types and enterprise applications.pdf
A novel scalable deep ensemble learning framework for big data classification...
Hybrid model detection and classification of lung cancer
A contest of sentiment analysis: k-nearest neighbor versus neural network
Group 1 Presentation -Planning and Decision Making .pptx
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Developing a website for English-speaking practice to English as a foreign la...
Getting Started with Data Integration: FME Form 101
Getting started with AI Agents and Multi-Agent Systems
A comparative study of natural language inference in Swahili using monolingua...
Final SEM Unit 1 for mit wpu at pune .pptx
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
O2C Customer Invoices to Receipt V15A.pptx
Web App vs Mobile App What Should You Build First.pdf
The various Industrial Revolutions .pptx
Ad

java-introduction.pdf

  • 1. 1875-4 First Latin American Regional Workshop on Distributed Laboratory Instrumentation in Physics Carlos Kavka 7 January - 4 February, 2008 INFN Sezione di Trieste Area di Ricerca Padriciano 99 34012 Trieste I t a l y Introduction to JAVA - slides -
  • 2. !#$ ! % ' ( '
  • 3. ) * +,'-. $) $ !* !* / , !-01 2 2' ' 2 1 ' ! 3 ' '4 $0
  • 4. ) * +,'-. $) $ !* !* / , 2 -- $5 2 2 0 ' ! 6 * 77$* 21 ' *-6 13 8 ,0 *- 8 ,0 *- $ !0 ' - 96 11 ! . -- ! '-2 ** '-2 ** $ !**! - $ :*! '2'$5 6- 96- - $ ! !- !- 1! $5 ;$5 ;- 2 : 21- ** $
  • 5. ) * +,'-. $) $ !* !* / , '00 0$' -- '1 $ -2 * $ - !0 0 ' 0$- 2 6 ! *-0 ' - $$03 -- -2 *' $ 6 -!1 !0$$03 -- -2 * 2$6 - $$03
  • 6. ) * +,'-. $) $ !* !* / , ' - 1* -2 * *- $!# , 1* ' -- 3 '-2 * '6 $! - ' ( : ' = (:3 *- -= (:
  • 7. ) * +,'-. $) $ !* !* ? / , ' - 1* ' *- -1' ' 1' *-3 '- - ! 06 3 *- -= (: -= (: -= (:
  • 8. ) * +,'-. $) $ !* !* / , 1 6 *- !# !$ % '$( % ) )
  • 9. ) * +,'-. $) $ !* !* / , . * '5 ! $2 * ! * 1' 3 /** * My first bTest/b * @author Carlos Kavka * @version 1.1 */ public class HelloWorld { /** * @param args the command line arguments * @since 1.0 */ public static void main(String[] args) { System.out.println(Hello World); } }
  • 10. ) * +,'-. $) $ !* !* / , . *
  • 11. ) * +,'-. $) $ !* !* / , * !- - 1 * !-@ 2@ 1 2- @! 3 ' @3 2
  • 12. ) * +,'-. $) $ !* !* / , ( $ ' $ - 1! 2 !- * ' - 1 0 '' 2*6- @ int x; double f = 0.33; char c = ’a’; String s = abcd; x = 55;
  • 13. ) * +,'-. $) $ !* !* / , ) ' 2 $0 * '6 * 2 1*@ int x = 34; // decimal value int y = 0x3ef; // hexadecimal int z = 0772; // octal long m = 240395922L; // long double d = 6.28; // 6.28 is a double value float f = 6.28F; // 6.28F is a float value '1 2- 1!-$! 1 @
  • 14. ) * +,'-. $) $ !* !* / , ) ' ' - 1 0 '' 0 '6 1% @ char c = ’a’; // character lowercase a char d = ’n’; // newline char e = ’u2122’ // unicode character (TM) '$ !@ boolean ready = true; // boolean value true boolean late = false; // boolean value false
  • 15. ) * +,'-. $) $ !* !* / , 0 ''0! 13 '- 1 1' *-!@ final double pi = 3.1415; // constant PI final int maxSize = 100; // integer constant final char lastLetter = ’z’; // last lowercase letter final String word = Hello; // a constant string
  • 16. ) * +,'-. $) $ !* !* / , 96- - '16- @ '* 8 )2 2
  • 17. ) * +,'-. $) $ !* !* ? / , '* 6- - ' 1 '* - @ =7 $ =# =A * - =B *=C
  • 18. ) * +,'-. $) $ !* !* / , '* - class Arithmetic { public static void main(String[] args) { int x = 12; int y = 2 * x; System.out.println(y); int z = (y - x) % 5; System.out.println(z); final float pi = 3.1415F; float f = pi / 0.62F; System.out.println(f); } } $ java Arithmetic 24 2 5.0669355
  • 19. ) * +,'-. $) $ !* !* / , '* - class ShortHand { public static void main(String[] args) { int x = 12; x += 5; // x = x + 5 System.out.println(x); x *= 2; // x = x * 2 System.out.println(x); } } $ java ShortHand 17 34 '' - - @
  • 20. ) * +,'-. $) $ !* !* / , '* - class Increment { public static void main(String[] args) { int x = 12,y = 12; System.out.println(x++); // printed and then incremented System.out.println(x); System.out.println(++y); // incremented and then printed System.out.println(y); } } $ java Increment 12 13 13 13 -- - @
  • 21. ) * +,'-. $) $ !* !* / , 6- - '10 2 - @ D =EE D =FE ' =G 2 ' =H ' D =GE 2 ' D =HE *- @ 6- 0 ! 3
  • 22. ) * +,'-. $) $ !* !* / , 96- $ java Boolean true false true class Boolean { public static void main(String[] args) { int x = 12,y = 33; System.out.println(x y); System.out.println(x != y - 21); boolean test = x = 10; System.out.println(test); } }
  • 23. ) * +,'-. $) $ !* !* / , 8 - - '10 2- @ =I =J =K ' 11=GG ' 1 2'0 ' 26 =HH ' 1 2'0 '6 =HHH3 @ 2* -* $1 ' 3
  • 24. ) * +,'-. $) $ !* !* / , 8 - class Bits { public static void main(String[] args) { int x = 0x16; // 00000000000000000000000000010110 int y = 0x33; // 00000000000000000000000000110011 System.out.println(x y);// 00000000000000000000000000010010 System.out.println(x | y);// 00000000000000000000000000110111 System.out.println(˜x); // 11111111111111111111111111101001 x = 0xf; // 00000000000000000000000000000110 System.out.println(x); // 00000000000000000000000000000110 short s = 7; // 0000000000000111 System.out.println(˜s); // 11111111111111111111111111111000 } }
  • 25. ) * +,'-. $) $ !* !* / , 8 - class Bits2 { public static void main(String[] args) { int x = 0x16; //00000000000000000000000000010110 System.out.println(x 3);//00000000000000000000000010110000 int y = 0xfe; //00000000000000000000000011111110 y = 4; //00000000000000000000000000001111 System.out.println(y); //00000000000000000000000000001111 x = 9; //00000000000000000000000000001001 System.out.println(x 3);//00000000000000000000000000000001 System.out.println(x 3);//00000000000000000000000000000001 x = -9; //11111111111111111111111111110111 System.out.println(x 3);//11111111111111111111111111111110 System.out.println(x 3);//00011111111111111111111111111110 } }
  • 26. ) * +,'-. $) $ !* !* / , )2 - - '10 2- @ =II =JJ =F @'2 - !$ -- 6- 3
  • 27. ) * +,'-. $) $ !* !* ? / , )2 - $ java Logical true false true class Logical { public static void main(String[] args) { int x = 12,y = 33; double d = 2.45,e = 4.54; System.out.println(x y d e); System.out.println(!(x y)); boolean test = ’a’ ’z’; System.out.println(test || d - 2.1 0); } }
  • 28. ) * +,'-. $) $ !* !* / , 2- - * !- 1 2@ =7 * !*333 @1'6- $2 0 ' 2 '7- ''6 2* 23 @ 2 $ *- 0 'EE FE3
  • 29. ) * +,'-. $) $ !* !* / , 2- $ java Strings Hello World! The value of i is 35 and the value of j is 44 class Strings { public static void main(String[] args) { String s1 = Hello + World!; System.out.println(s1); int i = 35,j = 44; System.out.println(The value of i is + i + and the value of j is + j); } }
  • 30. ) * +,'-. $) $ !* !* / , 2- $ java Strings2 true false class Strings2 { public static void main(String[] args) { String s1 = Hello; String s2 = Hello; System.out.println(s1.equals(s2)); System.out.println(s1.equals(Hi)); } }
  • 31. ) * +,'-. $) $ !* !* / , 2 -1* * !- ' 0'' ,1 $3 class TestWide { public static void main(String[] args) { int a = ’x’; // ’x’ is a character long b = 34; // 34 is an int float c = 1002; // 1002 is an int double d = 3.45F; // 3.45F is a float } }
  • 32. ) * +,'-. $) $ !* !* / , 2 - 1! 0' $ ! ' - 3 class TestNarrow { public static void main(String[] args) { long a = 34; int b = (int)a; // a is a long double d = 3.45; float f = (float)d; // d is a double } }
  • 33. ) * +,'-. $) $ !* !* / , - ' *1 ' 3 @' ' 6- *$ 3
  • 34. ) * +,'-. $) $ !* !* / , = 1 $ java If letter: x class If { public static void main(String[] args) { char c = ’x’; if ((c = ’a’ c = ’z’) || (c = ’A’ c = ’Z’)) System.out.println(letter: + c); else if (c = ’0’ c = ’9’) System.out.println(digit: + c); else { System.out.println(the character is: + c); System.out.println(it is not a letter); System.out.println(and it is not a digit); } } }
  • 35. ) * +,'-. $) $ !* !* / , =0' $ java While Incremented 22 times class While { public static void main(String[] args) { final float initialValue = 2.34F; final float step = 0.11F; final float limit = 4.69F; float var = initialValue; int counter = 0; while (var limit) { var += step; counter++; } System.out.println(Incremented + counter + times); } }
  • 36. ) * +,'-. $) $ !* !* / , =1 $ java For Incremented 22 times class For { public static void main(String[] args) { final float initialValue = 2.34F; final float step = 0.11F; final float limit = 4.69F; int counter = 0; for (float var = initialValue;var limit;var += step) counter++; System.out.println(Incremented + counter + times); } }
  • 37. ) * +,'-. $) $ !* !* ? / , =$ ,A $ java BreakContinue 0 2 4 6 done. class BreakContinue { public static void main(String[] args) { for (int counter = 0;counter 10;counter++) { // start a new iteration if the counter is odd if (counter % 2 == 1) continue; // abandon the loop if the counter is equal to 8 if (counter == 8) break; // print the value System.out.println(counter); } System.out.println(done.); } }
  • 38. ) * +,'-. $) $ !* !* / , =0 ' class Switch { public static void main(String[] args) { boolean leapYear = true; int days = 0; for(int month = 1;month = 12;month++) { switch(month) { case 1: // months with 31 days case 3: case 5: case 7: case 8: case 10: case 12: days += 31; break;
  • 39. ) * +,'-. $) $ !* !* / , =0 ' $ java Switch number of days: 366 case 2: // February is a special case if (leapYear) days += 29; else days += 28; break; default: // it must be a month with 30 days days += 30; break; } } System.out.println(number of days: + days); } }
  • 40. ) * +,'-. $) $ !* !* / , ! ! $ *$1* 1' *!-@ @' - 1! 3 40 $ 10' @ int[] a; // an unitialized array of integers float[] b; // an unitialized array of floats String[] c; // an unitialized array of Strings int[] a = {13,56,2034,4,55}; // size: 5 float[] b = {1.23F,2.1F}; // size: 2 String[] c = {Java,is,great}; // size: 3
  • 41. ) * +,'-. $) $ !* !* / , ! ;'- $ ! - 1 ! '1'- @ *-1' ! 0 ' 1 @ 1* !-* LML1 ' 11 3 int i = 3,j = 5; double[] d; // unitialized array of doubles d = new double[i+j]; // array of 8 doubles
  • 42. ) * +,'-. $) $ !* !* / , ! *- $ 0 ' 2 6 0 ' 1*2' * 3 9 ! !' **$ ' $2'2'1' !@ a[2] = 1000; // modify the third element of a int len = a.length; // get the size of the array
  • 43. ) * +,'-. $) $ !* !* / , ! class Arrays { public static void main(String[] args) { int[] a = {2,4,3,1}; // compute the summation of the elements of a int sum = 0; for(int i = 0;i a.length;i++) sum += a[i]; // create an array of the size computed before float[] d = new float[sum]; for(int i = 0;i d.length;i++) d[i] = 1.0F / (i+1); // print values in odd positions for(int i = 1;i d.length;i += 2) System.out.println(d[ + i + ]= + d[i]); } } $ java Arrays d[1]=0.5 d[3]=0.25 d[5]=0.16666667 d[7]=0.125 d[9]=0.1
  • 44. ) * +,'-. $) $ !* !* / , ** 2* +' ' '*' ' $ 1 10@ '2'' ! 2*'-2 * 2 ' ** 2* public static void main(String[] args)
  • 45. ) * +,'-. $) $ !* !* / , ** 2* class CommandArguments { public static void main(String[] args) { for(int i = 0;i args.length;i++) System.out.println(args[i]); } } $ java CommandArguments Hello World Hello World $ java CommandArguments $ java CommandArguments I have 25 cents I have 25 cents ! *#+#
  • 46. ) * +,'-. $) $ !* !* / , ** 2* class Add { public static void main(String[] args) { if (args.length != 2) { System.out.println(Error); System.exit(0); } int arg1 = Integer.parseInt(args[0]); int arg2 = Integer.parseInt(args[1]); System.out.println(arg1 + arg2); } } $ java Add 234 12 246 $ java Add 24 Error ! ,-. +, *#+# ! ,. *#
  • 47. ) * +,'-. $) $ !* !* ? / , 1 $! 2' ,!0 - 1! 2 *1 @ 0 1' $ 0 ' 0@ class Book { } Book b1 = new Book(); Book b2 = new Book(); b3 = new Book();
  • 48. ) * +,'-. $) $ !* !* / , - $1 @ * ! $ 1 ! *' # 0 ' $@ ' $ $ 0 '' 3 class Book { String title; String author; int numberOfPages; }
  • 49. ) * +,'-. $) $ !* !* / , class ExampleBooks { public static void main(String[] args) { Book b = new Book(); b.title = Thinking in Java; b.author = Bruce Eckel; b.numberOfPages = 1129; System.out.println(b.title + : + b.author + : + b.numberOfPages); } } class Book { String title; String author; int numberOfPages; } /0! 1 2 3 0 ++,4 title author numberOfPages
  • 50. ) * +,'-. $) $ !* !* / , ' 0' 1 ' --! 3 *'' @ ' ' * * ' *1' 0' ' $2 ' - 1 1' ' 23
  • 51. ) * +,'-. $) $ !* !* / , class ExampleBooks2 { public static void main(String[] args) { Book b = new Book(Thinking in Java,Bruce Eckel,1129); System.out.println(b.title + : + b.author + : + b.numberOfPages); } } class Book { String title; String author; int numberOfPages; Book(String tit,String aut,int num) { title = tit; author = aut; numberOfPages = num; } }
  • 52. ) * +,'-. $) $ !* !* / , .1 - 1 1' 3 ' 1 ! $0' 1 ' 3 b = new Book();
  • 53. ) * +,'-. $) $ !* !* / , : - - $1 *' 1 2 ! 1'!' 11*$1 2* 11!-1' 2*3 a = new Book(Thinking in Java,Bruce Eckel,1129); b = new Book(Thinking in Java,Bruce Eckel,1129,0-13-027363); /0! 1 2 3 0 ++,4 title author numberOfPages ISBN *5+-5*,6-7-58 /0! 1 2 3 0 ++,4 title author numberOfPages ISBN 09
  • 54. ) * +,'-. $) $ !* !* / , : - class Book { String title; String author; int numberOfPages; String ISBN; Book(String tit,String aut,int num) { title = tit; author = aut; numberOfPages = num; ISBN = unknown; } Book(String tit,String aut,int num,String isbn) { title = tit; author = aut; numberOfPages = num; ISBN = isbn; } }
  • 55. ) * +,'-. $) $ !* !* / , : - class ExampleBooks3 { public static void main(String[] args) { Book b1,b2; b1 = new Book(Thinking in Java,Bruce Eckel,1129); System.out.println(b1.title + : + b1.author + : + b1.numberOfPages + : + b1.ISBN); b2 = new Book(Thinking in Java,Bruce Eckel,1129, 0-13-027363-5); System.out.println(b2.title + : + b2.author + : + b2.numberOfPages + : + b2.ISBN); } } $ java ExampleBooks3 Thinking in Java : Bruce Eckel : 1129 : unknown Thinking in Java : Bruce Eckel : 1129 : 0-13-027362-5
  • 56. ) * +,'-. $) $ !* !* / , :' *' *-*'* 2' = 3 *-* 1 - 1! 2 2* !-1' 3 $! 2' 3
  • 57. ) * +,'-. $) $ !* !* ? / , :' class Book { String title; String author; int numberOfPages; String ISBN; ... // compute initials of author's name public String getInitials() { String initials = ; for(int i = 0;i author.length();i++) { char currentChar = author.charAt(i); if (currentChar = ’A’ currentChar =’Z’) initials = initials + currentChar + ’.’; } return initials; } }
  • 58. ) * +,'-. $) $ !* !* / , :' class ExampleBooks4 { public static void main(String[] args) { Book b; b = new Book(Thinking in Java,Bruce Eckel,1129); System.out.println(Initials: + b.getInitials()); } } $ java ExampleBooks4 Initials: B.E. /0! 1 2 3 0 ++,4 title author numberOfPages ISBN 09
  • 59. ) * +,'-. $) $ !* !* / , :' class ExampleBooks5 { public static void main(String[] args) { Book[] a = new Book[3]; a[0] = new Book(Thinking in Java,Bruce Eckel,1129); a[1] = new Book(Java in a nutshell,David Flanagan,353); a[2] = new Book(Java network programming, Elliott Rusty Harold,649); for(int i = 0;i a.length;i++) System.out.println(Initials: + a[i].getInitials()); } } $ java ExampleBooks5 Initials: B.E. Initials: D.F. Initials: E.R.H.
  • 60. ) * +,'-. $) $ !* !* / , :' 1 / : ; ! -8- title author numberOfPages ISBN 09 /0! 1 2 3 0 ++,4 title author numberOfPages ISBN 09 1 90 !! 3 % 7.4 title author numberOfPages ISBN 09 = 23 = :; = 3
  • 61. ) * +,'-. $) $ !* !* ? / , 9D ! D class ExampleBooks6 { public static void main(String[] args) { Book b1,b2; b1 = new Book(Thinking in Java,Bruce Eckel,1129); b2 = new Book(Thinking in Java,Bruce Eckel,1129); if (b1 == b2) System.out.println(The two books are the same); else System.out.println(The two books are different); } } $ java ExampleBooks6 The two books are different
  • 62. ) * +,'-. $) $ !* !* ? / , 9D ! D /0! 1 2 3 0 ++,4 title author numberOfPages ISBN *5+-5*,6-7-58 /0! 1 2 3 0 ++,4 title author numberOfPages ISBN 09 + , b1 = new Book(Thinking in Java,Bruce Eckel,1129); b2 = new Book(Thinking in Java,Bruce Eckel,1129); if (b1 == b2) System.out.println(The two books are the same); else System.out.println(The two books are different);
  • 63. ) * +,'-. $) $ !* !* ? / , 9D ! D class ExampleBooks6a { public static void main(String[] args) { Book b1,b2; b1 = new Book(Thinking in Java,Bruce Eckel,1129); b2 = b1; if (b1 == b2) System.out.println(The two books are the same); else System.out.println(The two books are different); } } $ java ExampleBooks6a The two books are the same
  • 64. ) * +,'-. $) $ !* !* ? / , 9D ! D /0! 1 2 3 0 ++,4 title author numberOfPages ISBN 09 + , b1 = new Book(Thinking in Java,Bruce Eckel,1129); b2 = b1; if (b1 == b2) System.out.println(The two books are the same); else System.out.println(The two books are different);
  • 65. ) * +,'-. $) $ !* !* ? / , 9D ! D class Book { String title; String author; int numberOfPages; String ISBN; ... // compare two books public boolean equals(Book b) { return (title.equals(b.title) author.equals(b.author) numberOfPages == b.numberOfPages ISBN.equals(b.ISBN)); } }
  • 66. ) * +,'-. $) $ !* !* ? / , 9D ! D class ExampleBooks7 { public static void main(String[] args) { Book b1,b2; b1 = new Book(Thinking in Java,Bruce Eckel,1129); b2 = new Book(Thinking in Java,Bruce Eckel,1129); if (b1.equals(b2)) System.out.println(The two books are the same); else System.out.println(The two books are different); } } $ java ExampleBooks7 The two books are the same
  • 67. ) * +,'-. $) $ !* !* ?? / , $ $ 1 ' $2' 6 ' 3 * ' ' 0 !! -!1' **$ -1'*$1' ' 0 3
  • 68. ) * +,'-. $) $ !* !* ? / , $ class Book { String title; String author; int numberOfPages; String ISBN; static String owner; ... public void setOwner(String name) { owner = name; } public String getOwner() { return owner; } }
  • 69. ) * +,'-. $) $ !* !* ? / , $ class ExampleBooks8 { public static void main(String[] args) { Book b1,b2; b1 = new Book(Thinking in Java,Bruce Eckel,1129); b2 = new Book(Java in a nutshell,David Flanagan,353); b1.setOwner(Carlos Kavka); System.out.println(Owner of book b1: + b1.getOwner()); System.out.println(Owner of book b2: + b2.getOwner()); } } $ java ExampleBooks8 Owner of book b1: Carlos Kavka Owner of book b2: Carlos Kavka
  • 70. ) * +,'-. $) $ !* !* ? / , *' + '' * 1' **$ - $1 *' *'3 '*'0, !0 ' $ 0 '' 3
  • 71. ) * +,'-. $) $ !* !* / , *' class Book { String title; String author; int numberOfPages; String ISBN; static String owner; ... public static String description() { return Book instances can store information on books; } }
  • 72. ) * +,'-. $) $ !* !* / , *' class ExampleBooks9 { public static void main(String[] args) { Book b1 = new Book(Thinking in Java,Bruce Eckel,1129); System.out.println(b1.description()); System.out.println(Book.description()); } } $ java ExampleBooks9 Book instances can store information on books Book instances can store information on books
  • 73. ) * +,'-. $) $ !* !* / , -- '6 *-0' 01 ' *' * 0' ! 1*' 3 - $1 0 '! *' **$3
  • 74. ) * +,'-. $) $ !* !* / , -- class AllStatic { static int x; static String s; public static String asString(int aNumber) { return + aNumber; } public static void main(String[] args) { x = 165; s = asString(x); System.out.println(s); } } $ java AllStatic 165
  • 75. ) * +,'-. $) $ !* !* / , **$ $5 2 ' 3 '6 1 1 - * !-@ $! ' 2 1 3 $ 3 ' LML $ 1 1
  • 76. ) * +,'-. $) $ !* !* / , class InitialValues { public static void main(String[] args) { Values v = new Values(); System.out.println(v.x); System.out.println(v.f); System.out.println(v.s); System.out.println(v.b); } } class Values { int x; float f; String s; Book b; } $ java InitialValues 0 0.0 null null
  • 77. ) * +,'-. $) $ !* !* ? / , class InitialValues2 { public static void main(String[] args) { Values v = new Values(hello); System.out.println( + v.x + t + v.f); System.out.println( + v.s + t + v.b); } } class Values { int x = 2; float f = inverse(x); String s; Book b; Values(String str) { s = str; } public float inverse(int value) { return 1.0F / value; } } $ java InitialValues2 2 0.5 hello null
  • 78. ) * +,'-. $) $ !* !* / , ' ,!0 ',!0 0' *'1 ' $5 3 ' 0* @ 1 ' $5 1* *' 1*' 3
  • 79. ) * +,'-. $) $ !* !* / , ',!0 B.E. Carlos Kavka public Book setOwner(String name) { owner = name; return this; } Book b1 = new Book(Thinking in Java,Bruce Eckel,1129); System.out.println(b1.setOwner(Carlos Kavka).getInitials()); System.out.println(b1.getOwner()); 6 *-'*';0 '- 8, ' $1 10@
  • 80. ) * +,'-. $) $ !* !* / , ',!0 ' 8,' 0 @ ' $1 *1'1 @ Book(String tit,String aut,int num) { title = tit; author = aut; numberOfPages = num; ISBN = unknown; } Book(String tit,String aut,int num,String isbn) { title = tit; author = aut; numberOfPages = num; ISBN = isbn; } Book(String tit,String aut,int num,String isbn) { this(tit,aut,num); ISBN = isbn; }
  • 81. ) * +,'-. $) $ !* !* / , 6 *-@ *-6 class TestComplex { public static void main(String[] args) { Complex a = new Complex(1.33,4.64); Complex b = new Complex(3.18,2.74); Complex c = a.add(b); System.out.println(c=a+b= + c.getReal() + + c.getImaginary()); Complex d = c.sub(a); System.out.println(d=c-a= + d.getReal() + + d.getImaginary()); } } $ java TestComplex c=a+b= 4.51 7.38 d=c-a= 3.18 2.74 +-- .7. -+? ,6. .8+ 6-? -+? ,6.
  • 82. ) * +,'-. $) $ !* !* / , 6 *-@ *-6 class Complex { double real; // real part double im; // imaginary part Complex(double r,double i) { real = r; im = i; } public double getReal() { return real; } public double getImaginary() { return im; } } @ A +--B.7.$ C @ ! $ C @ !=!%$
  • 83. ) * +,'-. $) $ !* !* / , 6 *-@ *-6 // add two complex numbers public Complex add(Complex x) { return new Complex(real + x.real,im + x.im); } A @ $( +-- .7. -+? ,6. .8+ 6-?
  • 84. ) * +,'-. $) $ !* !* / , 6 *-@ *-6 // substract two complex numbers public Complex sub(Complex c) { return new Complex(real - c.real,im - c.im); } A @ $( .8+ 6-? +-- .7. -+? ,6.
  • 85. ) * +,'-. $) $ !* !* / , 6 *-@ *-6 '*'$ *5' - 1 ' -1'* 2 0 '' - 2*@ public Complex addReal(double x) { real += x; return this; } Complex a = new Complex(1.33,4.64); a.addReal(2.0); a.addReal(3.0).addReal(3.23); +-- .7. --- .7. 487 .7.
  • 86. ) * +,'-. $) $ !* !* / , 6 *-@ *-6 +*$ 1 100 *-6 *$ -! 1''@ Complex a = new Complex(1.33,4.64); Complex e = a; +-- .7. +' 0 $'11 1 87$( N
  • 87. ) * +,'-. $) $ !* !* ? / , 6 *-@ *-6 + 1 0 '-$*@ Complex a = new Complex(1.33,4.64); Complex e = new Complex(a); +-- .7. Complex(Complex x) { this(x.real,x.im); } +-- .7.
  • 88. ) * +,'-. $) $ !* !* / , ' ' 01 0 $! 2 ' - 1! 25 ' 11 3 - $1 0 =$ $! ! 2 ' ' *$ ' =- @ class ScientificBook extends Book { String area; boolean proceeding = false; } 20 20
  • 89. ) * +,'-. $) $ !* !* / , ' =' '! 20 20 D ; A ! A
  • 90. ) * +,'-. $) $ !* !* / , ' = class ScientificBook extends Book { String area; boolean proceeding = false; ScientificBook(String tit, String aut, int num, String isbn, String a) { super(tit,aut,num,isbn); area = a; } } 20 20 ScientificBook sb; sb = new ScientificBook( Neural Networks, Simon Haykin,696,0-02-352761-7, Artificial Intelligence); 20$ 20$
  • 91. ) * +,'-. $) $ !* !* / , ' = D D90 %0 747 title author numberOfPages ISBN *5*,5-8,67+56 /0! 1 2 3 0 ++,4 title author numberOfPages ISBN 09 Book b = new Book(Thinking in Java,Bruce Eckel,1129); ScientificBook sb = new ScientificBook( Neural Networks, Simon Haykin,696,0-02-352761-7, Artificial Intelligence); area proceeding = !
  • 92. ) * +,'-. $) $ !* !* / , ' =*' 0*' $1 '$ - 1! '$' 1'$5 1' 3 +' * 2 $5 '*' '1 ' 1' -$5 3 1 1' '1' 2'- ' ' '!3
  • 93. ) * +,'-. $) $ !* !* / , ' = ' 2*' 20 20 ScientificBook sb; sb = new ScientificBook(Neural Networks,Simon Haykin, 696, 0-02-352761-7,Artificial Intelligence); System.out.println(sb.getInitials()); S.H. D D90 %0 747 title author numberOfPages ISBN *5*,5-8,67+56 area proceeding = ! != $
  • 94. ) * +,'-. $) $ !* !* / , ' = 2*' class ScientificBook extends Book { String area; boolean proceeding = false; ScientificBook(String tit, String aut, int num, String isbn, String a) { super(tit,aut,num,isbn); area = a; } public boolean equals(ScientificBook b){ return super.equals(b) area.equals(b.area) proceeding == b.proceeding; } } 20 20 E $ E $
  • 95. ) * +,'-. $) $ !* !* / , ' = 2*' public boolean equals(ScientificBook b){ return super.equals(b) area.equals(b.area) proceeding == b.proceeding; } 0- $ @ public boolean equals(ScientificBook b) { return (title.equals(b.title) author.equals(b.author) numberOfPages == b.numberOfPages ISBN.equals(b.ISBN) area.equals(b.area) proceeding == b.proceeding; } +' ' $N
  • 96. ) * +,'-. $) $ !* !* / , ' = 2*' class ScientificBook extends Book { String area; boolean proceeding = false; ScientificBook(String tit, String aut, int num, String isbn, String a) { ... } public boolean equals(ScientificBook b){ ... } public static String description() { return ScientificBook instances can + store information on + scientific books; } } 20 20 E $ $ E $ $
  • 97. ) * +,'-. $) $ !* !* ? / , ' =0*' class ScientificBook extends Book { String area; boolean proceeding = false; ScientificBook(String tit, String aut, int num, String isbn, String a) { super(tit,aut,num,isbn); area = a; } ... public void setProceeding() { proceeding = true; } public boolean isProceeding() { return proceeding; } } 20 20 E $ $ E $ $ C !$ C !$
  • 98. ) * +,'-. $) $ !* !* / , ' =0*' class TestScientificBooks { public static void main(String[] args) { ScientificBook sb1,sb2; sb1 = new ScientificBook(Neural Networks,Simon Haykin, 696,0-02-352761-7, Artificial Intelligence); sb2 = new ScientificBook(Neural Networks,Simon Haykin, 696,0-02-352761-7, Artificial Intelligence); sb2.setProceeding(); System.out.println(sb1.getInitials()); System.out.println(sb1.equals(sb2)); System.out.println(sb2.description()); } } $ java TestScientificBooks S.H. false ScientificBook instances can store information on scientific books
  • 99. ) * +,'-. $) $ !* !* / , ! ! - ' * 1 $5 1 - 1 @ Book b1 = new Book(Thinking in Java,Bruce Eckel,1129); System.out.println(b1 instanceof Book); True
  • 100. ) * +,'-. $) $ !* !* / , = =' * 1 $5 @ Book b1 = new Book(Thinking in Java,Bruce Eckel,1129); System.out.println(b1.getClass().getName()); Book
  • 101. ) * +,'-. $) $ !* !* / , ! = class TestClass { public static void main(String[] args) { Book b1 = new Book(Thinking in Java,Bruce Eckel,1129); ScientificBook sb1 = new ScientificBook(Neural Networks, Simon Haykin,696,0-02-352761-7, Artificial Intelligence); System.out.println(b1.getClass().getName()); System.out.println(sb1.getClass().getName()); System.out.println(b1 instanceof Book); System.out.println(sb1 instanceof Book); System.out.println(b1 instanceof ScientificBook); System.out.println(sb1 instanceof ScientificBook); } } $ java TestClass class Book class ScientificBook true true false true
  • 102. ) * +,'-. $) $ !* !* / , % - , 2 0' ' $ 2 3 !*$1 ! $!--$! ' 3 1- 1 ' - , 23
  • 103. ) * +,'-. $) $ !* !* / , % ' '!* 2 - , 2@ import java.util.*; // or import java.util.Date class TestDate { public static void main(String[] args) { System.out.println(new Date()); } } : ,8 *4.?8. A3 ,**7
  • 104. ) * +,'-. $) $ !* !* / , % , 2 * 1 $! 2',!0 - , 2 ' 1 @ package myBook; class Book { String title; String author; int numberOfPages; } package myBook; class ExampleBooks { public static void main(String[] args) { Book b = new Book(); b.title = Thinking in Java; b.author = Bruce Eckel; b.numberOfPages = 1129; System.out.println(b.title + : + b.author + : + b.numberOfPages); } } 20 3 20
  • 105. ) * +,'-. $) $ !* !* / , % ' $ - $ ' - ' =O)4@ package it.infn.ts; class Book { ... } import it.infn.ts.Book; class TestBook { ... Book b = new Book(...); ... } 96 *-1@
  • 106. ) * +,'-. $) $ !* !* / , - $ ' *' $1*' 0 ''* 1 @ 20 20 D ; A ( ( (
  • 107. ) * +,'-. $) $ !* !* ? / , '1 01 1* ' $2' *- , 23 6 *- - $'- 2 1 1 $, 00 !@ $!5 2' **$@ +C !$( + ! @ (
  • 108. ) * +,'-. $) $ !* !* / , % !00 **$ 2 - @ 0'- 2 !$ 0 ''* 2@ class ScientificBook extends Book { private String area; private boolean proceeding = false; ............... } sb1.setProceeding(); // fine sb1.proceeding = true; // wrong
  • 109. ) * +,'-. $) $ !* !* / , ' * $ -- *'3 class ScientificBook extends Book { private String area; private boolean proceeding = false; ............... private boolean initialized() { return title != null author != null numberOfPages != 0 area != null; } } +' =$ 1*N
  • 110. ) * +,'-. $) $ !* !* / , '* 1 ! $ -- *'@ ! @ 1 0$ 23 1 *' $1 $ 3 @ $ ' $ 3 $ *'' $! *$ 1 $ 3
  • 111. ) * +,'-. $) $ !* !* / , 6 *-@' ;8 $ 3 =2 =3/2 = 2
  • 112. ) * +,'-. $) $ !* !* / , abstract class IOBoard { String name; int numErrors = 0; IOBoard(String s) { System.out.println(IOBoard constructor); name = s; } final public void anotherError() { numErrors++; } final public int getNumErrors() { return numErrors; } abstract public void initialize(); abstract public void read(); abstract public void write(); abstract public void close(); }
  • 113. ) * +,'-. $) $ !* !* / , class IOSerialBoard extends IOBoard { int port; IOSerialBoard(String s,int p) { super(s); port = p; System.out.println(IOSerialBoard constructor); } public void initialize() { System.out.println(initialize method in IOSerialBoard); } public void read() { System.out.println(read method in IOSerialBoard); } public void write() { System.out.println(write method in IOSerialBoard); } public void close() { System.out.println(close method in IOSerialBoard); } }
  • 114. ) * +,'-. $) $ !* !* / , class IOEthernetBoard extends IOBoard { long networkAddress; IOEthernetBoard(String s,long netAdd) { super(s); networkAddress = netAdd; System.out.println(IOEthernetBoard constructor); } public void initialize() { System.out.println(initialize method in IOEthernetBoard); } public void read() { System.out.println(read method in IOEthernetBoard); } public void write() { System.out.println(write method in IOEthernetBoard); } public void close() { System.out.println(close method in IOEthernetBoard); } }
  • 115. ) * +,'-. $) $ !* !* / , 1 $ @ class TestBoards1 { public static void main(String[] args) { IOSerialBoard serial = new IOSerialBoard(my first port, 0x2f8); serial.initialize(); serial.read(); serial.close(); } } $ java TestBoards1 IOBoard constructor IOSerialBoard constructor initialize method in IOSerialBoard read method in IOSerialBoard close method in IOSerialBoard
  • 116. ) * +,'-. $) $ !* !* / , % class TestBoards2 { public static void main(String[] args) { IOBoard[] board = new IOBoard[3]; board[0] = new IOSerialBoard(my first port,0x2f8); board[1] = new IOEthernetBoard(my second port,0x3ef8dda8); board[2] = new IOEthernetBoard(my third port,0x3ef8dda9); for(int i = 0;i 3;i++) board[i].initialize(); for(int i = 0;i 3;i++) board[i].read(); for(int i = 0;i 3;i++) board[i].close(); } } *#+# / ,#
  • 117. ) * +,'-. $) $ !* !* ? / , ! 1 $ '0 ' - 1! 2'!' 3 1 , , 1 0'@ 1 1 *'' $! -$ $ 1* 1 3
  • 118. ) * +,'-. $) $ !* !* / , ! 1 1- 1! 2;$ $' @ 1 1- 1! 2 $' @ interface IOBoardInterface { public void initialize(); public void read(); public void write(); public void close(); } interface NiceBehavior { public String getName(); public String getGreeting(); public void sayGoodBye(); }
  • 119. ) * +,'-. $) $ !* !* / , ! class IOSerialBoard2 implements IOBoardInterface { int port; IOSerialBoard(String s,int p) { super(s); port = p; System.out.println(IOSerialBoard constructor); } public void initialize() { System.out.println(initialize method in IOSerialBoard); } public void read() { System.out.println(read method in IOSerialBoard); } public void write() { System.out.println(write method in IOSerialBoard); } public void close() { System.out.println(close method in IOSerialBoard); } }
  • 120. ) * +,'-. $) $ !* !* / , ! *-**' 1 3 +' '*'' *-*N class IOSerialBoard2 implements IOBoardInterface, NiceBehavior { .... }
  • 121. ) * +,'-. $) $ !* !* / , ' ' $' * $' 6 @ class TestExceptions1 { public static void main(String[] args) { String s = Hello; System.out.print(s.charAt(10)); } } $ java TestExceptions1 Exception in thread main java.lang.StringIndexOutOfBoundsException: String index out of range: 10 at java.lang.String.charAt(String.java:499) at TestExceptions1.main(TestExceptions1.java:11)
  • 122. ) * +,'-. $) $ !* !* / , ' '6 - $ --@ class TestExceptions2 { public static void main(String[] args) { String s = Hello; try { System.out.print(s.charAt(10)); } catch (Exception e) { System.out.println(No such position); } } $ java TestExceptions2 No such position
  • 123. ) * +,'-. $) $ !* !* / , ' - $- 1! - 6 - @ class TestExceptions3 { public static void main(String[] args) { String s = Hello; try { System.out.print(s.charAt(10)); } catch (StringIndexOutOfBoundsException e) { System.out.println(No such position); } } $ java TestExceptions3 No such position
  • 124. ) * +,'-. $) $ !* !* / , ' - $* 2 6 - $5 @ class TestExceptions4 { public static void main(String[] args) { String s = Hello; try { System.out.print(s.charAt(10)); } catch (StringIndexOutOfBoundsException e) { System.out.println(No such position); System.out.println(e.toString()); } } $ java TestExceptions4 No such position java.lang.StringIndexOutOfBoundsException: String index out of range: 10
  • 125. ) * +,'-. $) $ !* !* / , ' F A / = ! $ % ! / / / @ /*$( / @ / $ 5 +$( ! @ !; G H G BB $( % $( ) / !=23 +$ % ! B I$( ) / D C3 ,$ % D !$( ) % % '$( ) ) ) + * - '$ , 1 ! @
  • 126. ) * +,'-. $) $ !* !* / , ' F A / = ! $ % ! / / / @ /*$( / @ / $ 5 +$( ! @ !; G H G BB $( % $( ) / !=23 +$ % ! B I$( ) / D C3 ,$ % D !$( ) % % '$( ) ) ) ! @ ( F A / @ 9 F A /$( = $( ; H '
  • 127. ) * +,'-. $) $ !* !* ? / , ' F A / = ! $ % ! / / / @ /*$( / @ / $ 5 +$( ! @ !; G H G BB $( % $( ) / !=23 +$ % ! B I$( ) / D C3 ,$ % D !$( ) % % '$( ) ) ) ! @ ( F A / @ 9 F A /$( = $( ! B I '
  • 128. ) * +,'-. $) $ !* !* / , ' F A / = ! $ % ! / / / @ /*$( / @ / $ 5 +$( ! @ !; G H G BB $( % $( ) / !=23 +$ % ! B I$( ) / D C3 ,$ % D !$( ) % % '$( ) ) ) ! @ ( F A / @ 9 F A /$( = $( D ! '
  • 129. ) * +,'-. $) $ !* !* / , ' '6 1-1 6 - ' $ 2'3 * *-! '6 - 3 - $6-' ' *-!6 - 3
  • 130. ) * +,'-. $) $ !* !* / , () -- ' *- 3 40 --1*1 **! 0$ -1* ' *0 !3 $ ' 1 *@ ' $ 2 3 ,0' $ 0 3
  • 131. ) * +,'-. $) $ !* !* / , () * $ 1 @ $! * - -- 11 * !-3 ' * % $0 '; ' --3 * $@ $11 $11
  • 132. ) * +,'-. $) $ !* !* / , () import java.io.*; class WriteBytes { public static void main(String[] args) { int data[] = { 10,20,30,40,255 }; FileOutputStream f; try { f = new FileOutputStream(file1.data); for(int i = 0;i data.length;i++) f.write(data[i]); f.close(); } catch (IOException e) { System.out.println(Error with files:+e.toString()); } } } $! *
  • 133. ) * +,'-. $) $ !* !* / , () import java.io.*; class ReadBytes { public static void main(String[] args) { FileInputStream f; try { f = new FileInputStream(file1.data); int data; while((data = f.read()) != -1) System.out.println(data); f.close(); } catch (IOException e) { System.out.println(Error with files:+e.toString()); } } } $ java ReadBytes 10 20 30 40 255 $! *
  • 134. ) * +,'-. $) $ !* !* / , () import java.io.*; class WriteArrayBytes { public static void main(String[] args) { byte data[] = { 10,20,30,40,-128 }; FileOutputStream f; try { f = new FileOutputStream(file1.data); f.write(data,0,data.length); f.close(); } catch (IOException e) { System.out.println(Error with files:+e.toString()); } } } $! *
  • 135. ) * +,'-. $) $ !* !* / , () import java.io.*; class WriteBufferedBytes { public static void main(String[] args) { int data[] = { 10,20,30,40,255 }; FileOutputStream f; BufferedOutputStream bf; try { f = new FileOutputStream(file1.data); bf = new BufferedOutputStream(f); for(int i = 0;i data.length;i++) bf.write(data[i]); bf.close(); } catch (IOException e) { System.out.println(Error with files:+e.toString()); } } } $11$! *
  • 136. ) * +,'-. $) $ !* !* / , () $ java ReadBufferedBytes 10 20 30 40 255 import java.io.*; class ReadBufferedBytes { public static void main(String[] args) { FileInputStream f; BufferedInputStream bf; try { f = new FileInputStream(file1.data); bf = new BufferedInputStream(f); int data; while((data = bf.read()) != -1) System.out.println(data); bf.close(); } catch (IOException e) { System.out.println(Error with files:+e.toString()); } } } $11$! *
  • 137. ) * +,'-. $) $ !* !* ? / , () $11$! * 0 ' * - =1 * !-3 '10 2* 2 - @ #= #= # = # = = = = = = = = = = =
  • 138. ) * +,'-. $) $ !* !* / , () $11$! * import java.io.*; class WriteData { public static void main(String[] args) { double data[] = { 10.3,20.65,8.45,-4.12 }; FileOutputStream f; BufferedOutputStream bf; DataOutputStream ds; try { f = new FileOutputStream(file1.data); bf = new BufferedOutputStream(f); ds = new DataOutputStream(bf); ds.writeInt(data.length); for(int i = 0;i data.length;i++) ds.writeDouble(data[i]); ds.writeBoolean(true); ds.close(); } catch (IOException e) { System.out.println(Error with files:+e.toString()); } }
  • 139. ) * +,'-. $) $ !* !* / , () $11$! * import java.io.*; class ReadData { public static void main(String[] args) { FileOutputStream f; BufferedOutputStream bf; DataOutputStream ds; try { f = new FileInputStream(file1.data); bf = new BufferedInputStream(f); ds = new DataInputStream(bf); int length = ds.readInt(); for(int i = 0;i length;i++) System.out.println(ds.readDouble()); System.out.println(ds.readBoolean()); ds.close(); } catch (IOException e) { System.out.println(Error with files:+e.toString()); } } $ java ReadData 10.3 20.65 8.45 -4.12 true
  • 140. ) * +,'-. $) $ !* !* / , () ' ' * $ 0 ' 3 '6 '*'' $0 ' , 1 *@ = =PQ =
  • 141. ) * +,'-. $) $ !* !* / , () $11 ' * import java.io.*; class WriteText { public static void main(String[] args) { FileWriter f; BufferedWriter bf; try { f = new FileWriter(file1.text); bf = new BufferedWriter(f); String s = Hello World!; bf.write(s,0,s.length()); bf.newLine(); bf.write(Java is nice!!!,8,5); bf.newLine(); bf.close(); } catch (IOException e) { System.out.println(Error with files:+e.toString()); } }
  • 142. ) * +,'-. $) $ !* !* / , () $11 ' * import java.io.*; class ReadText { public static void main(String[] args) { FileReader f; BufferedReader bf; try { f = new FileReader(file1.text); bf = new BufferedReader(f); String s; while ((s = bf.readLine()) != null) System.out.println(s); bf.close(); } catch (IOException e) { System.out.println(Error with files:+e.toString()); } } $ java ReadText HelloWorld! nice!
  • 143. ) * +,'-. $) $ !* !* / , () - import java.io.*; class StandardInput { public static void main(String[] args) { InputStreamReader isr; BufferedReader br; try { isr = new InputStreamReader(System.in); br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) System.out.println(line); } catch (IOException e) { System.out.println(Error with standard input); } }
  • 144. ) * +,'-. $) $ !* !* / , () -0 ' import java.io.*; class ReadWithScanner { public static void main(String[] args) { try { Scanner sc = new Scanner(System.in); int sum = 0; while (sc.hasNextInt()) { int anInt = sc.nextInt(); sum += anInt; } System.out.println(sum); } catch (IOException e) { System.out.println(Error with standard input); } } $ java ReadWithScanner 11 9 ^D 20
  • 145. ) * +,'-. $) $ !* !* / , * - $ ! 11 , ' 3 '' ** $0'* ' ' $! ' 3
  • 146. ) * +,'-. $) $ !* !* / , * class CharThread extends Thread { char c; CharThread(char aChar) { c = aChar; } public void run() { while (true) { System.out.println(c); try { sleep(100); } catch (InterruptedException e) { System.out.println(Interrupted); } } } }
  • 147. ) * +,'-. $) $ !* !* ? / , * class TestThreads { public static void main(String[] args) { CharThread t1 = new CharThread(’a’); CharThread t2 = new CharThread(’b’); t1.start(); t2.start(); } } $ java TestThreads a b a b ...
  • 148. ) * +,'-. $) $ !* !* / , * class ProducerConsumer { public static void main(String[] args) { Buffer buffer = new Buffer(10); Producer prod = new Producer(buffer); Consumer cons = new Consumer(buffer); prod.start(); cons.start(); } } !- - # * -- @
  • 149. ) * +,'-. $) $ !* !* / , ' * 1* '$11@ / / / / ! 8 ! ? !
  • 150. ) * +,'-. $) $ !* !* / , ' R 2 $!' * 1'$11@ / / ! ,
  • 151. ) * +,'-. $) $ !* !* / , * class Producer extends Thread { Buffer buffer; public Producer(Buffer b) { buffer = b; } public void run() { double value = 0.0; while (true) { buffer.insert(value); value += 0.1; } } } class Consumer extends Thread { Buffer buffer; public Consumer(Buffer b) { buffer = b; } public void run() { while(true) { char element = buffer.delete() System.out.println(element); } } }
  • 152. ) * +,'-. $) $ !* !* / , * class Buffer { double buffer[]; int head = 0,tail = 0,size = 0,numElements = 0; public Buffer(int s) { buffer = new double[s]; size = s; } public void insert(double element) { buffer[tail] = element; tail = (tail + 1) % size; numElements++; } public double delete() { double value = buffer[head]; head = (head + 1) % size; numElements--; return value; } } 40 333 0,
  • 153. ) * +,'-. $) $ !* !* / , * ' *-* 0,F '*' = =- ! ' * 3 '*' = ' , 1' 1 '$11 '*' = ' , 1' - 1 $ '$113 ' 1! ' 3
  • 154. ) * +,'-. $) $ !* !* / , * ! ' $ ' 0 ' +*'@ '! 0$6 !' * 3 9 ' ' ,! ' ' 3 % /J $ % /J $
  • 155. ) * +,'-. $) $ !* !* / , * ' ! ' 0 ' !@ '* 2 -' 2' - 2' ,3 '* 2 ! 0 , 0 2' ' - 2 ,3
  • 156. ) * +,'-. $) $ !* !* / , * % /J $ % /J $ % 9$ %$ % /J $
  • 157. ) * +,'-. $) $ !* !* ? / , * public synchronized void insert(double element) { if (numElements == size) { try { wait(); } catch(InterruptedException e) { System.out.println(Interrupted); } } buffer[tail] = element; tail = (tail + 1) % size; numElements++; notify(); }
  • 158. ) * +,'-. $) $ !* !* / , * public synchronized double delete() { if (numElements == 0) { try { wait(); } catch(InterruptedException e) { System.out.println(Interrupted); } } double value = buffer[head]; head = (head + 1) % size; numElements--; notify(); return value; }
  • 159. ) * +,'-. $) $ !* !* / , ! +'00 *- 2'6 *-1' *1 1 02 @ $'6 $ -- ! -!'11 3 $ ls *.class Buffer.class Consumer.class ProducerConsumer.class Producer.class
  • 160. ) * +,'-. $) $ !* !* / , ! $= ' 1 $ * - $!' ** 5 3 $1 !1 * 11 0' ' 1* '1 3 ' ** 5 1 * 11 ' !,*(- 0 ' *,- *., 5 $0' !3
  • 161. ) * +,'-. $) $ !* !* ? / , ! ' 1' 1 $ 10@ 0 '@ ' -- $6 10@ $ jar cmf mylines.txt ProducerConsumer.jar ProducerConsumer.class Producer.class Consumer.class Buffer.class $ cat mylines.txt Main-Class: ProducerConsumer $ java -jar ProducerConsumer.jar
  • 162. ) * +,'-. $) $ !* !* ? / , ! $ - ! 10@ ' * 11 0 @ $ jar tf ProducerConsumer.jar META-INF/ META-INF/MANIFEST.MF ProducerConsumer.class Producer.class Consumer.class Buffer.class Manifest-Version: 1.0 Main-Class: ProducerConsumer Created-By: 1.2.2 (Sun Microsystems Inc.)
  • 163. ) * +,'-. $) $ !* !* ? / , $ 2' - -- *- - ,-! * -- 3 * 1 ! * '* , ** 6 -' ' -- ' *-! 113 '- 1 1' ** 1 *1S:) 3 $ 6 $5 3
  • 164. ) * +,'-. $) $ !* !* ? / , ?xml version=1.0? !-- first build file -- project name=HelloWorld default=build basedir=. target name=build javac srcdir=. / /target /project # ant Buildfile: build.xml build: [javac] Compiling 1 source file BUILD SUCCESSFUL Total time: 3 seconds 6 *-1 .'1 @
  • 165. ) * +,'-. $) $ !* !* ? / , - 1 '* - 1 1 *@
  • 166. ) * +,'-. $) $ !* !* ? / , - , $@ ' $$ $!- 2'--! *$0/0 13 property name=conditionOK value=yes/ property name=src-dir location=src/ javac srcdir=${src-dir}/
  • 167. ) * +,'-. $) $ !* !* ?? / , 6 *-@ A A A A A
  • 168. ) * +,'-. $) $ !* !* ? / , ?xml version=1.0? !-- first build file -- project name=Complex default=dist basedir=. !-- set global properties -- property name=src-dir location=src/ property name=build-dir location=build/ property name=dist-dir location=dist/ target name=init description=initial task !-- Create the build directory -- mkdir dir=${build-dir}/ /target
  • 169. ) * +,'-. $) $ !* !* ? / , target name=build depends=init description=compile task javac srcdir=${src-dir} destdir=${build-dir}/ /target target name=dist depends=build description=build distribution mkdir dir=${dist-dir}/ jar jarfile=${dist-dir}/complex.jar basedir=${build-dir} include name=*.class/ manifest attribute name=Main-Class value=TestComplex/ /manifest /jar /target
  • 170. ) * +,'-. $) $ !* !* ? / , target name=clean description=clean up delete dir=${build-dir}/ delete dir=${dist-dir}/ /target /project $ ant Buildfile: build.xml init: [mkdir] Created dir: ComplexNumbers/build build: [javac] Compiling 2 source files to ComplexNumbers/build dist: [mkdir] Created dir: ComplexNumbers/dist [jar] Building jar: ComplexNumbers/dist/complex.jar BUILD SUCCESSFUL Total time: 11 seconds
  • 171. ) * +,'-. $) $ !* !* / , *- $ $6 -- - ' !10 1 -- @ *- 1 6
  • 172. ) * +,'-. $) $ !* !* / , *- -@ *- -@ $ javac HelloWorld.java $ java -classpath /tini/bin/tini.jar TINIConvertor -f HelloWorld.class -d /tini/bin/tini.db -o HelloWorld.tini
  • 173. ) * +,'-. $) $ !* !* / , *- -@ 1 $ ftp tini Connected to tini. 220 Welcome to slush. (Version 1.17) Ready for user login. User (tini:(none)): root 331 root login allowed. Password required. Password: 230 User root logged in. ftp bin 200 Type set to Binary ftp put HelloWorld.tini 200 PORT Command successful. 150 BINARY connection open, putting HelloWorld.tini 226 Closing data connection. ftp: 183 bytes sent in 0.00 Seconds. ftp bye
  • 174. ) * +,'-. $) $ !* !* / , *- -@6 # telnet tini Connected to tini. Escape character is ’ˆ]’. Welcome to slush. (Version 1.17) tini00a93c login: root tini00a93c password: TINI / java HelloWorld.tini HelloWorld
  • 175. ) * +,'-. $) $ !* !* / , ?xml version=1.0 encoding=UTF-8? project name=HelloWorld default=convert basedir=. taskdef name=tini classname=net.geeba.ant.Tini/ property name=tini.dir value=/tini/ property name=tini.db value=${tini.dir}/bin/tini.db/ property name=tini.classes value=${tini.dir}/bin/tiniclasses.jar/ property name=tini.jar value=${tini.dir}/bin/tini.jar/ target name=init description=initialize mkdir dir=build/ /target
  • 176. ) * +,'-. $) $ !* !* / , target name=build depends=init description=compile javac srcdir=src destdir=build bootclasspath=${tini.classes}/ /target target name=convert depends=build description=convert tini outputfile=HelloWorld.tini database=${tini.db} classpath=${tini.jar} convert dir=build/ /tini /target target name=clean description=clean delete dir=build/ delete file=HelloWorld.tini/ /target /project
  • 177. ) * +,'-. $) $ !* !* ? / , $ ant Buildfile: build.xml init: [mkdir] Created dir: HelloWorldAnt/build build: [javac] Compiling 1 source file to HelloWorldAnt/build convert: [tini] TINIConvertor (KLA) [tini] Version 1.24 for TINI 1.1 (Beta 2 and later ONLY!!!) [tini] Built on or around March 20, 2002 [tini] Copyright (C) 1996 - 2002 Dallas Semiconductor Corp. [tini] Loading class HelloWorldAnt/build/HelloWorld.class from file HelloWorldAnt/build/HelloWorld.class [tini] Getting UNMT...there are 0 user native methods [tini] Class HelloWorld, size 125, CNUM 8000, TH Contrib: 19 [tini] Initial length of the application: 125 [tini] Output file size : 472 [tini] Number of string table entries: 1 BUILD SUCCESSFUL Total time: 8 seconds