一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3550|回复: 2

java 嵌套例子

[复制链接]
发表于 2021-5-30 12:01 | 显示全部楼层 |阅读模式
package com.kenson;
# B: ?  O( y7 w& D7 b
: u2 |/ P6 R* r
  r  B  Y' r' K, Z: r- Bclass Outer{1 |/ a; D  k  }. t* y; k: p
        private int a = 10;
* L6 U$ T! Z* A; B* C* z: i        int b = 100;( F, Y/ P/ \8 ?! t
       
% K* q. G) G0 {4 }7 q5 i) ?       
+ d+ U) @3 T( X        private String outerName = "outerName";
( g0 w* s, X9 M2 W       
: @9 }* ^0 M6 u# O& d7 M        public static class StaticNetstedClass{5 W; o- Q4 C3 I8 G+ j1 V
                public void print() {
' y7 c) J8 F$ ~9 F5 }' s- g# M# i6 M                        // 通过实例访问,可以访问private变量4 B4 W8 M" W3 a; I0 v1 [
                        System.out.println(new Outer().outerName);7 l' K+ i6 I9 j# x
                }# E; I* ~7 x2 ]4 n( ]
        }% _  g3 i/ g/ e3 V$ W
        4 d* d# @5 i; b4 N
        ; ^" e8 q2 [5 X4 Z" O4 P
        //内部类
7 I. ^6 o7 e& C+ G        class Inner{
# V; T% ^4 h4 d5 G& ?2 z                int c = 200;
5 v) O9 x7 d  l& F$ M                ) J7 x+ W4 _! N
                class LocInner1{
' K* Z" z, c' q2 a2 K! g4 E- C7 F                        void Disp() {
3 F# E$ J$ _/ `' e3 {                                System.out.println("This is a LocInner1 Disp");        / j7 [/ l! d8 J# M7 y
                        }        . r: Z9 u5 K/ `( F
                }               
' H2 X/ P7 u7 T- s' j+ m# r. ^; p0 W        }& _: d* r: x. z% C, f' i
        ; F) h, b5 L6 \! F
        //外部方法
: V+ Q% z" `8 S& d* f. c        public void Display() {1 s! W5 ]" E) N5 I, g
                System.out.println("a=" + a);3 C5 \6 J) n# v, d9 Z" A( I
                //局部内部类
- E& R; B  I/ \  B( T& Y5 q                class LocalInner{% }: B8 U" ~/ S6 s4 E
                        String ln = "I am a Local Inner Class";
) l% C' F' q% W$ o- u6 N                       
: @# _+ o7 S1 f/ H                        void Disp() {. l! v0 P: v  a
                                System.out.println(ln);0 W4 p% Z- p1 |
                        }- K" l  [8 j. j( L5 Z1 c7 }
                }
6 Z( ]" D4 ~. V+ I( L& ]0 S+ N0 @       
4 g% u( v4 q1 G1 ?                # B, f) H  O( ]. y7 K4 A( e
                LocalInner ln = new LocalInner();) N9 C2 h3 y/ `$ u6 A
                System.out.println(ln.ln);( U, G) S4 h' ~3 \+ i
                8 i% g: G2 z# i2 n$ H% \. o) _+ a$ ?% d
                //声明匿名对像- e" q& g( [/ Q5 W# O; L
                new LocalInner().Disp();
9 u6 L1 l2 b' g# z- V/ W& ?' E; K                System.out.println(new Outer().a);
1 [4 ^- ^+ N. H1 J: N# R8 r  N        }- N( T! F3 f# K. O0 w. V
       
3 E- q+ x$ c. z" R, K. e}
: N5 f) \/ R$ _9 S& u6 k& H' @
# B7 p/ T4 v, f# x
) c7 \' y6 m: F% J
5 K; @6 I. v( e0 a% Y
" `9 ~( E5 r, ^# B5 opublic class HelloWorld {
0 J$ n  B9 Z# y; t, H- @/ }" s5 _; G: K/ ?
        public static void main(String[] args) {5 |6 l; T9 p1 d9 f
                Outer outer = new Outer();
; y7 W8 ^" F4 z! B# j                System.out.println(outer.b);
7 M5 _9 z% W  w& @6 e: k) x: V               
  S+ s2 i% U# q5 O/ {& m                outer.Display();8 y% r5 x+ d; F( O
                1 o2 O% z, F' G3 m
                Outer.Inner inner = outer.new Inner();+ u4 E8 j) H/ E+ F1 x
                System.out.println(inner.c);
