在Java中,可以将一个类定义在另一个类里面或者一个方法里边,这样的类称为内部类,广泛意义上的内部类一般包括四种:成员内部类,局部内部类,匿名内部类,静态内部类 。

1.成员内部类

(1)该类像是外部类的一个成员,可以无条件的访问外部类的所有成员属性和成员方法(包括private成员和静态成员);

(2)成员内部类拥有与外部类同名的成员变量时,会发生隐藏现象,即默认情况下访问的是成员内部类中的成员。如果要访问外部类中的成员,需要以下形式访问:【外部类.this.成员变量  或  外部类.this.成员方法】;

(3)在外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问;

(4)成员内部类是依附外部类而存在的,也就是说,如果要创建成员内部类的对象,前提是必须存在一个外部类的对象;

(5)内部类可以拥有private访问权限、protected访问权限、public访问权限及包访问权限。如果成员内部类用private修饰,则只能在外部类的内部访问;如果用public修饰,则任何地方都能访问;如果用protected修饰,则只能在同一个包下或者继承外部类的情况下访问;如果是默认访问权限,则只能在同一个包下访问。外部类只能被public和包访问两种权限修饰。

2.局部内部类

(1)局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内;

(2)局部内部类就像是方法里面的一个局部变量一样,是不能有public、protected、private以及static修饰符的;

(3)对于局部内部类,只有在方法的局部变量被标记为final或局部变量是effctively final的,内部类才能使用它们。

3.匿名内部类

(1)一般使用匿名内部类来编写事件监听代码;

(2)匿名内部类是不能有访问修饰符和static修饰符的;

(3)匿名内部类是唯一一种没有构造器的类;

(4)匿名内部类用于继承其他类或是实现接口,并不需要增加额外的方法,只是对继承方法的实现或是重写。

4.内部静态类

(1)静态内部类是不需要依赖于外部类的,这点和类的静态成员属性有点类似;

(2)不能使用外部类的非static成员变量或者方法。

参考:https://www.cnblogs.com/dolphin0520/p/3811445.html

表示感谢!!!

Java 访问权限 内部类总结相关推荐

  1. Java访问权限之 protected详解

    摘要:     对于类的成员(包括成员变量和成员方法)而言,其能否被其他类所访问,取决于该成员的修饰词:而对于一个类而言,其能否被其他类所访问,也取决于该类的修饰词.在Java中,类成员访问权限修饰词 ...

  2. [THINKING IN JAVA]访问权限控制

    6 访问权限控制 6.1 包:库单元 package.import.import *.import static: 修改classpath环境变量可以将自己写的类库添加至环境变量并在任何java程序中 ...

  3. java权限控制是什么_论Java访问权限控制的重要性

    人在什么面前最容易失去抵抗力? 欢迎工作一到八年的Java工程师朋友们加入Java高级交流:854630135 本群提供免费的学习指导 架构资料 以及免费的解答 不懂得问题都可以在本群提出来 之后还会 ...

  4. Java访问权限(public、protected、友好的、private)定义

    访问权限定义: 1.访问权限指:对象是否可以通过 " . " 运算符操作自己的变量 或 通过 " . " 运算符调用类中的方法: 2.访问权限修饰符:priva ...

  5. Java访问权限控制

    面向对象的核心思想之一就是封装,只把有限的方法和成员公开给别人,这也是迪米特法则的内在要求,是外部调用方对方法体内的实现细节知道得尽可能少. 如何实现封装呢? 需要使用某些关键字来限制外部对类内属性和 ...

  6. java 访问权限控制

    java提供四种访问权限: public > protected > 包访问权限(无关键词) > private 包:库单元 对于包访问权限,一个包内的都可以访问. 在eclipse ...

  7. Java访问权限作用域介绍

    作用域简介 Java中有四种定义作用域或者说访问权限的关键字,分别为public,protected,(default)以及private,作用域的级别和范围从高到低. 作用域 类内部 本包 子类 外 ...

  8. java访问权限关键字

    本文转自:点击打开链接 在一个类的内部,其成员(包括成员变量和成员函数)能否被其他类所访问,取决于该成员的修饰词.Java的类成员访问权限修饰词有四类:private,无(默认情况下),protect ...

  9. Java访问权限修饰符

    1.Class类的访问权限:  public:可以供所有的类访问.  默认:默认可以称为friendly但是,java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++.默认的访问权 ...

最新文章

  1. 机器学习(8)朴素贝叶斯算法(20条新闻分类)
  2. debian---nano转VIM
  3. 一个好用的Visual Studio Code扩展 - Live Server,适用于前端小工具开发
  4. oracle之单行函数1
  5. java户名的正则表达式_java – 用于验证用户名的正则表达式
  6. 今年暑假不AC 贪心
  7. 吸毒女5次搬家躲粉友:想给女儿干净环境
  8. jsonp和ajax的区别,dataType jsonp和JSON之间的区别
  9. 2013中国微信公众平台用户研究报告
  10. 一本通————1244 和为给定数
  11. GPS从入门到放弃(十九) --- 精密星历
  12. java即时通讯 开源_im即时通讯开源
  13. 2022年智能家居生态系统状态报告
  14. vue element 确认弹框中显示图片(message里)
  15. thinkphp3.1迁移php7,ThinkPHP3.1迁移到PHP7
  16. 【数据库视频--概况
  17. Python的traceback
  18. Idea 导包自动变成星号 Idea 导包自动变成*号的问题 java.io.* Idea 自动导包变成星号
  19. 2016年保密技术交流大会的璀璨之星—亿赛通
  20. 凡科php项目模块,如何创建一个DouPHP新模块

热门文章

  1. 前端开发APP,从HBuilder开始~
  2. 运维有趣项目:搭建个人博客安全版(Appache2.4防盗链与防泄漏,防盗链httpd.conf无Load,include版)
  3. 一、web安全入门基础知识
  4. 新买的移动硬盘如何正确使用
  5. Linux常用启动服务命令
  6. linux使用vim复制文件内容,Linux(Ubuntu)使用日记------vim复制内容到其他应用
  7. Python调用JS的四种方法
  8. java 文件夹打包成zip(带有嵌套的那种文件夹)
  9. php 自定义sql 脚手架,vue路由、自定义指令、脚手架
  10. 【qstock量化】数据篇之股票基本面数据