java--匿名类
匿名类的使用
 package Test;
 abstract class C525{
     abstract void foo();
 }
 class B525{
 //    局部类只能访问外包方法中的final成员。
 //    位于方法内部的局部类,可以访问局部类之外,外包方法之内的所以变量和方法,但是生命周期不同,延长生命周期的办法就是将变量设置为final类型。
     int m = 21;
     public C525 go(int x,final int y){
         final int n = 12;
         return new C525(){
             public void foo(){
                 System.out.println(y);
                 System.out.println(n);
                 System.out.println("m = "+m);
             }
         };
     }
     public void gogo(C525 c00){
         c00.foo();
     }
 }
 public class A525 {
     public static void main(String[] args) {
         C525 c525 = new B525().go(1, 2);
         c525.foo();
         C525 c5252 = new B525().go(1, 20);
         new B525().gogo(c5252);
         new B525().gogo(new C525(){
             public void foo(){
                 System.out.println("Hello....");
             }
             }//创建一个只有类体没有类名的类。
         );
     }
 }
new B525().gogo(new C525(){
             public void foo(){
                 System.out.println("Hello....");
             }
             }//创建一个只有类体没有类名的类。
         );
程序中new C525(){}封装了一个类体,改写了foo()方法,这个就是匿名类。
【特点】
1)、它必须继承一个类或者实现一个接口,而不能显示的使用extends或者implements,没有父类。
2)、匿名类没有构造方法。通过new<父类名> 创建对象,匿名类定义与创建对象是同时进行的。
3)、匿名类只能一次性的创建,并有父类句柄持有。
4)、匿名类不需要初始化,只有默认的构造方法
匿名类的应用
在图形用户界面(GUI)编程中,经常使用匿名类。比如使用Frame类 ---一个带有标题和缩放的窗口
package Test; import java.awt.Color;
import java.awt.Frame; public class Wife extends Frame{
public Wife(String str){
super(str);
}
public static void main(String[] args) {
Wife wife = new Wife("Stone");
wife.setSize(200,200);
wife.setBackground(Color.blue);
wife.setVisible(true);
}
}
对于这一个窗口,可以进行移动,最大化、最小化。但是不能使用关闭窗口的叉,来关闭窗口。
其中,在JDK中有一个窗口适配器java.awt.event.WindowsAdapter专门管理这件事,它是一个抽象类,其windowClosing()方法用于关闭窗口,但这个方法体是空的。
java--匿名类的更多相关文章
- 高阶函数与接口混入和java匿名类
		高阶函数与接口混入和java匿名类. 高阶函数中的组件(参量)函数相当于面向对象中的混入(接口)类. public abstract class Bird { private String name; ... 
- 学习笔记:因为java匿名类学习到接口的一些小用法
		在看CometD的示例代码时发现了许多有意思的代码,但说实话看别人的代码确实是件很累的事情,所以就看到这个知识点做一下记录吧. 先看一段代码: 代码1 这段代码中有一个new的操作,而且是在方 ... 
- Java:匿名类,匿名内部类
		本文内容: 内部类 匿名类 首发日期 :2018-03-25 内部类: 在一个类中定义另一个类,这样定义的类称为内部类.[包含内部类的类可以称为内部类的外部类] 如果想要通过一个类来使用另一个类,可以 ... 
- java匿名类和匿名对象及this的其他用法
		/* 匿名内部类:就是内部类的简写格式. 必须前提:内部类必须继承或者实现一个类或者接口. 匿名内部类其实就是一个匿名 子类对象. 格式:new 父类对象 or 接口(){ 子类内容:(覆盖父类的, ... 
- java匿名类
		一般情况下,我们需要声明一个类去继承一个接口,然后再new这个类,赋值给接口.但有时后这个类只会被调用一次,为了调用方便,那么就可以用匿名类来简化这个步骤. interface IKey{ void ... 
- Java 匿名类和lambda表达式
		一.匿名内部类 一个匿名内部类是一个没有名字的内部类.它将进一步定义一个内部类以及创建一个内部类的实例. 内部类处理器可以使用匿名内部类进行代码简化. 匿名内部类的语法如下所示: new SuperC ... 
- java 匿名类和匿名方法
		package com.test; interface product{ int getPrice(); } public class News { /** * @param args */ publ ... 
- 2019.12.12 Java的多线程&匿名类
		Java基础(深入了解概念为主) 匿名类 定义 Java匿名类很像局部或内联系,只是没有明细.我们可以利用匿名类,同时定义并实例化一个类.只有局部类仅被使用一次时才应该这么做. 匿名类不能有显式定义的 ... 
- 浅谈Java的匿名类
		在实际的项目中看到一个很奇怪的现象,Java可以直接new一个接口,然后在new里面粗暴的加入实现代码.就像下面这样.那么问题来了,new出来的对象没有实际的类作为载体,这不是很奇怪吗? 思考以下代码 ... 
- java:使用匿名类直接new接口
		java中的匿名类有一个倍儿神奇的用法,见下面代码示例: package contract; public interface ISay { void sayHello(); } 上面是一个简单的接口 ... 
随机推荐
- asp.net个人笔记
			1.进程外session一记 配置进程外session, 在webconfig中配置<sessionState timeout="60" mode="StateSe ... 
- js取整
			综述 js中经常会遇到取整问题,所以做了下总结.总的来说分为两个方面,直接取整(不考虑小数点后的部分)还是计算后取整(例如四舍五入,向上取整等). 一.直接取整 1.parseInt(number) ... 
- CSS的display、hover、overflow、©(版权符号)、borer-radius(边框圆角)
			一.display: none 隐藏 block显示 visibility:hidden隐藏 visible显示 display:none和visibility:hidden这两个属性对应的值 ... 
- string.Format()字符串格式化
			Format()基本语法: {索引[,对齐][:格式字符串]} ·索引:表示引用的对象列表中的第n个对象参数. ·对齐(可选):设置宽度与对齐方式,该参数为带符号的整数.正数为 ... 
- linux driver: input子系统
			<韦东山Linux视频第2期_从零写驱动\第13课第1节 输入子系统概念介绍_P.wmv> 本视频对输入子系统的结构进行了详细的剖析,通过本视频,可以了解到input核心包括了设备和han ... 
- BZOJ 1617: [Usaco2008 Mar]River Crossing渡河问题( dp )
			dp[ i ] = max( dp[ j ] + sum( M_1 ~ M_( i - j ) ) + M , sum( M_1 ~ M_i ) ) ( 1 <= j < i ) 表示运 ... 
- json格式字符串与java.util.Map的互转(借助于jackson.jar)
			package com.test.javaAPI.json; /** * json工具类 * * @author Wei * @time 2016年10月2日 下午4:25:25 */ public ... 
- linkbutton.js
			jquery.linkbutton.js /** * linkbutton - jQuery EasyUI * * Licensed under the GPL: * http://www.gnu.o ... 
- python成长之路17
			一:web框架的本质,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1.1:python实现: #!/usr/bin/env python ... 
- D1-Linux-CentOS学习打卡
			从一月底开始萌生了想在继续学Python的时候,学一门新的操作系统. 在看很多程序员的JD时,很多都要求熟悉LINUX,并且奔方法里面也提到了在LINUX下的编程. ----------------- ... 
