o o p w i t h j a v a
play

O O P w i t h J a v a Y u a n b i n Wu c s @e c - PowerPoint PPT Presentation

O O P w i t h J a v a Y u a n b i n Wu c s @e c n u O O P w i t h J a v a P 6 9 r o j e c t 6 : 6 , (


  1. O O P w i t h J a v a Y u a n b i n Wu c s @e c n u

  2. O O P w i t h J a v a ● 通知 – P 月 6 日晚 9 点 r o j e c t 6 : 6

  3. ● 复习 – 继承 ● 代码复用 ● 向上转换 , 多态 ( 父类与子类的类型转换 ) – 接口 ● 代码复用 ● 向上转换 , 多态 ( 多个父接口 ) – 内部类 ● 代码复用 ● 向上转换 , 多态 ( 灵活实现多继承 )

  4. ● 复习 – 内部类 p u b l i c c l a s s P a r c e l { c l a s s C o n t e n t s { ● 定义在一个类的内部 p r i v a t e i n t i = 1 1 ; p u b l i c i n t v a l u e ( ) { r e t u r n i ; } } c l a s s O u t e r { c l a s s D e s t i n a t i o n { … p r i v a t e S t r i n g l a b e l ; D e s t i n a t i o n ( S t r i n g r ) { l a b e l = r ; } c l a s s I n n e r { S t r i n g r e a d L a b e l ( ) { r e t u r n l a b e l ; } . . . } } p u b l i c D e s t i n a t i o n t o ( S t r i n g s ) { . . . r e t u r n n e w D e s t i n a t i o n ( s ) ; } } p u b l i c C o n t e n t s c o n t e n t s ( ) { r e t u r n n e w C o n t e n t s ( ) ; } p u b l i c v o i d s h i p ( S t r i n g d e s t ) { C o n t e n t s c = n e w C o n t e n t s ( ) ; D e s t i n a t i o n d = n e w D e s t i n a t i o n ( d e s t ) ; S y s t e m . o u t . p r i n t l n ( d . r e a d L a b e l ( ) ) ; } p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { P a r c e l p = n e w P a r c e l ( ) ; P a r c e l . D e s t i n a t i o n d = p . t o ( “ T a s m a n i a ” ) ; P a r c e l . C o n t e n t s c = p . c o n t e n t s ( ) ; } }

  5. ● 复习 – 内部类 ● 每个内部类对象包含的有一个外部类对象的引用 – O u t e r C l a s s N a m e . t h i s ● 创建内部类 – 在外部类的方法中 : 直接创建 – 在其他地方 : O u t e r C l a s s O b j e c t . n e w

  6. p u b l i c c l a s s P a r c e l { c l a s s C o n t e n t s { p r i v a t e i n t i = 1 1 ; p u b l i c i n t v a l u e ( ) { r e t u r n i ; } } c l a s s D e s t i n a t i o n { p r i v a t e S t r i n g l a b e l ; D e s t i n a t i o n ( S t r i n g r ) { l a b e l = r ; } S t r i n g r e a d L a b e l ( ) { r e t u r n l a b e l ; } } p u b l i c D e s t i n a t i o n t o ( S t r i n g s ) { r e t u r n n e w D e s t i n a t i o n ( s ) ; } p u b l i c C o n t e n t s c o n t e n t s ( ) { r e t u r n n e w C o n t e n t s ( ) ; } p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { P a r c e l p = n e w P a r c e l ( ) ; P a r c e l . D e s t i n a t i o n d = p . n e w D e s t i n a t i o n ( “ T ” ) ; P a r c e l . C o n t e n t s c = p . n e w C o n t e n t s ( ) ; } }

  7. ● 复习 – 匿名内部类 ● 没有名字的内部类 ● 必须继承某个类 , 或实现某个接口 p u b l i c c l a s s P a r c e l { p u b l i c c l a s s P a r c e l { c l a s s P C o n t e n t s i m p l e m e n t s C o n t e n t s { p u b l i c C o n t e n t s c o n t e n t s ( ) { p r i v a t e i n t i = 1 1 ; r e t u r n n e w C o n t e n t s ( ) { p u b l i c i n t v a l u e ( ) { r e t u r n i ; } / / a n o n y m o u s i n n e r c l a s s d e fi n i t i o n } p r i v a t e i n t i = 1 1 ; p u b l i c i n t v a l u e ( ) { r e t u r n i ; } p u b l i c C o n t e n t s c o n t e n t s ( ) { } ; r e t u r n n e w P C o n t e n t s ( ) ; } } p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { P a r c e l p = n e w P a r c e l ( ) ; P a r c e l p = n e w P a r c e l ( ) ; C o n t e n t s c = p . c o n t e n t s ( ) ; C o n t e n t s c = p . c o n t e n t s ( ) ; } } } }

  8. ● 复习 – 通过内部类灵活实现多继承 i n t e r f a c e A { } c l a s s A { } i n t e r f a c e B { } a b s t r a c t c l a s s B { } c l a s s X i m p l e m e n t s A , B { } / / c l a s s X i m p l e m e n t s A , B { } / / w o n ’ t c o m p i l e c l a s s Y i m p l e m e n t s A { c l a s s Y e x t e n d s A { B m a k e B ( ) { B m a k e B ( ) { r e t u r n n e w B ( ) { } ; r e t u r n n e w B ( ) { } ; } } } } p u b l i c c l a s s T e s t { p u b l i c c l a s s T e s t { s t a t i c v o i d t a k e A ( A a ) { } s t a t i c v o i d t a k e A ( A a ) { } s t a t i c v o i d t a k e B ( B b ) { } s t a t i c v o i d t a k e B ( B b ) { } p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { X x = n e w X ( ) ; Y y = n e w Y ( ) ; Y y = n e w Y ( ) ; t a k e A ( y ) ; t a k e B ( b . m a k e B ( ) ) ; t a k e A ( x ) ; t a k e B ( x ) ; } t a k e A ( y ) ; t a k e B ( b . m a k e B ( ) ) ; } } }

  9. O O P w i t h J a v a ● 容器简介 ● C o l l e c t i o n – L i s t , S e t , Q u e u e ● M a p ● C o l l e c t i o n a n d I t e r a t o r

  10. 容器简介 ● 如何将对象组织起来 ? i n t a = 0 ; i n t b = 0 ; . . . i n t z = 0 ; M y T y p e m _ a = n e w M y T y p e ( ) ; M y T y p e m _ b = n e w M y T y p e ( ) ; . . . M y T y p e m _ c = n e w M y T y p e ( ) ;

  11. 容器简介 ● 数组 i n t [ ] a = n e w i n t [ ] { 1 , 2 , 3 } ; M y T y p e [ ] b = n e w M y T y p e [ 3 ] ; M y T y p e [ ] c = n e w M y T y p e [ 3 ] { n e w M y T y p e ( ) , n e w M y T y p e ( ) , n e w M y T y p e ( ) } ; 长度不可变 无法添加和删除数组元素 1 . 数组元素之间的关系 ? 2 . ( S e t )

  12. 容器简介 ● 容器 – 提供更灵活的组织对象的方式 ● 动态添加 , 删除 – 例如 ● L i s t , S e t , Q u e u e ● M a p – 位于包 j 中 a v a . u t i l

  13. I t e m 1 I t e m 2 I t e m N 一列有序的对象 L i s t : 数组 , 链表 ) ( i m p o r t j a v a . u t i l . * ; A r r a y L i s t a = n e w A r r a y L i s t ( ) ; L i n k e d L i s t b = n e w L i n k e d L i s t ( ) ; / / I m p l e m e n t L i s t i n t e r f a c e L i s t c = a ; 接口 L i s t L i s t d = b ;

  14. A d d I t e m 1 I t e m 2 I t e m 2 I t e m 2 I t e m 3 集合 ( 没有重复元素 ) S e t : i m p o r t j a v a . u t i l . * ; H a s h S e t a = n e w H a s h S e t ( ) ; T r e e S e t b = n e w T r e e S e t ( ) ; / / i m p l e m e n t S e t i n t e r f a c e 接口 S e t c = a ; S e t S e t d = b ;

  15. I t e m 1 I t e m 2 I t e m 3 I t e m 4 队列 Q u e u e : i m p o r t j a v a . u t i l . * ; 进队 ) - e n q u e u e ( L i n k e d L i s t a = n e w L i n k e d L i s t ( ) ; 出队 ) - d e q u e u e ( P r i o r i t y Q u e u e b = n e w P r i o r i t y Q u e u e ( ) ; 先进先出 - / / I m p l e m e n t Q u e u e i n t e r f a c e 应用 : 任务调度 Q u e u e c = a ; - 接口 Q u e u e Q u e u e d = b ;

  16. ● 队列 – 先进先出 ( F i r s t i n , fi r s t o u t ) – 先来先服务 ( F i r s t c o m e , fi r s t s e r v e )

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend