一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

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

java 嵌套例子

[复制链接]
发表于 2021-5-30 12:01 | 显示全部楼层 |阅读模式
package com.kenson;- B  {' Z* x* [3 u( H' x
( P; P! @. y% f% ]4 k: |4 z( D* P
# }+ t: b) y4 K3 @, Q  u" S
class Outer{0 ~$ W4 C9 k: O+ t9 }! n) v+ I9 s
        private int a = 10;+ F3 y' B# B, _
        int b = 100;
# p' u7 ]6 G% {3 L       
4 E" N& Y4 R0 `2 J1 A       
" T" Y+ m" N1 a# {' d4 c        private String outerName = "outerName";( L+ q' `7 j9 z' F
       
5 Q  f, E0 |* {% P* }7 Q: r/ }) D        public static class StaticNetstedClass{8 k' S' n: ?" Q
                public void print() {: P+ F0 Z. O1 u8 U
                        // 通过实例访问,可以访问private变量
/ [+ f' S/ N3 x! \9 `! T) f                        System.out.println(new Outer().outerName);! U) K: H: ]* n! {; |$ Q
                }+ ]' u5 K; x( ?; e9 i
        }
+ C+ \8 S4 V+ u+ ~1 B3 d" b; F       
8 B$ I3 i, W$ @        + v  q7 N7 Z; f# J
        //内部类# K( b# Y0 L* ]$ I& n
        class Inner{5 L# g2 A7 n& F5 e5 P  i
                int c = 200;- T+ W1 g/ _- J# I9 N; Y7 W' {
                $ j  @- c- r) f. j5 ~
                class LocInner1{
/ F5 r5 k$ U6 d! q+ s+ G                        void Disp() {
. j% S9 P% U& v5 n/ j                                System.out.println("This is a LocInner1 Disp");          ?) h9 p/ B: N' `, Z& L
                        }        + ?3 j5 ~8 j% Y- \
                }               
5 C4 x& w. h0 D" b' k. L$ O# H        }
: m2 i# u+ L8 T0 Y: ~: f( ~# y        ) B9 _. I; c( G$ z2 C* ~
        //外部方法7 A- z; d( h+ h% d
        public void Display() {* {+ T, p& G" `  V( a  l) p
                System.out.println("a=" + a);
3 K/ {  r( N' n8 r; ~                //局部内部类0 v! k4 h, U& |! P- g9 u( f
                class LocalInner{% E( \. \1 H; w8 L" V' p" L
                        String ln = "I am a Local Inner Class";) O- B, T5 x& v% y. h
                        ) x8 [/ ^4 q! f5 O
                        void Disp() {
; |4 p" t# K# H) v+ Y- L                                System.out.println(ln);
2 E7 O* P) c6 V" F) C3 A/ |$ \                        }
' D" e8 o. l" J! B$ g+ p                }
3 B) O$ ^1 q3 p1 M       
! j8 w  w2 t! X) q& K                3 e. {& F3 p$ l0 ]; R
                LocalInner ln = new LocalInner();( [( f3 ~4 O7 o; T' Q& j
                System.out.println(ln.ln);
8 V+ V" Y, ]. d1 c                . H+ H! K. [: a) e; a0 v
                //声明匿名对像1 Y3 L" o% |1 W9 u2 B
                new LocalInner().Disp();
) i) G6 i" f- {7 Q                System.out.println(new Outer().a);
8 c/ u; ?) L5 j2 {% [. d2 Z3 @: ]6 _1 @        }
6 t( K1 |% j4 H- ]$ s        ) p5 V1 P' v5 a- a# v1 \7 ~! D8 t/ @
}2 U% Z7 [* _) r2 Q
, W" X4 T2 g7 R5 C7 [

5 n% E2 k2 a& ^: ~5 j5 }. |5 U+ u8 a& ?! }! D$ Y2 b; b5 [
. U3 ?' |& ~5 p
public class HelloWorld {
: s9 `  d9 y% N+ b* e1 e' Y2 D2 j8 {4 F$ q5 J
        public static void main(String[] args) {
* u2 C! J1 G4 Y5 x+ I$ ~. g1 t, C( e0 N                Outer outer = new Outer();
& A+ @# h" h+ n6 C& ?; c                System.out.println(outer.b);2 f4 h  w1 F/ K6 D
               
+ }# _. a  n; u" k& y0 h6 _                outer.Display();- u) i1 {: F% t" l. m
                  ?: p0 e( I2 V4 K
                Outer.Inner inner = outer.new Inner();) Y" @9 c: N0 R, P5 j- u' e, P. ~
                System.out.println(inner.c);" z% J& v7 N! ?  V% ~6 ?$ G9 |
                6 `& n6 ~1 a6 [$ A  W$ z
                Outer.StaticNetstedClass staticClass = new Outer.StaticNetstedClass();
9 n. J; D7 s7 F2 W$ ]  ?                staticClass.print();4 f  L, ^6 I: q) D+ G* ~' i# N
               
" A! e- J  b6 T. v1 Z8 D* d                2 {9 ]# q% C1 ~* ?
        }# \3 b+ @3 I7 e0 c( ^
       