' a3 h0 @- B6 z+ X               
; ~- r% z# x: M5 \1 e1 r  K                Outer.StaticNetstedClass staticClass = new Outer.StaticNetstedClass();
* R" b& @: W  Q2 g# N                staticClass.print();
: c4 t' C2 r: ^3 \               
7 @6 ?) X+ T& w# \) K8 o8 o' e               
: S! d( K2 s0 y* ^( G        }, l# e" p  a0 e8 w+ D- c7 W7 i
       
4 m$ [1 R0 n  h9 V3 m}
0 Y8 N( `0 X: I3 a  r+ h" ?2 s' `) p# Q0 ]' T2 d6 \( ?
 楼主| 发表于 2021-5-30 12:02 | 显示全部楼层
结果 100+ M3 k) k! D4 w& q; U' Y
a=107 p2 @* x0 I$ s0 i9 q
I am a Local Inner Class
# L1 G, Z! I  K. `6 \) {I am a Local Inner Class, f- p, r' Q, ^0 Z1 D1 k0 P
10# Q6 J3 B' |+ h5 ^6 M* Y& J5 K2 E* P
200
0 E& `9 f7 F. t9 BouterName
回复

使用道具 举报

 楼主| 发表于 2021-5-31 12:02 | 显示全部楼层
匿名例子
' v  _$ U* Y, X  Q
5 ^' e8 P8 }* O; Kabstract class Bird {
. |" o! O( @: j, @  S& U    private String name;
" R6 A3 {! _( `! a. n% H# F7 Z
, r: `# W' b, E: \2 {* i: [8 z    public String getName() {
5 M5 r/ _4 \2 Y6 X+ o        return name;$ U- n' a# E& N% {- E: i9 A% p
    }" ^' W  W  ^. k  ?' q! p- C

2 i! b6 I/ ], M, {  Z. l    public void setName(String name) {
2 l, n6 V' |( s/ N6 |+ w        this.name = name;& k8 P+ R8 o$ B2 b; i$ X! T
    }
4 Z* W4 @6 ^6 o9 Q' c- W0 |! z
9 N( Q. `% L( s0 U+ u3 J    public abstract int fly();
) g# b3 U$ y& u! Y: l}9 g4 ]5 P, d" P2 H

# ~! F6 K5 K- f3 J
, q9 q9 v- f' d4 k3 |$ ^
! Q) P: H% T, ypublic class Test {3 p- R6 O* P" `. V; f9 r: C' K

- f1 L% M% y* g9 E2 w/ y4 y2 Z4 c" {    public void test(Bird bird){
* {8 k3 ?8 ~4 C) O: P/ J        System.out.println(bird.getName() + "能够飞 " + bird.fly() + "米");
0 Z  d+ ?; }) }  T( @    }% g5 h& X$ H- X: i& T
* ~' u7 N& L# n2 X2 f; g$ b: `
    public static void main(String[] args) {
9 ?# S: e# v) i0 o        Test test = new Test();
3 p5 c8 y7 n, u- m3 j        test.test(new Bird() {  //new bird 是一个匿名对像,从而调用了TEST类的test()方法
. `# l8 n" W! s0 X1 ?  h4 _8 j- s6 h5 b
            public int fly() {
$ y. N% h  j* S( k# n) S                return 10000;# J' z6 P8 `1 f' f" a: B' v
            }
4 I& ?  k) a1 w- _* z9 `
# D' O, K8 v+ ?2 J( u7 B            public String getName() {
1 @7 u. C  B+ v! `) m3 S; U                return "大雁";
% K+ V1 X. Z1 q/ h            }8 p. d5 S, s- U( `& j4 P0 N
        });
" d5 u+ n$ |- s1 x1 T    }+ {5 Z; l7 d6 n$ I! [% P5 d
}
( F! C$ E) p  v- w; ]% Y! v* {- C: a
------------------) \+ `- m" l3 Q# s9 L
Output:
* b& g  I8 X- D6 Q( I, [5 O大雁能够飞 10000米0 _; V6 L, x( N* ?% i

, ?5 V7 T2 X+ L. [4 M+ x# y8 R: T- L" k3 a3 c
更多:
3 w+ X2 c2 V% N* Shttps://www.jianshu.com/p/0950c6787c7d& `9 K1 G- r6 ?5 M7 h9 C; ]2 I7 \
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-4-19 20:05 , Processed in 0.040454 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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