`
len-len
  • 浏览: 22262 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

内部类之局部内部类

    博客分类:
  • java
阅读更多

局部内部类是指在方法的作用域内定义的内部类,简单点就是在方法中定义的内部类。

 

public class MethodInner {
	public void outMethod(){
		class Inner{
			void innerMethod(){};
		}
	}
}

相比于上一篇讲到的成员内部类,有什么区别和自己的特别呢?只要分为这个几个特点。

A.作用域(scope)的限制。在方法里面定义的内部类,只能在方法中使用,包括他的实例化,反过来,内部类是可以渗透到他所有的外部类中去的,可以使用他所有的外部类的任何内容,这点也是内部类之所以作为java语言一个特性重要原因。

 

public class MethodInner {
	
	private int i = 1;
	
	public void outMethod(){
		class Inner{
			void innerMethod(){
				System.out.println(i);
			};
		}
		Inner inner = new Inner();
		inner.innerMethod();
	}
}
 

B.如果是试图使用方法里面的非final变量(局部变量),java会告诉你不能这么做.因为在方法里面的非final变量在方法结束后,它里面的变量就会销毁,不能使用,但是内部类的对象在堆中依然存在,如果使用了方法里面的变量,那么java编译器肯定不答应。

 

public class MethodInner {
	public void outMethod(){
		int j = 2;
		final int k = 3;
		class Inner{
			void innerMethod(){
				System.out.println(j);//error code
				System.out.println(k);
			};
		}
	}
}
 

C.静态方法里面是无法使用非静态变量的,内部类作为方法的一部分也不例外,也是无法访问外部对象的非静态对象的。

 

public class MethodInner {
	int i = 1;
	static int  j = 2;
	public static void outMethod(){
		class Inner{
			void innerMethod(){
				System.out.println(i);//error code
				System.out.println(j);
			};
		}
	}
}
 

分享到:
评论

相关推荐

    java 内部类 局部内部类 匿名类 实例代码

    本篇文章将深入探讨Java中的四种内部类:实例内部类、局部内部类、匿名类和静态内部类,并通过实例代码进行详细解析。 1. **实例内部类**:这是最常见的内部类形式,它在外部类的实例方法或成员位置定义。实例内部...

    Java的内部类讲解案例代码(成员内部类、局部内部类、匿名内部类、静态内部类、外部类访问四种内部类、其他类访问四种内部类...)

    - 不同类型的内部类(静态内部类、成员内部类、局部内部类和匿名内部类)的区别和用法 - 内部类的优缺点以及使用场景 这些目标将帮助你理解和掌握内部类的概念,并能够在适当的时候使用内部类来解决问题...

    详细分析Java内部类——局部内部类

    Java内部类之局部内部类 Java内部类是一种特殊的类,它可以嵌套在其他类中,今天我们主要介绍Java局部内部类的相关知识,了解局部内部类的定义、特性和使用场景。 什么是局部内部类? 局部内部类是定义在代码块、...

    java代码笔记2010-06-01:Java内部类 静态内部类 局部内部类 明明内部类;StringBuffer reverse的使用;

    内部类可以分为四种类型:静态内部类、成员内部类(非静态内部类)、局部内部类和匿名内部类。 1. **静态内部类**: 静态内部类与普通的成员内部类不同,它不持有对外部类的引用。因此,可以像其他静态成员一样,...

    局部内部类和匿名内部类使用局部变量为什么要final1

    局部内部类和匿名内部类是Java中的一种特性,它们允许我们在方法内部定义类。然而,一个重要的限制是,这些内部类只能访问在其作用域内的final或者实际上等效于final的局部变量。这是因为内部类可能在外部方法结束后...

    java 局部内部类的使用规范

    java 局部内部类的使用规范 java 局部内部类的使用规范

    java 内部类使用(内部匿名类)

    内部类分为几种类型,包括成员内部类、局部内部类、匿名内部类以及方法参数内部类。 1. **成员内部类**:成员内部类就像是外部类的一个普通成员,可以是静态或非静态的。非静态内部类拥有对外部类的引用,可以直接...

    内部类分类及应用

    方法内部类对象不能使用该内部类所在方法的非final局部变量。 四、匿名内部类 匿名内部类是指不具有名称的内部类。匿名内部类适合使用场景包括:只用到类的一个实例、类在定义后马上用到、类非常小、给类命名并...

    JAVA内部类总结

    内部类分为四类:非静态成员内部类、静态成员内部类、局部内部类和匿名内部类。接下来将逐一介绍这四种类型的内部类。 #### 二、非静态成员内部类 非静态成员内部类是最常见的一种内部类形式,它具有以下特点: 1...

    内部类 匿名内部类 内部接口 对比说明

    2. **局部内部类**:定义在方法内部的类,具有局部变量的特性,不能有静态属性和方法,也不能在类外直接访问。它可以访问外部类的所有成员以及所在方法的final变量。局部内部类主要用于方法内部的特定逻辑,对外不...

    Java4Android 35_内部类和匿名内部类

    2. **局部内部类**: 定义在方法、构造器或块中的类被称为局部内部类。它的作用范围仅限于该方法、构造器或块。 3. **静态内部类**: 声明为static的内部类,称为静态内部类。它不持有对外部类的隐式引用,因此可以...

    14.java局部内部类(方法中类).zip

    14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14...

    浅谈内部类与静态内部类的应用

    内部类可以分为四类:成员内部类、局部内部类、匿名内部类和静态内部类。在这里,我们重点关注成员内部类和静态内部类。 成员内部类,就像它的名字一样,是类的一个成员,与字段和方法处于同一级别。它可以访问外部...

    内部类的分类及各自用法

    根据不同的应用场景和特性,内部类可以分为多种类型:成员内部类、局部内部类、静态内部类、匿名内部类。下面将详细介绍每种类型的内部类及其特点和使用方法。 #### 成员内部类 成员内部类(也称为非静态内部类)...

    java内部类详解

    内部类主要分为四种类型:静态内部类、成员内部类、局部内部类和匿名内部类。 1. 静态内部类(Static Inner Class) 静态内部类与普通的类类似,只是它们定义在外部类中,并且前面带有 `static` 关键字。它们不会...

    java接口与内部类教学PPT

    1.接口-简介 2.接口-作用 3.接口-定义方式 4.接口-实现 5.接口-与抽象类之区别 6.接口-应用示例(设计模式...内部类-局部内部类 12.内部类-匿名内部类 13.内部类-静态内部类 14.综述

    从零开始学JAVA第12章_内部类.ppt

    内部类可以分为非静态内部类、局部内部类、静态内部类和匿名内部类四种。 非静态内部类是指定义在另一个类的非静态成员中的类。非静态内部类可以访问外部类的成员变量和成员方法,同时也可以被外部类访问。在外部类...

    java内部类总结(含概念和实例)

    2. 局部内部类:在方法中定义的内部类,局部内部类不能有访问说明符,因为它不是外围类的一部分,但是它可以访问当前代码块内的常量,和此外围类所有的成员。 3. 静态内部类:静态内部类是指在外部类的静态成员中...

    内部类知识总结3--匿名内部类

    局部内部类是定义在一个方法或一个块内的类,它可以访问该方法或块的局部变量,但匿名内部类不能。匿名内部类的生命周期更短,通常只在创建它的代码块内有效。 6. **匿名内部类的局限性** 由于匿名内部类没有名字...

    JAVA 内部类 PPT

    - **局部内部类**:定义在方法、构造器或块中的类称为局部内部类,它的作用域仅限于该方法、构造器或块。 - **匿名类**:没有名字的内部类,通常用于一次性实现某个接口或父类的简单功能。 2. **内部类继承** - ...

Global site tag (gtag.js) - Google Analytics