" h5 I- @4 d( x) y8 E; ]}1 e* C2 `4 t' j, j0 J  Q) {' V

. W5 j& K6 ]6 g
 楼主| 发表于 2021-5-30 12:02 | 显示全部楼层
结果 100
7 r9 z. O; T. q9 \+ Q4 ya=10
* B& k2 ~( }! j' ~% F. l4 NI am a Local Inner Class
( m1 |9 W9 t, F! `3 h8 EI am a Local Inner Class% ~2 f1 b. z. e. j
10$ W$ H3 k# i# i4 o; c& |/ r
200
" P+ {! N! U& f0 Q2 UouterName
 楼主| 发表于 2021-5-31 12:02 | 显示全部楼层
匿名例子2 g% v: ~6 k! S5 p; M0 ^6 I
" W2 e1 k! K8 Y0 c- g' y% m& e% U- D
abstract class Bird {
- t* C1 C& [6 m7 W# {  }    private String name;" h3 g" M4 u- T) B$ ^3 b; S

2 \! P2 r) k% c7 `    public String getName() {$ _: W. h' m$ f1 L4 W1 n  d
        return name;
" P- i, M9 c* [6 F    }
# Q1 t& e$ w. X& f9 n* X/ F
: v- o; s: R' z8 e1 W: [' E    public void setName(String name) {
. ^: V% ?' W3 \- w7 X6 E        this.name = name;
- V1 O# H4 S3 f' Y' z3 H    }
6 Q$ D/ C1 B! ?# A( w+ m
# g- l9 L4 }2 L% t    public abstract int fly();
- }1 j8 V; G  M8 M}, g% W7 a4 t2 R" U3 _
: {  H1 R7 @3 a: b! F

  Z2 i" m8 c0 _2 Y8 Z9 S
% Q0 Z8 k% e6 u; p9 o4 l5 d7 P- T7 j( wpublic class Test {
6 O9 M  t8 e1 h* r+ I9 X8 Y- J+ w  W; x$ w/ A( ^
    public void test(Bird bird){% y: q/ x9 z, T) e* L/ _# h
        System.out.println(bird.getName() + "能够飞 " + bird.fly() + "米");) M! d& O+ Y( z, P  k
    }
! z5 W8 s* L1 `0 C+ n+ s" [) l
" k' |0 S" n+ P7 A9 `. a: a& B% F    public static void main(String[] args) {
! i. `" D; D  h. s. R8 B* t5 H' U% y        Test test = new Test();* p2 e8 y% s& D9 F  n
        test.test(new Bird() {  //new bird 是一个匿名对像,从而调用了TEST类的test()方法
3 T& f$ {  t4 Q: q6 z% c0 Z* S! U
            public int fly() {
3 K& N( \7 |1 }! z+ U                return 10000;4 z/ {$ R% i* u$ \  T6 R2 ^, t
            }2 P7 [' p; V( L+ N

7 J  M( p  z, F  P# m: Q            public String getName() {& {4 a! M5 M9 m- i! w
                return "大雁";
; v6 p; s' i* s" D            }
8 x) T2 K0 I' q8 m+ ~        });7 K) y. K, h  P
    }: n; X% Q/ x! |+ L- i5 l
}1 L3 h. o7 q( I1 K' L, `4 A0 \* O
' _% C' I1 T  H1 c3 J# ^+ z  O
------------------
. P# D0 t" A/ f3 X3 k& e" x& BOutput:
3 i% }' ?3 D7 @- Z大雁能够飞 10000米1 n& N2 Z+ h8 E8 ~# ]% C

1 a' O- Z: {- N6 Z# [  f0 ~
: n8 d3 Z) s- w$ L0 j, n更多:. N# \, B' }# s! w9 D% [- D& E$ p
https://www.jianshu.com/p/0950c6787c7d
: t0 |$ h" M. k& j

本版积分规则

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

GMT+8, 2024-4-20 13:42 , Processed in 0.046949 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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