一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

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

java 嵌套例子

[复制链接]
发表于 2021-5-30 12:01 | 显示全部楼层 |阅读模式
package com.kenson;  ~# y! t8 Y6 D! E& h
% _5 _# B. g" D6 L  r

5 ^* }* w7 {0 C9 }3 T# W- G$ P2 iclass Outer{
; o' |, A$ b/ h, c9 l0 N        private int a = 10;
* l" \5 \& u: g! y: }5 q  ]        int b = 100;
: H  J1 y4 d% ^9 b       
1 L; _$ l) `  X' N0 B, N       
% v+ G# b$ K0 `* j        private String outerName = "outerName";
1 [  ~# D" `6 g0 B0 Z, O       
* f3 ]1 c9 J' Y        public static class StaticNetstedClass{; e# M0 F: Z/ G' d$ ]" q6 N' q
                public void print() {
3 a' w% s5 @! z' k7 j) F9 u                        // 通过实例访问,可以访问private变量
9 P& n* R6 ^5 w, N6 k9 s. X                        System.out.println(new Outer().outerName);! y, C4 H: Z5 n' h9 W; J" S0 E
                }* \9 _( l) }1 q' a; ?
        }
# x: l5 P4 O  D3 f9 H       
8 g0 ]2 a& `2 f, Y5 d% q/ m3 D5 I        ' J1 N$ \4 y) \: ^
        //内部类
# |- y4 x5 E: i3 [. |5 T; _; H        class Inner{: P7 u% \% Y1 [, H/ s9 m
                int c = 200;& N& w5 @- a1 |3 |) v
                1 h& O+ G8 L; L# t/ h+ Y; i
                class LocInner1{/ `! u9 t' l4 s4 Z+ A! r5 {
                        void Disp() {4 b0 V- a5 E3 ~9 j, U
                                System.out.println("This is a LocInner1 Disp");       
) H: C" g- q' `) q: N                        }       
/ N3 t) \- a: w) e! B: h5 Z" J                }               
9 |9 i2 B; ]3 G7 |; I        }
2 p8 P' d% r* A. P$ A3 B        ! X! @3 o$ E6 y; m: S
        //外部方法$ A3 ]: U8 i" |" S' B! K
        public void Display() {* A8 s& n& q( J& A3 u# N3 w
                System.out.println("a=" + a);$ J4 a, e# |& c& D1 W  T) c
                //局部内部类* _, G/ z0 A* Z: J
                class LocalInner{6 v' N* C2 Y9 d& e) y
                        String ln = "I am a Local Inner Class";
4 |; E7 X& t% M2 a                        # k% O1 b7 u8 `9 U- U$ J
                        void Disp() {
" D; t& l" C8 {+ @2 M1 U$ Q                                System.out.println(ln);. ^# r6 H& r- A6 Z0 e% K9 Z
                        }* i0 P3 j! [( _" ]& x; Q- r2 k" {& Z
                }
' T7 i) D5 V4 ], j2 h        0 z9 R( |, Z( V/ [0 b5 r$ h$ L
               
, J! S) q: n' z" p6 S                LocalInner ln = new LocalInner();( W4 [4 S$ r$ R( y
                System.out.println(ln.ln);
) u7 j+ J) v6 K# l% q7 c  e# |1 i               
- z/ x( i  y- w6 h                //声明匿名对像! D6 R, ?8 z  v& B: I% s3 ?) A2 e4 O
                new LocalInner().Disp();3 |  f7 X& w' X7 w' ]# Y7 D2 G9 T$ H
                System.out.println(new Outer().a);' M1 m$ ?1 x4 y5 E2 O, H3 @
        }
7 d( M- D' ?$ N; R        ! ], ^5 c* u, c$ [) w6 Z/ A" @0 h6 ^% Y
}
" [' H' d6 I7 y0 P' i; I, P5 T5 l: P: o5 R; J* T8 x
+ `- \0 K! q! l2 `; j+ H
2 ~2 X3 v! w( m1 P8 n
" d- W" g( a8 c- t
public class HelloWorld {$ ^! d7 Z0 m7 p8 b1 J

2 w1 Y& V1 ]3 ?2 y1 u6 w/ e        public static void main(String[] args) {
" j/ \$ E" G7 u8 I9 y                Outer outer = new Outer();
( j/ Z, c. n  y+ H0 q9 g                System.out.println(outer.b);* k) q$ M( E2 v; D- K
               
9 ~: q  \% @: }  F4 @2 l+ F) a                outer.Display();
9 {/ B+ e2 c1 {! ~                # N! c5 l. ~6 E% N. P. u# L
                Outer.Inner inner = outer.new Inner();
. X+ s5 V2 W4 E% ]1 {) I* k                System.out.println(inner.c);
0 O# c1 A# W( A* Y1 M6 K8 {- d               
4 n6 r6 T0 |; q9 v                Outer.StaticNetstedClass staticClass = new Outer.StaticNetstedClass();8 `" q# Q, K8 \/ Z0 f, U
                staticClass.print();! C0 i6 S' ?; W3 V# ^0 n  _
                2 ?0 Z) P. g$ V! \( s$ l. J9 b
                ) y- ]% ?+ [1 \0 Y
        }
* Y, ?* z5 {3 d% q; V       
  |8 g/ q, g+ r9 p/ p% P}
, t9 j) y+ N. v$ O' I) m
: e7 [# ?' N6 a, c6 k( A2 Z
 楼主| 发表于 2021-5-30 12:02 | 显示全部楼层
结果 100
2 s  ?" j0 z( B. d' Ua=10
5 ^5 x5 W$ y5 c# g' ?& lI am a Local Inner Class3 S- d3 k" K6 T, \" Z
I am a Local Inner Class& ^) u9 {% ^3 Y' B6 l; Q) ~
10, Y) C% j8 `9 V
2002 z6 Y/ ~; I9 }* o( F
outerName
 楼主| 发表于 2021-5-31 12:02 | 显示全部楼层
匿名例子
( I2 i# D0 U, g# z# T3 g' v2 w+ a* ?+ L% D) z( |7 @
abstract class Bird {
0 F  S0 m; `6 ~6 h2 V! g1 I* Z    private String name;
6 T0 H; X- e# d. t. l; ?9 q, b% N$ h" {$ f/ l
    public String getName() {
1 I% P, e5 a. `/ J2 J) ]        return name;( ?7 O) u/ m1 g( O5 s9 J4 B0 ~
    }
  K- B4 h3 ^. ?* m! U4 @  F& n1 ]5 V- m( s, N) B& p
    public void setName(String name) {
/ W; o. f6 {7 o2 i5 y  y- P        this.name = name;
7 O2 e/ a( e' ^    }1 f- _4 F9 Y. Z3 }5 B: |' M. E! a8 B

7 y4 O3 H6 @2 v4 ^3 i    public abstract int fly();
6 X& z* K5 R* C4 \7 e}: \$ u' V1 ~* C2 I! e7 z+ F

" I% d" {. }  ~8 x  y& i1 L& q+ t: o& {
% f" i4 v7 ^3 i; |
public class Test {
) N0 `+ V% r# |& v9 {9 u6 M% J: X$ p8 g9 Y
    public void test(Bird bird){
( z  x7 C  g: m' A% Y1 M        System.out.println(bird.getName() + "能够飞 " + bird.fly() + "米");5 K. O% x3 d6 x) i
    }
3 V2 O7 w& A. h3 R8 K# J: j% w+ C
    public static void main(String[] args) {
- u% G7 g5 q, N& p) P, c+ g        Test test = new Test();9 O9 c  K! o( B, L7 J% |
        test.test(new Bird() {  //new bird 是一个匿名对像,从而调用了TEST类的test()方法
$ I/ i/ i- K  O( P6 j
& z" g* \: r) U- b# E  m            public int fly() {) V% G" H% ?% l1 [% s0 F, p8 w3 g) H- V
                return 10000;
$ y7 y  J' T- A5 S            }3 E, O: t( h0 M5 r9 }: u

9 U1 Z) T5 r" c$ }* c            public String getName() {- X3 D4 i; `7 x" l4 c
                return "大雁";
7 V8 v! n8 O6 z% Q9 y2 j& O1 W1 t            }% o; p9 ?5 U( c* e0 O
        });: O# d4 s5 T+ K) g- G
    }4 ]. a% R0 O' s" l$ ?- a
}0 l; n3 [; ^$ R1 C! v
1 }3 r) k. Y( x. ]7 K
------------------5 `/ U. q6 M( F* h, L
Output:
* g8 G7 @/ s) b% K# i& q) V6 \" e大雁能够飞 10000米
5 K2 j9 J4 w6 s0 W1 u
0 }( j+ y1 A! A
) |* N) c  {; W- k$ Q更多:
# V! b4 \3 {/ c. Yhttps://www.jianshu.com/p/0950c6787c7d7 L8 {; Z9 \$ Q, M

本版积分规则

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

GMT+8, 2024-5-1 18:54 , Processed in 0.046065 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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