内部类之局部内部类

一、位置

  定义在代码块里和方法里的类

二、结构:

  类:不能被访问修饰符修饰

  属性:能被访问修饰符修饰,不能被sttaic修饰

  方法:能被访问修饰符修饰,不能被static修饰

三、内部类访问外部类

  在普通方法里的内部类可以访问外部类的全部成员

  在静态方法里的内部类只能访问外部类的类成员

四、外部类访问内部类

  在外部类中不能实例化内部类对象,内部类对象只能在该方法中实例化,外部类只能调用该方法

五、局部内部类只能访问final修饰的局部变量

  根本原因:内部类和局部变量的生命周期不同导致的

  内部类是类级别的,它不会因为定义在方法里就随着方法执行完毕而销毁,因此,可能会出现方法执行完毕销毁,而内部类还未销毁,内部类访问了一个不存在的局部变量

为了解决这个问题,内部类会把该局部变量备份成为自己的成员变量,表面上是方法中的局部变量,实际上是访问的备份。但是这样必须保持两者一致,因此需要加final

基本类型:值不变

引用类型:引用不变

六、java1,.8

  i.8更加智能,即使不加声明,默认是final,但是如果修改,就会报错,就不能认为这是final修饰的了

原文地址:https://www.cnblogs.com/cc-umf-lm/p/10647822.html

时间: 2024-10-10 02:29:39

内部类之局部内部类的相关文章

Java内部类:局部内部类(三)

Java内部类分为4个部分进行阐述,分别为概览.成员内部类.局部内部类和匿名内部类. 在本文中是Java内部类的局部内部类,主要讲局部内部类的概念和在使用局部内部的过程中,需要注意的一个细节. 1.局部内部类的概念 在一个类的方法内部定义另外一个类,那么另外一个类就称作为局部内部类. class OutterClass { void test() { class InnerClass//局部内部类 { } } } 在上述代码中,InnerClass定义在OutterClass的test方法的内部

【java基础】内部类,局部内部类,匿名内部类、静态内部类、接口中的内部类

内部类: 1.定义在一个类中的内部类,内部类的实例化伴随着外围类所定义的方法来构造,内部类对象有外围类的隐式引用,所以内部类可以直接访问外围类的外围类的域,包括私有的,这是内部类的访问特权,所以比常规类功能更加强大. 2.内部类可以对同一个包中的其他类隐藏起来,不过可以通过 OuterClass.InnerClass来引用public声明的内部类. 局部内部类: 1.内部类挪到方法内部,与内部类相比,局部内部类不仅可以访问定义他们的外部类,还可以并且仅可以访问声明为final的局部变量. 2.类

黑马程序员——————> 局部内部类&匿名内部类

------- android培训.java培训.期待与您交流! ---------- 如果把一个内部类放在方法里定义,则这个内部类就是一个局部内部类,局部内部类仅在该方法里有效.由于局部内部类不能在外部类的方法以外的地方使用,因此局部内部类也不能使用访问控制符和static修饰符修饰. 对于局部成员而言,不管是局部变量还是局部内部类,它们的上一级程序单元都是方法,而不是类,使用static修饰它们没有任何意义.因此,所有的局部成员都不能使用static修饰.不仅如此,因为局部成员的作用域是所在

Java学习(十六)、成员内部类,静态内部类,匿名内部类,局部内部类

定义:将一个类定义在另一个类的内部.内部的类称为内部类; public class Outer{ class inner{ //省略 } } 特点: ①   内部类可以很好的实现隐藏,可以使用protected,private修饰符; ②   内部类可以直接访问外部类的所有成员,包括私有成员; ③   外部类不能直接访问内部类的成员,必须首先要建立内部类的对象才能访问; ④   内部类可以解决一些问题,比如间接的去实现多继承.可以避免修改接口而实现同一个类中两种同名方法的调用; 成员内部类及应用

19、局部内部类和匿名内部类

package com.lei.duixiang; /** * 局部内部类 * 1.如果需要在方法中使用局部变量,该局部变量需要被设置为 final 类型 * 2.换句话说,在方法中定义的内部类只能访问方法中 final 类型的局部变量 * 这是因为在方法中定义的局部变量相当于一个常量,它的生命周期超出方法运行的生命周期 * 由于该局部变量被设置为final,所以不能在内部类中改变局部变量的值 * @author Administrator * * 匿名内部类 OutClass4 */ inte

java9-8 局部内部类

1. 局部内部类 A:可以直接访问外部类的成员 B:在局部位置,可以创建内部类对象,通过对象调用内部类方法,来使用局部内部类功能 面试题: 局部内部类访问局部变量的注意事项? A:局部内部类访问局部变量必须用final修饰 B:为什么呢? 局部变量是随着方法的调用而调用,随着调用完毕而消失. 而堆内存的内容并不会立即消失.所以,我们加final修饰. 加入final修饰后,这个变量就成了常量.既然是常量.你消失了. 我在内存中存储的是数据20,所以,我还是有数据在使用. 1 class Oute

Java内部类详解--成员内部类,局部内部类,匿名内部类,静态内部类

说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就来一探究竟.下面是本文的目录大纲: 一.内部类基础 二.深入理解内部类 三.内部类的使用场景和好处 四.常见的与内部类相关的笔试面试题 若有不正之处,请多谅解并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3811445.html 一

Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)

Java中的内部类(成员内部类.静态内部类.局部内部类.匿名内部类) 神话丿小王子的博客主页 我们先看这样一段话:人是由大脑.肢体.器官等身体结果组成.而组成我们人体的心脏它也有自己的属性和行为(血液.跳动),显然,此处不能单方面用属性或者方法表示一个心脏了,而需要一个类,但是这个类要依赖于人这个类存在(因为心脏不能脱离人体而存活,当然不考虑现今社会的发达科技,只从正常情况下来说),所心脏以需要写在人类的内部.内部类就相当于其中的某个器官之一. 首先看看什么是内部类:在类的内部定义另一个类.没错

JAVA学习--局部内部类的使用

1 public class TestInnerClass1 { 2 3 } 4 5 class OuterClass{ 6 //局部内部类 7 //如下的使用方式较少 8 public void method1(){ 9 10 class InnnerClass{ 11 12 } 13 } 14 //常常使用一个方法,使其返回值为某个类或接口的对象.而这个类或接口在方法内部创建 15 //使用方式一 16 public Comparable getComparable(){ 17 //1.创建