zoukankan      html  css  js  c++  java
  • java_内部类

    在java的开发中,java开发人员建议,尽量少用内部类,要把内部类提出他所处的那个类,单独生成一个类。
    直接来代码:

     1 package com.b510;
    2
    3 /**
    4 * 内部类之间的调用
    5 *
    6 * @author Hongten
    7 *
    8 * @time 2012-3-19 2012
    9 */
    10 public class InnerClassTest {
    11
    12 public static void main(String[] args) {
    13 // 这是InnerClassTest的一个实例
    14 InnerClassTest innerClassTest = new InnerClassTest();
    15 innerClassTest.sayHelloworld();
    16
    17 // 这是类A的一个实例
    18 InnerClassTest.A ia = innerClassTest.new A();
    19 ia.aSayHello();
    20
    21 // 这是InnerClassB的一个实例
    22 InnerClassTest.A.InnerClassB iab = ia.new InnerClassB();
    23 iab.bSayHello();
    24
    25 // 这是InnerClassC的一个实例
    26 InnerClassTest.A.InnerClassB.InnerClassC iabc = iab.new InnerClassC();
    27 iabc.cSayHello();
    28
    29 // 这是InnerClassD的一个实例
    30 InnerClassTest.A.InnerClassD iad = ia.new InnerClassD();
    31 iad.dSayHello();
    32
    33 // 这是InnerClassE的一个实例
    34 InnerClassTest.A.InnerClassB.InnerClassC.InnerClassE iabce = iabc.new InnerClassE();
    35 iabce.eSayHello();
    36
    37 // 当然在我们调用InnerClassE的时候,还可以写成这样
    38 InnerClassTest.A.InnerClassB.InnerClassC.InnerClassE e = new InnerClassTest().new A().new InnerClassB().new InnerClassC().new InnerClassE();
    39 System.out.println("======================分隔符====");
    40 e.eSayHello();
    41 }
    42
    43 // 类InnerClassTest中的方法
    44 public void sayHelloworld() {
    45 System.out.println("i am Test,HelloWorld!");
    46 }
    47
    48 /**
    49 * 定义A类,他是InnerClassTest类的内部类
    50 */
    51 class A {
    52 // 类A中的方法
    53 public void aSayHello() {
    54 System.out.println("i am A,helloworld!");
    55 }
    56
    57 /**
    58 * 定义InnerClassB类,他继承类A
    59 */
    60 class InnerClassB extends A {
    61 // 类InnerClassB中的方法
    62 public void bSayHello() {
    63 System.out.println("i am B,helloworld");
    64 }
    65
    66 /**
    67 * 定义InnerClassC类,他是InnerClassB的内部类
    68 */
    69 class InnerClassC {
    70 // 类InnerClassC中的方法
    71 public void cSayHello() {
    72 System.out.println("i am C,helloworld!");
    73 }
    74
    75 /**
    76 * 定义InnerClassE类,他是InnerClassC的内部类
    77 */
    78 class InnerClassE {
    79 // 类InnerClassE中的方法
    80 public void eSayHello() {
    81 System.out.println("i am E,Helloworld!");
    82 }
    83 }
    84 }
    85 }
    86
    87 /**
    88 * 定义InnerClassD类,他是A的内部类
    89 */
    90 class InnerClassD {
    91 // 类InnerClassD中的方法
    92 public void dSayHello() {
    93 System.out.println("i am D,Helloworld!");
    94 }
    95 }
    96 }
    97 }

     运行效果: 

    1 i am Test,HelloWorld!
    2 i am A,helloworld!
    3 i am B,helloworld
    4 i am C,helloworld!
    5 i am D,Helloworld!
    6 i am E,Helloworld!
    7 ======================分隔符====
    8 i am E,Helloworld!


     

  • 相关阅读:
    vue路由跳转时更改页面title
    vue:axios二次封装,接口统一存放
    https://github.com/simple-uploader/vue-uploader/blob/master/README_zh-CN.md
    基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件
    前端三大主流框架的对比React、Vue、Angular 所谓是是三分天下
    React前端框架以及和Vue的对比
    Win10远程桌面:身份验证错误要求的函数不受支持的解决方法
    经典案例模块——20200404
    流的新认知
    网络编程
  • 原文地址:https://www.cnblogs.com/hongten/p/java_Innercalss.html
Copyright © 2011-2022 走看看