Title: 3.1 ????(object-oriented)?
1Chapter3 ????? ??
- 3.1 ????(object-oriented)?
- ????(procedural-oriented)
- 3.2 ??(object)
- 3.3 ???(class)
- 3.4 ??(inheritance)
- 3.5 ???(encapsulation)
- 3.6 ???(message)
- 3.7 ???(polymorphism)
23.1 ????? ????
- ????? ??
- ????? ??? ???? ???? ??
- ??? ??? ????? ?? ??? ??? ????.
- ??
- ???? ????? ??? ??? ???? ???? ???? ??
- ?? ??(Object-Oriented) ? ????(Procedural-Oriented)
- ???? ??? ??? ? ???? ?? ??? ?????? ??
- ???? ???? ???(message)? ??? ?????? ??? ??? ???.
? ??? ??? ???? ???? ??? ? ?? ???? ??
3???? ? ????
???
??
? ? ?
???
??
??
???
??
???
???
? ? ?
???
???
?? ???
???
???
???
? ? ?
???
??
??
???
??
???
????
????
4????? ??
- ??? ?? ????? ?????(???) ? ? ??
- ????? ????? ??? ????? ????? ??? ????? ??? ????
- ?? ????? ??? ?? ??? ?? ?? ? ??
- ???? ??? ??? ? ? ??
- ????? ?? ? ?? ??? ????
53.2 ??(Object)
- ??
- ????? ??? ???? ???, ???? ??? ???? ???? ????(????)
?? - ???? ???? ??? ??? ?? ?????? ??
- ??? ??
- ??? ?? ???? ???(data)
- ???? ????? ??? ? ?? ???? ??
6??? ?
??? ?????? ?? ??? ??
??? ???
???? ??? ??
??? ??
??? ? ??
??? ??? ??
??? ???
???, ??, ???, ???, ???, TV
???, ?, ?, ???, ??, ??
?? ???
??? ? ???
??? ??
??? ???
??? ???
TV? ??
???? ???
??? ?? ?? ??
73.3 ???(Class)
- ??? ?? ?????? ????. ? ???? ??? ???? ??(template)
- ???? ??? ????(member)? ????(??)? ??(???)? ???
- ?????? ??? ??? instance? ??.
- ?? instance
- ????? ??? ???? ??? ????
- ???? ?????? ??? ???? ????
- ?????? ??? ?? ?
??1 new ??(???, ??, ??????, 2??) ?? ????
??? ???? ?? ??? ?? ???
8??? - ?????? ??? ??
???
??? ??
?? ?? ?? ?? ?? ???? ???? ????
??(????)
??1new ??(???,??,.) ??2new ??(???,??,.) ??3
new ??(???,??,.)
???(??)
????(instantiation)
???? ??? ???
??1 ??? ?? ?????? 2?? ???? ???? ????
??2 ??? ?? ???? 3?? ???? ???? ????
??3 ??? ?? ??? 4?? ???? ???? ????
???? (??)
93.4 ??(inheritance)
- ????? ????? ????? ??? ? ??
- ?? ??? ???? ?? ??? ?? ??? ?? ?? ????? ??? ?? ???
????? ???? ? ??? - ?? ???? ?? ???? ??? ??
- ??? ??? ???? ?????? ???(reusing)? ??
10???? ????
- ??? ???? ??? ? ?? ???? ?? ???? ??? ? ??.
- ??? ???? ???? ???? ???? ?? ???? ??? ? ??.
- ???? ????? ???.
??
??? - ?? ?? ?? - ??? ?? ??? - ???? ?? -
???? ?? - ??? ??
??
??
?
???
???
???
???
??
??
???? ?? ??
11????? ????? ?? ??
?? ???? ??? ?? ???? ????? ??
???
??
?? ??
???
?? ??
??
???
?? ??
??? ???
???
???
?? ??
??? ???
??
??
??? ???? ??? ???? ??
12??? ?
person
??(super) ???
student
faculity
staff
??(sub) ???
undergrad
graduate
13 3.5 ???(encapsulation)
- ??? ??? ?? What? ???? How? ???.
- ??? ??? ? ??? ?? ??(private)? ???? ?? ??(public)?
???? ?? - ??? ???? ??? ?? ???? ??? ?????? ????(Information
Hiding)
??? ?????
??? ????? ??? ?????? ???? ??? ??? ? ??
??? ???? ????
public
??
public
public
public
??? ???? ?? ?? ??
14 ???? ??
- ??? ??? ??? ??? ??? ?? ? ??.
- ?? ?? ??? ???? ????? ??? ???.
- ???? ???? ?? ??? ??? ?? ?? ???? ????.
- ??? ??? ????? ??? ???? ??.
- ??? ??? ? ? ?? ??? ???? ??? ???? ??? ? ??.
153.6 ???(message)
- ???? ?? ??? ??
- ???? ??? ??? ????
- ???? ?? ??? ??(??)
- ????? ??? ??? ????? ??? ??
- ??? ??? ???? ??? ????
???
????
????
????.???(????)
16???? ?
???? int xPosition int
yPosition boolean status Color color
Point ??? ??? ??
public class Point1 P point public static
void main(String args) point new
P() // ??? ?? point.move(10,10) // ???
?? point.setColor(blue)
point.penUp() point.penDown()
void move(int x, int y) void setColor(Color
c) void penUp() void penDown()
??? P? ??
17??? ??????? ??? ??
- ?? ????? ??? ??
- ???? ?? ???? ??
???1
??? 5
?? ??
?? ??
??? 2
??? 4
??
??
??? 6
???3
- ?? ????? ??? ??
?? ?? ???
?? ?? ???
- ??? ??
??1 ??2
(???? ??? ??? ??? ???? ??? ???? ???? ???? ??
?? ?? ??)
183.7 ???(Polymorphism)
- one interface, multiple implementation
- ??? ?????? ???? ??? ?? ??? ??
- Polymorphism ???(poly) ??(morphism)
19???(Polymorphism)
A
A1
A2
A3
????? ??? ?? ??? ?? ????? ??? ??? ??
20???(Polymorphism)
?? draw()
?? draw() ??? ???
??? draw() ???? ???
??? draw() ???? ???
21???(Polymorphism)
- ?? A // ?? ??? ??? ?? ?? A ??
- A new ??()
- // ?? ??? ??? ?? ?? A? ?? ???? ??? ???? ??
- A.draw()
- // ?? ???? ??? draw() ???? ???? ??? ??? ???
- A new ???()
- // ?? ??? ??? ?? ?? A? ??? ???? ??? ???? ??
- A.draw()
- // ??? ???? ??? draw() ???? ???? ??? ??? ???
- ..
- ???? ??? draw() ???? ???? ?? ???? ??? ?? ??? ???
???? ?? ?? ??? ???? - ????? ??? ???(draw())? ??? ????(????) ??