定义在一个类内部的类称为内部类。内部类访问权限可以是public、protected、default或private,可以声明为abstract供其他内部类或外部类继承,可以声明为static、final,也可以实现特定的接口。外部类可以访问内部类的所有方法与属性,包括私有属性和方法。

ps:这里只讨论成员内部类,不讨论局部内部类(包含匿名内部类),本文所有涉及的内部类均为成员内部类。

创建实例

package com.cc.innerclass;public class OuterClass
{public static void main(String[] args){InnerClass innerClass = new OuterClass().new InnerClass();//通过外部类实例来实例化内部类对象OuterClass.StaticInnerClass innerClass2 = new OuterClass.StaticInnerClass();//实例化静态内部类对象}private void outerClassMethod(){System.out.println("==========outerClassMethod=========");}private class InnerClass{private void innerClassMethod(){outerClassMethod();//内部类能访问外围类的所有成员}}private static class StaticInnerClass{}}

内部类访问外部类

非静态内部类可以访问外部类的所有成员。

静态内部类

内部类只有声明static,才能定义静态成员。静态内部类只能访问外部类的静态成员,不能访问外部类的非静态成员,非静态方法可以访问外部类的静态成员,实例化对象不需要外部类的实例。

【JAVA基础篇】内部类相关推荐

  1. 菜鸟学习笔记:Java基础篇5(抽象类与接口、回调函数、内部类)

    菜鸟学习笔记:Java面向对象篇下 抽象类 接口 回调函数 内部类 成员内部类 匿名内部类 抽象类 通过前面知识的学习,抽象类这个概念应该不难理解,但比较容易和后面要说的接口混淆,而且在面试中也比较爱 ...

  2. 菜鸟学习笔记:Java基础篇6(数组、字符串)

    菜鸟学习笔记:Java常用类(数组.字符串) 数组 概述 数组的定义 二维数组 数组查找和排序 查找 排序 数组运用--字符串 不可变字符序列(String) 可变字符序列(StringBuilder ...

  3. 菜鸟学习笔记:Java基础篇4(面向对象三大特征)

    菜鸟学习笔记:Java面向对象篇中 继承 概念 方法重写(override) Object类 Super关键字 组合 final关键字补充 封装 访问控制符 多态 继承 概念 继续上一篇的例子: #m ...

  4. Android面试题Java基础篇

    Android面试题Java基础篇,由本人整理汇总,后续将继续推出系列篇,如果喜欢请持续关注和推荐,更多精彩内容可以关注微信公众号(Android高级编程):android-tech 系列文章目录: ...

  5. java基础篇---第一天

    今日开始在心中正式开始在培训班开始培训.一下是在培训的过程中发现自己在自学过的过程中发现的问题.这篇是java基础篇. 第一天 : 1)配置java环境变量 1.在系统变量中新建JAVA_HOME:j ...

  6. 《Java 后端面试经》Java 基础篇

    <Java 后端面试经>专栏文章索引: <Java 后端面试经>Java 基础篇 <Java 后端面试经>Java EE 篇 <Java 后端面试经>数 ...

  7. 高频面试真题答案 -java后端 -java基础篇

    原贴 2022届秋招高频面试真题汇总,千题奉送!!!- 后端篇_笔经面经_牛客网 整理答案: 类加载机制 47 双亲委派机制 24 new一个对象的过程 4 java程序是如何运行起来的? 1 jvm ...

  8. 你所需要的java基础篇深入解析大汇总

    java基础篇深入解析大总结 java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规则 java基础(三) 加强型for循环与Iterator java基础(四) java运算顺序 ...

  9. Java基础篇4——数组

    Java基础篇4--数组 1.数组的概念 当需要在Java程序中记录单个数据内容时,则声明一个变量即可 当需要在Java程序中记录多个类型相同的数据内容时,则声明一个一维数 组即可,一维数组本质上就是 ...

  10. Java基础篇3——流程控制

    Java基础篇3--流程控制 1.顺序结构 正常代码的流程即是顺序流程 2.分支结构 2.1.if-else分支 if(条件表达式) {语句块1; } if(条件表达式) {语句块1; } else ...

最新文章

  1. SegmentFault 技术周刊 Vol.21 - 程序人生(二):2016 这一年
  2. ChainBuilder Connect SOA平台解决方案的案例研究
  3. AChartEngine绘制图形
  4. Android从url不产生cookie,如何从android.webkit.CookieManager获取所有cookie或cookie的URL
  5. 计算机一级考试word操作题主要题型,(word)计算机一级考试题型.doc
  6. 产品管理:启示录 - 特约客户、产品验证、原型测试
  7. PWN-PRACTICE-BUUCTF-8
  8. leetcode147 对链表进行插入排序
  9. C语言简单的日期校验函数
  10. 大学本科计算机考试小抄,大学考试竟允许光明正大打小抄你也考不过
  11. keil 对于 ERROR: FILE DOES NOT EXIST错误的解决办法
  12. 黑盒测试——NextDate函数测试(判定表驱动法)
  13. 什么是配置文件 java_java配置文件是什么
  14. About Wireshark
  15. 分布式存储解决方案zData
  16. Python内置函数 vars()函数
  17. 用python开发一个炸金花小游戏,注意别玩上瘾了~~
  18. 从校园到职场 | YK菌的2022年中总结
  19. (英文版)吴恩达机器学习第四周笔记
  20. QT16进制、英文转换

热门文章

  1. Cloud一分钟 |格力电器营收比去年增长500亿元; 红黄蓝加盟停不下来;中美双方同意停止相互加征新的关税...
  2. java编写p_如何编写可怕的Java代码?
  3. python django实例_python django 模板实例
  4. java传递实例_Java方法的参数传递机制实例详解
  5. SpringBoot微服务项目构建war包 部署排除指定jar
  6. 获取当天日期、昨天日期
  7. plsql连接 oracle instantclient_11_2 本地机器不安装oracle_02
  8. 用PL/SQL Develpoer工具完成导入和导出
  9. Sublime Text3 多行合并为一行
  10. VBA MultiPage 循环多页控件