• 首先定义一个抽象类Computer
public abstract class Computer {
//抽象类是不可以常见对象的
int a=1;
public abstract void online();
public abstract void watchTV();
}
  • 入口:Test 注意:抽象类有构造方法但是接口是没有构造方法的,所以下面代码中new 后面加的是匿名抽象类
public class Test {
public static void main(String[] args) {
// 生成的二进制字节码文件(.class文件)名称为:Outer.class文件
//创建内部类对象的第一种写法:通过这种方式常见出来的外部类对象没有引用,我们不能引用他的对象和方法
// 匿名:
//下面的这种创建内部类对象的方法new Outer()并没有被引用,所以他是一个匿名的对象
Outer.Inner inner = new Outer().new Inner();
inner.b();
System.out.println("------------------------------------------");
//创建内部类的第二种写法:先创建外部类对象,然后由外部类的对象去创建内部类的对象
Outer outer = new Outer();//创建了外部对象
Outer.Inner inner1 = outer.new Inner();//创建内部的对象
inner1.b();
/**匿名的概念:
*匿名内部类:这下面其实是有一个类的存在的,但是我们看不见类的任何影子
*在编译后的目录中多出来一个Test$1.class这是一个内部类名字是:Test$1.class
*相当于创建出来一个匿名的内部类(这个匿名内部类相当于这个抽象类的子类)然后继承了抽象类,并实现了他的抽象方法
*
* 这个匿名内部类是一次性的
*/ Computer PC = new Computer() {
@Override
public void online() {
System.out.println("匿名内部类中的方法 上网");
} @Override
public void watchTV() {
System.out.println("匿名内部类中的方法 看电视");
}
};//注意最后的分号不能少
System.out.println("抽象类中的变量 a"+PC.a);
PC.online();
PC.watchTV();
/**
* 匿名内部类的创建形式:
*
* new ---抽象类或者接口名--()---{}实现抽象方法的地方----分号
*
*
*/
Standard a=new Standard() {
@Override
public void supply() {
System.out.println("我的电脑"); } @Override
public void reticle() { } @Override
public void usb() { }
};
a.supply(); /**
* 讲继承的时候说过:没有父类就没有子类
* 对于内部类也一样:没有外部类的对象就不能创建一个内部类的对象
* 创建内部类对象的方法:通过外部类的对象去创建内部类的对象
*/ }
}

JAVA匿名内部类的更多相关文章

  1. #随笔之java匿名内部类

    随笔之java匿名内部类 从今天起开始每日一篇技术博客,当然这只是我当天所学的一些随笔,里面或多或少会有理解不当的地方,希望大家多多指教,一起进步! 在讲匿名内部类之前,先讲讲内部类的一些概念. 1. ...

  2. 从一开始,说出事java匿名内部类

    java内部类.匿名类原本以为它们的使用已经很滑, 成绩, 就在昨天晚上12指向时钟发生重大事故.事故的严重程度再说吧,那是因为我没有睡一晚睡眠. 那以下先用一段模拟代码来描写叙述下我出现的问题的: ...

  3. (转)java匿名内部类详解

    原文:http://android.blog.51cto.com/268543/384844/   内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同. *内部类可以是静态static的 ...

  4. 【Java学习笔记之二十六】深入理解Java匿名内部类

    在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...

  5. 【50】java 匿名内部类剖析

    匿名内部类介绍: 匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 匿名内部类的声明 ...

  6. JAVA匿名内部类(Anonymous Classes)

    1.前言 匿名内部类在我们JAVA程序员的日常工作中经常要用到,但是很多时候也只是照本宣科地用,虽然也在用,但往往忽略了以下几点:为什么能这么用?匿名内部类的语法是怎样的?有哪些限制?因此,最近,我在 ...

  7. Java匿名内部类访问外部

    匿名内部类访问外部局部变量必须是final修饰的,Java 1.8 会默认为其加上final 例子如下: public void send(String topicName, T obj) { Str ...

  8. 为什么Java匿名内部类访问的外部局部变量或参数需要被final修饰

    大部分时候,类被定义成一个独立的程序单元.在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类,包含内部类的类也被称为外部类. class Outer { priv ...

  9. Java 匿名内部类 & 内部类

    一.JAVA中内部类和匿名内部类的区别 内部类:内部类可以是static的或者非static的,static内部类只能包含静态方法和静态类变量,只能访问外部类的静态元素,内部类可以实例化,多次使用. ...

  10. java匿名内部类使用场景列举

    示例一: package com;      interface Operation {       double operateTwoIntNum(int a, int b);   }      p ...

随机推荐

  1. IOS数据存储之文件沙盒存储

    前言: 之前学习了数据存储的NSUserDefaults,归档和解档,对于项目开发中如果要存储一些文件,比如图片,音频,视频等文件的时候就需要用到文件存储了.文件沙盒存储主要存储非机密数据,大的数据. ...

  2. ASP.NET MVC之Session State性能问题(七)

    前言 这一节翻译一篇有关Session State性能问题的文章,非一字一句翻译. 话题 不知道我们在真实环境中是否用到了Session State特性,它主要用来当在同一浏览器发出多个请求时来存储数 ...

  3. 借助node实战JSONP跨域

    一.前言: 浏览器安全是基于同源策略的.所谓同源策略就是三相同: 1.协议相同: 2.域名相同: 3.端口相同. 但,凡事都是有利弊,同源策略也导致了我们想用AJAX跨域请求,但NO!!为了规避这种限 ...

  4. C++面向对象

    此博文仅作为C++考研专业课的复习内容. 面向对象 构造函数 在对象被创建的时候将自动调用. 复制构造函数 形参是本类对象的引用.其作用是使用一个已经存在的对象,去初始化一个同类的新对象. 复制构造函 ...

  5. (二)探究本质,WebGIS前端地图显示之地图比例尺换算原理

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.没有豆浆机怎么办? 喝豆浆是我们早晨中基本必备的一环,油条豆浆,其 ...

  6. 图片每天换及纯css3手风琴特效

    <a target="_blank" id="a"><img id="img" /></a> <s ...

  7. Gobblin采集kafka数据

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 找时间记录一下利用Gobblin采集kafka数据的过程,话不多说,进入正题 一.Gobblin ...

  8. 一致性hash算法简介

    一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简单哈希 ...

  9. 从SqlServer转手Oracle的一些坑

    为将SqlSugar ORM转制成OracleSugar ORM 本想一天搞定,凭着经验不看任何Oracle资料就直接强上了,但是从配置PLSQL和一些语法区别带来了很多坑让我进度放缓 这个贴子对于身 ...

  10. WPF透明设置(Opacity)

    <TextBlock Text="阴影效果" FontSize="32"></TextBlock> <Border Height= ...