一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3546|回复: 2

java 嵌套例子

[复制链接]
发表于 2021-5-30 12:01 | 显示全部楼层 |阅读模式
package com.kenson;
7 P. n/ q8 e9 C5 z. d
9 h2 |8 W& O- q2 ^
6 i' `& k; b7 h; U6 B+ nclass Outer{
& p8 N+ X! T8 v1 M5 |        private int a = 10;; k6 Y+ H( }" ~
        int b = 100;9 @- A5 U; w. h
       
8 [# y- S' J8 J$ m& L       
3 I0 G8 ?" M# E! E. ?3 F2 F! C        private String outerName = "outerName";
1 P5 d( h2 J: o# w        $ T0 A7 Q6 r# K' G
        public static class StaticNetstedClass{4 \5 v: Y1 S- v5 O5 ~0 f$ h' h& G
                public void print() {! a) h1 z; ]7 @1 b  P) @& l: X: Q
                        // 通过实例访问,可以访问private变量
+ H- |$ S: [! |, d4 E, ?$ I                        System.out.println(new Outer().outerName);; m: I. J) N9 `7 q
                }
# u- O4 W+ R2 U: m- b2 t0 n6 n        }+ k8 Z' o3 C- j( ]) p' h& A7 G
        / N3 j8 w$ j. D- X- B
        6 d0 x/ Q6 ~: \7 ?! S0 l
        //内部类
. u0 @- a( j8 G/ ]2 m        class Inner{
6 p+ U) `7 |, y& c) V1 B" c0 a                int c = 200;- f. @1 v* r+ l0 O" Y
               
; ?4 a7 s1 W: i( K7 ^) L' X: n                class LocInner1{
( K/ \; u. {' S  a: P$ I: t$ q                        void Disp() {
: K* @5 E: N! M* v                                System.out.println("This is a LocInner1 Disp");       
: k' q  v& L7 [                        }        ' K3 f& j( l  d! }" Y
                }                , D7 @  F  ]! t" H$ c* _
        }( o5 [  y: {# q( F
        6 n# n0 D7 d0 [
        //外部方法
+ r9 y' j" B7 A6 n        public void Display() {  @2 g2 e1 |3 t$ Y; v% [
                System.out.println("a=" + a);
6 \0 t, N6 O  f5 g! i                //局部内部类
6 I8 h- Z. e6 j! ]- r, G                class LocalInner{( r  m: G- {. s% _5 Z
                        String ln = "I am a Local Inner Class";6 e1 _2 w: u0 }) x3 ]# T1 B
                        1 ?  R5 x8 W" ]& K7 O; K
                        void Disp() {
% e/ e: ~! Y* j4 w                                System.out.println(ln);
+ x  R; p" R9 Z5 q1 Y3 I* p/ b+ p                        }& e% Q$ ]6 \- k& n& k9 g
                }! k9 W7 R1 E2 x- F
        % ?, }$ o; ?& r$ ]+ B4 @
                : x0 t8 h+ @& R, O( j
                LocalInner ln = new LocalInner();
" V7 u) D0 v0 S+ q- B                System.out.println(ln.ln);
' Z& g& f! S; ^5 r! U- |               
! m5 w1 ?( A9 b% m                //声明匿名对像! S" M0 q' W1 j0 ~4 W% l: s+ n1 g
                new LocalInner().Disp();
; @; E& o" }6 a+ x                System.out.println(new Outer().a);! ]9 s. a) M( {& |9 w& b
        }) n# R+ V* R, s! f( t
        + X% t+ H8 B9 V  u0 e! R' _
}6 K- R1 X' L7 x2 L

  W5 a. u+ R) S" a0 ~5 t! X: a5 P0 K$ @( ^7 A& {3 ?" ^
1 N; `: ?; s: J4 h% D
, p5 j8 B# H* D; ?! }0 Y/ t! d' g
public class HelloWorld {( A4 H4 _: D, U  q2 [3 s
  E6 Q! a  J, I. B9 p
        public static void main(String[] args) {$ f. J& S/ E; m; I% Y
                Outer outer = new Outer();
( r, X3 L% U; ?4 v) f                System.out.println(outer.b);
* v4 s  I6 \4 e) b4 t, M4 z9 W                1 L) u1 x. b2 |% G8 V
                outer.Display();: y  {7 U& R" R- u
               
( G, S. d; D$ ~7 Z, P                Outer.Inner inner = outer.new Inner();
6 E+ j% t2 G" v7 t5 h                System.out.println(inner.c);
  G1 s* M$ Y# I' q# T               
. E: r# I; z& o# G- K. F                Outer.StaticNetstedClass staticClass = new Outer.StaticNetstedClass();5 Z" A6 g+ }! k( ]
                staticClass.print();/ `- [4 j# ]4 L3 q: I
               
2 o  e1 Q* F' \9 R, M5 |               
+ U) ^& Y5 E9 Y& w; T. b- l        }4 R- S  V" H7 U# O. h1 c4 }
        + |- p7 F$ O4 _" `/ r* P
}: Y# F) m" q6 M& b

