内部类:
  概述: 类里边还有一个类, 里边那个类叫内部类, 外边那个类叫外部类.
 

分类:
  成员内部类: 定义在成员位置的内部类.
  局部内部类: 定义在局部位置的内部类.

格式:
  new 类名或者接口名(){
    //重写类或者接口中 所有的 抽象方法;
  };

本质:
  就是一个继承了类或者实现了接口的 匿名的子类对象. 匿名内部类不是类, 而是子类对象.

匿名内部类的实际应用:
  1) 当对 对象方法(成员方法) 仅调用一次的时候.
  2) 可以作为方法的实参进行传递.

建议:
  当接口中或者抽象类中的 抽象方法仅有一个的时候, 就可以 考虑使用匿名内部类.

代码说明:

public class DemoClass { //外部类

    String name;    //成员变量

    class Inner1 {    //成员内部类

    }

    //成员方法
public void show() {
int num = 10; //局部变量, 基本类型 Object obj = new Object(); //局部变量, 引用类型 //局部内部类. 局部变量, 引用类型
class Inner2{ }
}
}

应用举例:

public static void main(String[] args) {
// 对, Jumpping#jump(); 调三次.
//1) 当对 对象方法(成员方法) 仅调用一次的时候.
Jumping jm = new Jumping() { //多态
@Override
public void jump() {
System.out.println("我会跳");
}
};
jm.jump();
jm.jump();
jm.jump(); //2) 可以作为方法的实参进行传递.
show(new Jumping() { @Override
public void jump() {
System.out.println("我会跳, 可以作为方法的实参进行传递");
}
});
} public static void show(Jumping jm) {
jm.jump();
} public interface Jumping {
final public static int num = 10; public abstract void jump();
}
public static void main(String[] args) {                  /*
* 通过匿名内部类实现.
* new 类名或者接口名(){
  //重写类或者接口中 所有的 抽象方法;
};
*/
new Animal() {
public void eat() {
System.out.println("我是匿名内部类的方式实现的, 猫吃鱼");
}
}.eat();
} /**
* 抽象类: Animal
* @author
*
*/
public abstract class Animal {
public abstract void eat();
}

java基础之匿名内部类的更多相关文章

  1. java 基础(匿名内部类)

    匿名内部类 特点:不对外公开,进行实现功能,继承类,继承抽象类,实现某个接口的匿名内部类,实现相应的方法 特别注意:匿名内部类,匿名指的是 ,new 关键字右边的那个对象--如继承,或是接口    { ...

  2. java基础04 匿名内部类

    内部类 (1)把类定义在另一个类的内部,该类就被称为内部类. 举例:把类B定义在类A中,类B就被称为内部类. (2)内部类的访问规则 A:可以直接访问外部类的成员,包括私有 B:外部类要想访问内部类成 ...

  3. JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题

    JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序猿杜鹏程的博客:http://blog ...

  4. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  5. 【JAVA面试题系列一】面试题总汇--JAVA基础部分

    JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...

  6. java基础知识(五)java类

    类是java的核心和本质,是java语言的基础. 一.java中的类 1.类class 一个类可以包含局部变量.实例变量.类变量(静态变量) 一个类至少有一个构造方法,如果没有,系统会默认给出一个无参 ...

  7. Java基础进阶整理

    Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...

  8. 四、Android学习第四天——JAVA基础回顾(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...

  9. java基础要点

    Java语言是现在比较常用的编程语言,因为Java语言可以编写桌用程序,也可以编写web程序,还能编写嵌入式程序.这是由于相比脚本语言,Java 的运行速度要快.而对于底层语言,Java与平台无关,可 ...

随机推荐

  1. Arcgis for Javascript之统计图的实现

    首先,截个图给大家看看效果: 初始化状态 放大后的状态 点击选中后的状态 如上图所示,一般的涉及到的地图的统计涉及到上述所展示的三个状态:1.初始化状态:2.缩放后的状态:3.点击选中显示详情状态.第 ...

  2. httpwebrequest webrequest webresponse 总结

    http://blog.csdn.net/flymorn/article/details/6769722 使用,总结,深入,全通,指正

  3. Lua编程

    lua编程大杂烩.博客其他方面也不错.先记录.http://www.cnblogs.com/stephen-liu74/category/360139.html

  4. TCP传输控制协议

    TCP 在TCP/IP协议模型中, 传输层协议有TCP和UDP, 这里主要介绍下可靠传输TCP协议, 目前是传输层协议首选. 特点 面向数据流(字节流形式) 虚电路连接 有缓冲传输(提供push机制 ...

  5. Python学习-数据运算

    在Python中有丰富的算术运算,这使得Python在科学计算领域有着很高的地位,Python可以提供包括四则运算在内的各种算术运算. a = 10 b = 20 print(a-b) #-10 pr ...

  6. 解决get方法传递URL参数中文乱码问题

    [转]解决get方法传递URL参数中文乱码问题 来自:http://www.javaeye.com/topic/483158 应用一:解决tomcat下中文乱码问题(先来个简单的) 在tomcat下, ...

  7. 洛谷P1306 斐波那契公约数

    题目描述 对于Fibonacci数列:1,1,2,3,5,8,13......大家应该很熟悉吧~~~但是现在有一个很“简单”问题:第n项和第m项的最大公约数是多少? 输入输出格式 输入格式: 两个正整 ...

  8. fragment在水平/垂直时的应用

    直接看代码 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedIns ...

  9. 在centos6.6中mysql5.5的编译、安装、配置

    今天根据需求要在centos6.6上编译安装mysql5.5,因为以前编译安装过感觉很简单,但是今天还是出现了点小问题,所以把过安装过程总结了一下: 好像从mysql5.5开始编译安装mysql需要用 ...

  10. FPGA论剑

    今天走在街上,听到了久违的<光辉岁月>,想起6月30号那天,街边所有的餐厅.小店都在播放beyond的经典之作,那天是香港殿堂级乐队beyond乐队主唱兼吉他手黄家驹先生的忌日.黄家驹先生 ...