一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 1858|回复: 2
收起左侧

java 嵌套例子

[复制链接]
发表于 2021-5-30 12:01 | 显示全部楼层 |阅读模式
package com.kenson;' B) `) d, W4 T* J: `
2 P2 [! K' `/ i6 ~
6 R1 g$ l7 n# k/ C
class Outer{, X' W! A& S; G; |& R0 N
        private int a = 10;- ?) v1 a+ Y! [: G. S
        int b = 100;& Z8 l9 N, v' q
        / D, k' K3 _- F3 n+ s3 s7 U
       
/ Q, a# D4 T# S0 j: q        private String outerName = "outerName";9 w0 \& z. q7 m& b5 N  q1 l  p' g
       
% ?, O! Z* F$ c  [. Q        public static class StaticNetstedClass{
! n" Z7 a% L. V; @                public void print() {
2 m! N+ [# G8 G/ ~% c  j. S* i; y' |                        // 通过实例访问,可以访问private变量
( l9 S) D: X! k3 f6 t$ w  [/ \                        System.out.println(new Outer().outerName);/ k! n/ l+ h% b" X
                }, m, ^1 ^1 t% [. p) [* p, |: c2 f
        }
1 b( x  l6 P$ j; C1 @       
" ]* U1 h& ]* k7 n8 y; ?0 y: e0 @        ; q# @0 R( S; ?3 F, }( S/ l. U9 o
        //内部类
, |, O  S. b. S. F        class Inner{
1 l1 s' l2 w. E. H7 ^" {- e+ s7 M                int c = 200;
, U, J; \% Z; T& y+ }                . J  S$ B; {' r* B+ R
                class LocInner1{# {) v9 B' b3 d( e  O; H* B7 a% }5 V
                        void Disp() {
! m0 i! B0 q! P  [1 ]9 ], a7 }                                System.out.println("This is a LocInner1 Disp");        ! g% w7 q& C3 ^' M7 Y
                        }       
% [/ N( D4 `4 l5 h, V& e' h7 x' t                }               
. @; s  K$ d  {8 k- P        }! x" a7 s! d# H8 w$ J
       
/ V3 g( f" D. H) y        //外部方法
5 c& n+ C  `: K# n+ Y5 i4 F        public void Display() {* E. e: F0 [( C/ \% @0 d- H
                System.out.println("a=" + a);
  H3 U+ S2 J9 Y$ V2 B! F+ h( F                //局部内部类
  a- r# R& Q' x& Q. {3 `/ l                class LocalInner{
' i" |+ ~6 e) G                        String ln = "I am a Local Inner Class";$ K, Z6 t% P' M3 u; F* v" f: v
                        3 ]- d8 P' Z% k7 e4 r
                        void Disp() {0 d2 e" n5 S0 `0 p) x: ?0 }; T; @
                                System.out.println(ln);
% ^6 ~$ u4 b4 L# r7 L: n' s( i                        }
7 P; f7 ~9 a6 a                }' l# _* x. u4 a. ~/ F
        , R$ O) P* u; `: u: U
                - W2 n! A$ F. M
                LocalInner ln = new LocalInner();
1 e% i" a; l+ e7 K                System.out.println(ln.ln);! J7 Z5 O" H% l) Z4 C1 U0 J
                , S- i. l/ _8 @% R) r
                //声明匿名对像6 @( @: G' [. R1 @
                new LocalInner().Disp();1 y$ X" U- C7 Z
                System.out.println(new Outer().a);
8 f: V4 c- x1 \, F# H* L( f        }3 e' V6 n, g' b" M! i7 k" i6 t
       
9 P9 R" h  u+ r+ ^$ j( h" C4 r}
, I# O4 ~2 _6 R1 O# U
# M* T. P1 D- M$ C3 r9 D7 ~+ x& {) y% W! D0 C7 Y" I  d% I9 |: P, m3 P, B
& n7 k2 h# Z) @' o: U' u  G

5 i- O+ @* J: ~, e( Y5 tpublic class HelloWorld {
0 `. H- K- U1 h- l
( i% T. d) x# F# p, A. o        public static void main(String[] args) {0 o$ x) g- O0 c/ }  {$ b: t
                Outer outer = new Outer();
% A+ W- R1 N; N( Z4 [. m8 G                System.out.println(outer.b);8 d4 P5 g" G2 G  `+ V' Z
               
  F1 J, Y7 ~" Q# l                outer.Display();
7 ~) i, ~" b; E' ], D  q! u                . B& a# k& Y& U! H
                Outer.Inner inner = outer.new Inner();$ l. @: b4 i6 V2 M) i5 n& r8 [
                System.out.println(inner.c);; ~+ R$ z# s: _; ~- ]* O
               
% C8 p+ D( \* x" a' _% ^* {                Outer.StaticNetstedClass staticClass = new Outer.StaticNetstedClass();* u3 Q4 W* e  \' m/ F; Q+ r
                staticClass.print();
1 [/ B1 c! F# f* T$ t                ' f! Q/ ^$ b7 v2 T/ ~
               
1 @/ V, V. r& R; `- V' W' z: n        }
( v9 F  t+ w, r$ F( h       
2 y, {1 R( X# F  H0 t}, W9 K3 |+ i# q

3 k) Q$ x2 I+ H; y! m
 楼主| 发表于 2021-5-30 12:02 | 显示全部楼层
结果 100( J" a* l- i. o& a- \
a=10
% @& `8 Y* t# {& ZI am a Local Inner Class
9 j& q4 r3 h7 h' \/ l$ PI am a Local Inner Class$ e- q9 t, X3 |/ {( c4 u8 W
108 t( M# _+ T( d
2009 C2 A9 f( [) J4 W! j8 ~) A/ @
outerName
 楼主| 发表于 2021-5-31 12:02 | 显示全部楼层
匿名例子7 y, a* c) Z7 ~0 r
* a. h% k" |+ `) d
abstract class Bird {! }4 ]4 J0 d2 L. I
    private String name;4 k5 F2 z- Q- }2 q" i
/ ]; u+ ?) Q1 T: w
    public String getName() {
5 N! {5 k2 H( z' z, i        return name;
; ^7 l8 w. S( ~+ U3 `" O    }1 x, r  Q% u. q/ j

$ g; S# f+ c9 F. H    public void setName(String name) {$ Y0 q8 ~7 x  W% v" X
        this.name = name;0 w9 E" d5 y; N3 P) y. Y
    }8 N3 s9 n4 U; q% ?$ c2 T
1 h! B9 O. `. b/ e1 r
    public abstract int fly();
) ^* I5 {6 X# U3 t# ^  [}3 U$ C4 f% q6 A6 v+ w$ Q
$ t% g' T, o; [' k' \7 ^' I' B

" ~1 h8 t5 \" G% F6 E! ^; l5 ]+ e: D0 I9 a  ^) i
public class Test {( J% e" m' p3 G$ |' P. [- O

' ]4 R" i0 {$ d. v4 U    public void test(Bird bird){1 b" F* D/ w6 l) n" V3 G! B
        System.out.println(bird.getName() + "能够飞 " + bird.fly() + "米");
% M& _& O. K8 Y# O0 ?- P    }
$ d5 Q/ ~1 P/ ^2 w: R/ d  ?  a2 [' g- n" ?2 U6 J
    public static void main(String[] args) {$ e" ]- @( c/ ]3 ]. E/ W, b
        Test test = new Test();
! v, n# M. Y$ u+ b        test.test(new Bird() {  //new bird 是一个匿名对像,从而调用了TEST类的test()方法
. f6 q* c. f3 n/ G5 e4 Q- a% i; T; p9 ~0 e7 ?8 B- ?* A
            public int fly() {
& ~$ N, p  p) l3 ]' ]                return 10000;
3 v5 J3 y3 x! J% d" c( d4 Z# s1 Z            }
- C7 f9 [2 r& P' J& @8 K! N9 h2 o6 F5 T$ k6 @
            public String getName() {. s5 A$ F) n/ u. i  Q$ S
                return "大雁";' `) L, O* R4 {% K/ ~
            }
/ a6 o0 }7 X. |( T        });
+ l! V$ P9 F. v' }/ s    }6 K9 n+ q" [, ]( B1 S' l( ~9 f
}
. S+ f/ f1 F$ X. |3 e
! T0 G1 ~3 B( M; j; \------------------' _  q" z+ n0 z6 X: {. \
Output:, o: R1 l$ t6 u2 Z  H
大雁能够飞 10000米
- {  t2 _0 G" {9 z6 ~" v9 H4 K
. k6 ?, b. {8 X! S8 n- s, L) a. |5 `; l: h" ~+ @2 K- u3 Y2 g
更多:
5 H, L# v1 w& G: g3 ohttps://www.jianshu.com/p/0950c6787c7d
( N9 T* X, h( ^9 P6 B+ k

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-27 15:17 , Processed in 0.044363 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表