关于JAVA匿名类和内部类的一点讨论

 基本理论:
-----------------------------------------------------
关于JAVA内部类:一个内部类的定义是定义在另一个类内部的类。
  存在它的原因是:

  1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据。即内部类实例对包含它的哪个类的实例来说,是特权的。

  2.对于同一个包中的其他类来说,内部类能够隐藏起来,换句话说,内部类不管方法的可见性如何,那怕是public,除了包容类,其他类都无法使用它。

  3.匿名内部类可以很方便的定义回调。

  4.使用内部类可以非常方便的编写事件驱动程序。

其实它真正的目的仅仅为了定义回调--进一步就是事件驱动。

接口和回调:编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法。

时间: 2024-09-20 19:55:32

关于JAVA匿名类和内部类的一点讨论的相关文章

iOS 的块操作也可以象Java匿名类一样到处都是

iOS 的块操作也可以象Java匿名类一样到处都是 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 整理一份之前对 ASIHTTPRequest 的分类封装 今天有点累,突然想到,先留个坑,明天

深入理解Java嵌套类和内部类

一.什么是嵌套类及内部类? 可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它 有两种类型: 静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套 类,也即是被称作为内部类(inner).嵌套类从JDK1.1开始引入.其中inner类又 可分为三种: 其一.在一个类(外部类)中直接定义的内部类; 其二.在一个方法(外部类的方法)中定义的内部类; 其三.匿名内部类. 下面,我将说明这几种嵌套类的使用及注意事项. 二.静态嵌套类 如下所示代码为定义一个

java匿名类和匿名对象及this的其他用法

/* 匿名内部类:就是内部类的简写格式. 必须前提:内部类必须继承或者实现一个类或者接口. 匿名内部类其实就是一个匿名 子类对象. 格式:new 父类对象 or 接口(){     子类内容:(覆盖父类的, 而且可以增加自己的方法) }//相当于将 继承父类 和 new 的过程 写到了一起有某有!很方便有某有! */ class Outer{         int num;     public Outer(){         num = 5;        }           clas

java嵌套类和内部类详解

可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner).嵌套类 从JDK1.1开始引入.其中inner类又可分为三种: 其一.在一个类(外部类)中直接定义的内部类: 其二.在一个方法(外部类的方法)中定义的内部类: 其三.匿名内部类. java嵌套类(Nested Classes)总结 http://www.cnblogs.com/aigongsi/a

java匿名类-java当中如何区分匿名对象和匿名类

问题描述 java当中如何区分匿名对象和匿名类 java当中如何区分匿名对象和匿名类 有没有匿名方法这种概念 学了几个月了,感觉自己还是新手状态,很多基本概念还不是很清楚 解决方案 匿名对象: Person类: new Person(); 这就是一个匿名对象 匿名类: new Person(){ String name; }; 这就是一个匿名类 简单说就是,匿名对象还是一个对象,它必须有已经写好的成员变量.属性.方法 匿名类,在声明它的对象的时候,才对它进行代码的构造(封装它的成员变量.属性.方

Java嵌套类和内部类详解_java

一.什么是嵌套类及内部类?     可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型: 静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为 内部类(inner).嵌套类从JDK1.1开始引入.其中inner类又可分为三种:     其一.在一个类(外部类)中直接定义的内部类:     其二.在一个方法(外部类的方法)中定义的内部类;     其三.匿名内部类. 下面,我将说明这几种嵌套类的使用及注意事项. 二.静态嵌

java匿名类-你好,new一个方法不是生成一个对象,怎么就生成了一个匿名类呢

问题描述 你好,new一个方法不是生成一个对象,怎么就生成了一个匿名类呢 你好,new一个方法不是生成一个对象,怎么就生成了一个匿名类呢 我对new关键词的用法不是很清楚 解决方案 先看段伪代码 abstract class Father(){ .... } public class Test{ Father f1 = new Father(){ .... } //这里就是有个匿名内部类 } 一般来说,new 一个对象时小括号后应该是分号,也就是new出对象该语句就结束了. 但是出现匿名内部类就

浅析Java中的嵌套类和内部类

以前看<Java编程思想>的时候,看到过嵌套类跟内部类的区别,不过后来就把它们的概念给忘了吧.昨天在看<数据结构与算法分析(Java语言版)>的时候,又遇到了这个概念,当时就很大的疑惑:嵌套类跟内部类有什么区别?只有是否有关键字static的区别吗? 所以今天找了个时间查了一下两者的详细区别,总结在这篇博客中,既方便自己的复习和学习,也启示他人吧. 1,概念: 定义在一个类内部的类,叫作"嵌套类".嵌套类分为两种:static的和非static的.后者又有一个专

关于JAVA匿名内部类的一点讨论

基本理论: 关于JAVA内部类:一个内部类的定义是定义在另一个类内部的类. 存在它的原因是: 1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据.即内部类实例对包含它的哪个类的实例来说,是特权的. 2.对于同一个包中的其他类来说,内部类能够隐藏起来,换句话说,内部类不管方法的可见性如何,那怕是public,除了包容类,其他类都无法使用它. 3.匿名内部类可以很方便的定义回调. 4.使用内部类可以非常方便的编写事件驱动程序. 其实它真正的目的仅仅为了定义回调--进一步就是事件驱动.接口和