java开发之内部类的用法
发布时间:2023-02-04 21:30:07
标签:java,内部类
在java的开发中,java开发人员建议,尽量少用内部类,要把内部类提出他所处的那个类,单独生成一个类。
直接来代码:
package com.b510;
/**
* 内部类之间的调用
*
* @author Hongten
*
* @time 2012-3-19 2012
*/
public class InnerClassTest {
public static void main(String[] args) {
// 这是InnerClassTest的一个实例
InnerClassTest innerClassTest = new InnerClassTest();
innerClassTest.sayHelloworld();
// 这是类A的一个实例
InnerClassTest.A ia = innerClassTest.new A();
ia.aSayHello();
// 这是InnerClassB的一个实例
InnerClassTest.A.InnerClassB iab = ia.new InnerClassB();
iab.bSayHello();
// 这是InnerClassC的一个实例
InnerClassTest.A.InnerClassB.InnerClassC iabc = iab.new InnerClassC();
iabc.cSayHello();
// 这是InnerClassD的一个实例
InnerClassTest.A.InnerClassD iad = ia.new InnerClassD();
iad.dSayHello();
// 这是InnerClassE的一个实例
InnerClassTest.A.InnerClassB.InnerClassC.InnerClassE iabce = iabc.new InnerClassE();
iabce.eSayHello();
// 当然在我们调用InnerClassE的时候,还可以写成这样
InnerClassTest.A.InnerClassB.InnerClassC.InnerClassE e = new InnerClassTest().new A().new InnerClassB().new InnerClassC().new InnerClassE();
System.out.println("======================分隔符====");
e.eSayHello();
}
// 类InnerClassTest中的方法
public void sayHelloworld() {
System.out.println("i am Test,HelloWorld!");
}
/**
* 定义A类,他是InnerClassTest类的内部类
*/
class A {
// 类A中的方法
public void aSayHello() {
System.out.println("i am A,helloworld!");
}
/**
* 定义InnerClassB类,他继承类A
*/
class InnerClassB extends A {
// 类InnerClassB中的方法
public void bSayHello() {
System.out.println("i am B,helloworld");
}
/**
* 定义InnerClassC类,他是InnerClassB的内部类
*/
class InnerClassC {
// 类InnerClassC中的方法
public void cSayHello() {
System.out.println("i am C,helloworld!");
}
/**
* 定义InnerClassE类,他是InnerClassC的内部类
*/
class InnerClassE {
// 类InnerClassE中的方法
public void eSayHello() {
System.out.println("i am E,Helloworld!");
}
}
}
}
/**
* 定义InnerClassD类,他是A的内部类
*/
class InnerClassD {
// 类InnerClassD中的方法
public void dSayHello() {
System.out.println("i am D,Helloworld!");
}
}
}
}
运行效果:
i am Test,HelloWorld!
i am A,helloworld!
i am B,helloworld
i am C,helloworld!
i am D,Helloworld!
i am E,Helloworld!
======================分隔符====
i am E,Helloworld!


猜你喜欢
- Idea2020.2创建JavaWeb的方式略有改动,以下做个记录,大家可以参考下,对以后的工作有所帮助!1.创建项目不再是Java Ent
- Android利用爬虫实现模拟登录的实现实例为了用手机登录校网时不用一遍一遍的输入账号密码,于是决定用爬虫抓取学校登录界面,然后模拟填写本次
- GestureDetectorGestureDetector 是手势识别的组件,可以识别点击、双击、长按事件、拖动、缩放等手势点击事件点击相
- 本文实例讲述了Java数组高级算法与Arrays类常见操作。分享给大家供大家参考,具体如下:冒泡排序冒泡排序原理冒泡排序代码:package
- 本文实例讲述了C#进程监控方法。分享给大家供大家参考。具体如下:using System;using System.Collections.
- 前言翻译自:arkadiuszchmura.com/posts/be-ca…最近我在负责一段代码库,需要在使用 Flo
- 最近接触到INI配置文件的读写,虽然很久以前微软就推荐使用注册表来代替INI配置文件,现在在Visual Stud
- 类的定义面向对象的程序设计中,类可以看作是我们自定义的数据类型,那么,如何能更加优美,更加高效地定义它就显得尤为重要。类中的成员有很多,每一
- 通过Socket + Instrumentation实现模拟键盘鼠标事件主要通过以下三个部分组成:Socket编程:实现PC和Emulato
- 一、前言ConcurrentHashMap的源码采用了一种比较独特的方式对map中的元素数量进行统计,自然是要好好研究一下其原理思想,同时也
- 本文实例讲述了C#简单实现SNMP的方法。分享给大家供大家参考。具体如下:/**C# Network Programming by Rich
- 本文实例讲述了Android实现在屏幕上移动图片的方法。分享给大家供大家参考。具体实现方法如下:1. Speed.java文件:packag
- 本文实例讲述了WinForm调用jar包的方法。分享给大家供大家参考,具体如下:因为工作需要,需要做一个数据上传的程序,客户规定的是:数据接
- 前言:字符串插值是一种将 表达式 插入到字符串字面量中的一种技术,又称为变量替换,变量插值,变量展开 等等,它是一种用相应值替换字符串中的一
- PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程
- 一、自定义Dialog在沉浸式效果下,当界面弹出对话框时,对话框将获取到焦点,这将导致界面退出沉浸式效果,那么是不是能通过屏蔽对话框获取焦点
- 1 概念和原理一般的字符串匹配算法都是匹配一个子串,例如KMP、Trie,那么如果同时匹配多个子串呢?此时就需要用到AC自动机了。AC自动机
- 本文介绍idea的安装和基本使用首先保证JDK正常安装及配置下载地址:https://www.jetbrains.com/idea/down
- 本文为大家分享了实现断点续传下载的具体代码,供大家参考,具体内容如下1、基于Ok+Rxjava实现断点续传下载2、基于Ok+Rxjava+R
- 本篇文章介绍:如何使用Toolbar;自定义Toolbar;先来看一看效果,了解一下toolbar;布局文件:<android.sup