`
k_lb
  • 浏览: 821834 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

java四种内部类的简单分析

 
阅读更多
一、内部类:
1.静态内部类:
1.必须以static关键字标注
2.只能访问外部类中的静态的成员变量或者是静态的方法
3.访问一个内部类使应该这样outerClass.innerClass inter = new outerClass.innerClass();不能直接实例化内部类
2.成员内部类:
1.定义在一个类的内部,但是没有static关键字修饰
2.生成示例的方法outerClass.innerClass inter = (new outerClass()).new innerClass()
3.对外部类变量的引用outClass.this.variale
4.可以访问外部类的静态与非静态方法
3.局部内部类:
1.局部内部类指的是定义在一个方法中的类
2.只有在当前方法中才能对局部内部类里面的方法以及变量进行访问
3.局部内部类只能访问其所在方法的final类型变量
4.匿名内部类:
隐式的继承一个父类或者是实现某个接口


举例说明:

1.

package tp85.innerClass;


public class StaticDemo
{
public static void main(String[] args)
{
BB.AA ba = new BB.AA();
ba.put();
}

}
class BB
{
int a = 1;
static int b = 2;
static class AA
{
void put()
{
System.out.println("helloword");
//只能访问其外部类的static变量
//System.out.println(a);
System.out.println(b);
}
}
}


2.

package tp85.innerClass;

public class MenberDemo
{
public static void main(String[] args)
{
//成员内部类的实例化比较特殊,如下所示
DD.CC dc = new DD().new CC();
dc.put();
}
}
class DD
{
int a = 1;
static int b = 2;
class CC
{
void put()
{
System.out.println("helloword");
//能访问其外部类的static变量或者是非静态的变量
System.out.println(a);
System.out.println(b);
}
}
}


3.
package tp85.innerClass;

public class PartDemo
{
public static void main(String[] args)
{
FF ff = new FF();
ff.put();
}
}
class FF
{

void put()
{
//只能是final类型的
final int b = 2;
class EE
{
int a = 1;
void print()
{
System.out.println("print");
System.out.println(b);
}

}
new EE().print();// 只有在同一方法下才能实例化此类型的内部类
}
}
4.


package tp85.innerClass;

public class StaticDemo
{
public static void main(String[] args)
{
BB.AA ba = new BB.AA();
ba.put();
}

}
class BB
{
int a = 1;
static int b = 2;
static class AA
{
void put()
{
System.out.println("helloword");
//只能访问其外部类的static变量
//System.out.println(a);
System.out.println(b);
}
}
}







分享到:
评论

相关推荐

    java学习笔记(内部类)汇集

    内部类主要有以下四种类型: 1. **普通内部类**:最基础的内部类形式。 2. **局部内部类**:在某个方法或构造函数内部定义的内部类。 3. **匿名内部类**:没有名字的内部类,通常用于实现接口或继承父类,并立即...

    java期末复习抽象类与接口,内部类,知识点.zip

    复习时,可以详细阅读`Java抽象类.docx`来理解抽象类的定义、用途和实例化规则,通过`Java接口.docx`学习接口的定义、实现方式以及多继承的特点,`Java内部类.docx`将帮助你掌握不同类型的内部类及其应用场景。...

    java8 探讨与分析匿名内部类、lambda表达式、方法引用的底层实现的测试用例

    在Java 8中,匿名内部类、Lambda表达式和方法引用是重要的新特性,它们极大地简化了代码,提升了代码的可读性和效率。下面将详细探讨这三个知识点,并结合提供的测试用例进行分析。 1. **匿名内部类**: 匿名内部类...

    简易java词法分析器

    本项目名为“简易java词法分析器”,它是一个基于Java实现的工具,用于分析Java源代码的词法结构。在这个项目中,开发者可能使用了类似于C++的编程技巧,因为C++也是一种常见的编程语言,它与Java有诸多相似之处。...

    java中匿名内部类解读分析

    总的来说,Java的匿名内部类提供了一种灵活的方式来简化代码,尤其是当只需要一次性的、简单的类实现时。它们可以用来快速实现接口或扩展类,而无需定义单独的类文件。在Android开发中,匿名内部类在事件监听、线程...

    pl0词法分析java

    PL/0是一种简单的编程语言,由James Gosling在设计Java时作为教学示例引入,它主要用于教授编译原理和解析技术。在这个项目中,我们关注的是PL/0的词法分析器,它是编译器前端的重要组成部分。词法分析器(也称为...

    简单的词法分析程序(JAVA)

    这个简单的词法分析程序可能使用了后一种方法,因为它提供了源代码供学习。 编写词法分析器时,开发者需要考虑以下几点: 1. **符号表**:存储已识别的标记,便于后续步骤使用。 2. **错误处理**:遇到非法字符或不...

    使用Java匿名内部类实现一个简单的线程池.txt

    通过上述分析,我们可以看出使用Java匿名内部类实现线程池是一种简洁高效的方法。它不仅简化了代码编写,还提高了程序的可读性和可维护性。然而,在实际应用中,还需要根据具体需求选择合适的线程池类型和配置参数,...

    java实现简单的词法分析

    在这个“java实现简单的词法分析”项目中,我们将探讨如何使用Java语言来构建一个基本的词法分析器。 词法分析,又称为扫描或Tokenization,它的主要任务是识别源代码中的关键字、标识符、常量、运算符和其他符号,...

    使用类分解器Javap分析Java字节码

    `Javap`是Java开发工具包(JDK)中自带的一个命令行工具,专门用于分析Java字节码,帮助开发者理解类文件的内部结构。在这个话题中,我们将深入探讨如何使用`Javap`作为类分解器来解析和理解Java字节码。 首先,让...

    Java匿名类的分析和理解.pdf

    Java匿名类是Java编程语言中的一种特殊的类,它没有明确的类名。匿名类经常被用在Java GUI程序设计中,例如在Swing库中,以便快速地创建GUI组件。然而,很多Java学习者对匿名类的理解不够深入,认为匿名类只是一个...

    用java实现词法分析器以及语法分析器

    这些类可以直接在Java项目中使用,进行语法分析。 在实现词法分析器和语法分析器时,我们还需要考虑错误处理。当输入的源代码不符合语法规则时,应提供有用的错误信息,帮助程序员定位并修复问题。这可以通过在分析...

    java四大特点

    继承是 Java 语言中的一种机制,它使得多类事物可以被抽象成一个类。这个类就是多类事物的父类。父类的意义在于抽取多类事物的共性。Java 中的继承要使用 extends 关键字,并且 Java 中只允许单继承,也就是一个类...

    java源码包---java 源码 大量 实例

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    java 内部排序算法的性能分析

    设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。 [需求分析] (1)对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较; (2)待排序表的表长不小于100...

    java编写的PL/0词法分析器

    Java编写的PL/0词法分析器是一种编程工具,它主要负责解析源代码中的字符序列,将它们识别为有意义的符号或词汇单元,为编译器或解释器的后续阶段(如语法分析和语义分析)提供输入。在这个特定的案例中,词法分析器...

    Java23种设计模式源码+案例分析+类图

    本资源包含了Java的23种经典设计模式的源码和案例分析,对于Java开发者,尤其是初学者来说,是提升技术能力的宝贵资料。 1. 单例模式(Singleton):保证一个类只有一个实例,并提供一个全局访问点。常见的实现方式...

    一种基于Java企业内部及时通讯软件设计.pdf

    一种基于Java企业内部及时通讯软件设计 摘要:本文设计了一种基于Java的企业内部及时通讯软件,使用Socket技术实现网络通讯,Java Swing技术设计系统界面,Derby作为数据库服务器。该软件包含四个模块,界面友好、...

    简单的蓝屏分析器(用JAVA写的)

    本项目是一个用Java编写的简单蓝屏分析器,旨在帮助用户理解蓝屏的原因,并提供可能的解决策略。 首先,我们需要理解蓝屏出现的基本原因。蓝屏通常由硬件故障、驱动程序错误、系统内部冲突或恶意软件引起。当系统...

    编译原理词法分析器及语法分析器实验报告,JAVA实现

    在这个实验中,我们将使用Java语言实现一个词法分析器,并结合简单的语法分析。 首先,词法分析器需要识别并处理保留字。保留字是编程语言中具有特殊含义的词汇,例如实验中提到的`if`、`int`、`for`等,它们的单词...

Global site tag (gtag.js) - Google Analytics