3 `  a4 y7 R4 V
 楼主| 发表于 2021-5-30 12:02 | 显示全部楼层
结果 100
% z( z9 ^; p! o9 }+ n7 A, q) Ea=10, ^$ y3 }( e3 A9 @9 r& q
I am a Local Inner Class
& e7 g9 b' g8 a' Y9 u7 sI am a Local Inner Class
) K' C+ b% V5 _: P& a% Q10
! V) O: L0 d! Z; @! T" a/ a4 z5 S200
+ D  h* W! J0 f9 |1 XouterName
回复

使用道具 举报

 楼主| 发表于 2021-5-31 12:02 | 显示全部楼层
匿名例子# ^1 q7 h! V2 `5 [# B" E) O

* i# Z! \% Q- Z- oabstract class Bird {1 o' G4 m# _* ^2 B& e
    private String name;1 f6 q0 @& H0 V8 }& k; F
, d& T& {$ Q* i, |" |8 b6 I
    public String getName() {
" A* F+ W9 B+ U2 E; m. Y" ]7 N/ c$ S        return name;/ Z4 e: Z# n3 a0 d5 G
    }4 R" O* j9 S% o2 @
$ y( C- y, i% n
    public void setName(String name) {9 h& T& ?$ A5 O1 F* v
        this.name = name;
% ^  e. B; \4 r' z! Y. H    }- k+ D' P1 i6 e7 R7 M

5 {) C5 e& G; N( H4 H    public abstract int fly();
+ ~4 ^8 {& T9 |) X/ W6 ]' _" g}
6 ^" ?9 ?& }! ~. S% r0 a6 j& _) x' p' x  R9 d
  j6 \2 T6 l; Y5 q8 E2 E
  b2 \' G9 E0 U
public class Test {7 {7 M4 j9 O. x) \# _

+ H* X8 e! `2 V* t: l6 X7 C' b    public void test(Bird bird){1 {  u! P. @- o# B8 A4 z: {( F0 _
        System.out.println(bird.getName() + "能够飞 " + bird.fly() + "米");
/ H  k+ d5 l8 |; V+ O    }/ j7 ?3 W" s! K9 x8 ~$ X* K
! _1 ?# b" A# k& P5 h
    public static void main(String[] args) {5 K; G- i/ P0 O
        Test test = new Test();7 r8 P4 f' T) H" e
        test.test(new Bird() {  //new bird 是一个匿名对像,从而调用了TEST类的test()方法# m+ X# D6 e- k9 u6 @& B- Q( j; F
5 U: q- z% D8 r
            public int fly() {! s7 U: i% U) }# ^. H" T
                return 10000;
8 M) k6 p  y! R3 s5 S. E4 @            }
) Q6 ]) p9 |1 U0 |% P2 [: G6 y2 c# g) X' t2 I3 c
            public String getName() {" ~! D7 g) E! q7 l
                return "大雁";
7 ~" s, e7 G/ N9 E            }9 U. j( O- f! G; u4 q8 {3 A  U
        });
2 r9 C% w9 G* w0 T! y8 g    }" C4 U2 V, N" e; K7 j- |
}
, W+ A  V4 @/ ?0 m' ]. u8 r- Z% x1 {# {2 }$ o& U0 {% B: P4 ]
------------------
2 R  [* F5 F) i/ F" a: MOutput:
# D8 n# i) g! n8 {6 ~1 q8 w9 H. |/ Q2 D大雁能够飞 10000米
; [7 m# d& }- {
  E* V: d3 Y8 c% @; I. q( G0 @
# z2 V4 W6 C; N3 Q更多:
$ }: p# }+ `2 V0 m8 phttps://www.jianshu.com/p/0950c6787c7d
% k9 q$ z6 r" @; l+ r9 T( X# ]9 `) l
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-4-17 16:28 , Processed in 0.029999 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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