Académique Documents
Professionnel Documents
Culture Documents
" !
1.1 Introduction
# !
$
%%&'
! ( ! ! !
" ) #
! " # (
! !
# "
!
1.2 Classes
% " " " ( *
!
%%&
!
* *
!
* ( !
! *
! " ! !
# " ! +
!
* "
! !
! ! , $ ' # "
! ! -
!
* ( " " !
# #"
#. . /
$
./ ' CharStack + 00 "
" + 00
1( 00 " CharStack + 00
! !
#
* CharStack
"
topOfStack " #$ (
'
CharStack ! #
push() #
pop() ! #
peek() #
isEmpty() " #
isFull() " #
# " $
2' 3
* " ( "
4" ! (
// (1) Fields:
private char[] stackArray; // The array implementing the stack.
private int topOfStack; // The top of the stack.
// (2) Constructor:
public CharStack(int n) { stackArray = new char[n]; topOfStack = -1; }
// (3) Methods:
public void push(char element) { stackArray[++topOfStack] = element; }
public char pop() { return stackArray[topOfStack--]; }
public char peek() { return stackArray[topOfStack]; }
public boolean isEmpty() { return topOfStack < 0; }
public boolean isFull() { return topOfStack == stackArray.length - 1; }
}
1.3 Objects
Class Instantiation
*
*
! $
' ! ! "
5 !
! !
! ! new "
1 ) "
" # stack1 stack2 " ! " stackArray
topOfStack
new 6
" " CharStack
new
! ! 6
topOfStack
+ 02 " ./ !
+ 02 " "
! ( " ':'
! + 02 3
! ! "
+ 02 " CharStack ( CharStack
"
Object References
* ! !
! " ! * !
! !
" # ! $
0'
+ 07 * $
0' ! stackA stackB "
# + 07 8 ! stackA stackB
9 #
" ! stackB :9
; ! #
! "
" "
! " !
" 3
3 0<
Invoking Methods
% (
! !# !
( '.' *
! !#
!# !
# ! !
! !# ! stack
$
0' # $
2'
# push() pop() CharStack
push() ! pop()
!# printStackElements() #
CharStack
'.' "
! CharStack !
private
1( 02 counter ! $
0' "
6 ! 0" 1 CharStack
$2' ( (
getInstanceCount() $
7'
! "
# $% & $
// Static variable
private static int counter; // (1)
// Instance methods
public void push(char element) { stackArray[++topOfStack] = element; }
public char pop() { return stackArray[topOfStack--]; }
public char peek() { return stackArray[topOfStack]; }
public boolean isEmpty() { return topOfStack < 0; }
public boolean isFull() { return topOfStack == stackArray.length - 1; }
'
, " !#
getInstanceCount() CharStack
3 !
3 !
( ( )
!
/ !#
* " " '
> * non-static field
* %
/
3 !
/ !#
3 * "
> * static field class variable
3 * " *
/ class method
1.6 Inheritance
" " (
# ( Vehicle Car
! Vehicle ! ? #
Vehicle Motor Axle
GearBox " # !
( #
" # ! CharStack
;!
# # ! CharStack
" + 0@ PrintableCharStack
CharStack CharStack #
" PrintableCharStack #
* +% ,
! ! " ( ) extends
*
" PrintableCharStack
PrintableCharStack ( CharStack $
0'
printStackElements() PrintableCharStack )
stackArray CharStack 4 " !
CharStack 1( 07 ! CharStack
" printStackElements()
" $
2' PrintableCharStack $
7'
CharStack 6 #
! $
1.7 Aggregation
9 " (
!
( ! !
1 CharStack
1 # ! int (!
# CharStack "
! "
! !
./ + 0A
" CharStack " ! char "
- "
" # ! ! ! !
% !
% ! ? !
Review Questions
9 :
3 "
. * !
* #
9 :
3 "
* "
* 6
. *
* !
! 9 :
3 "
, # " $
0'
, # " $
2'
, # " $
7'
. , # " $
='
, # " $
<'
" :
3 " "
"
. % !
" !
' 9 :
3 "
* "
* !
. * "
* "
* 4" !:
3 "
! -
. -
- ;! " " :
class A {
int value1;
}
class B extends A {
int value2;
}
3 " "
, A ( B
, B A
, A B
. , B A
% A ! value2
% B ! value1
" .class ( *
! 235B !
( 00C3 ! *
#" "
// Create a stack
CharStack stack = new CharStack(40);
Client.java Client
! "
>javac Client.java
Client.class ! Client
Client CharStack CharStack.class (
" CharStack.java
, ( ! java " ! 2
35B 1( 0= ! "
>java Client
D ( main()
1( 0= " (
main()
Review Questions
/ 9 ! 235B "
SmallProg.java:
3 "
java SmallProg
javac SmallProg
java SmallProg.java
. javac SmallProg.java
0 9 ! 235B ( main()
SmallProg:
3 "
java SmallProg
javac SmallProg
java SmallProg.java
. java SmallProg.class
java SmallProg.main()
Chapter Summary
" "
%%& " !
Programming Exercises
/ 1( 0= PrintableCharStack
CharStack . 6 printStackElements()
PrintableCharStack " ! "
1( 0=: