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(); } 上面是一个简单的接口 ...
随机推荐
- filter angularjs 过滤器
定义:从一个数组中根据某种规则返回新的数组. 语法: 在html中 {{ filter_expression | filter : expression : comparator}} 在javascr ...
- LightOJ 1033 Generating Palindromes(dp)
LightOJ 1033 Generating Palindromes(dp) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...
- [Swust OJ 794]--最近对问题(分治)
题目链接:http://acm.swust.edu.cn/problem/794/ Time limit(ms): 1000 Memory limit(kb): 10000 Description ...
- [C#参考]委托机制
1. 委托概述 这是一个新的概念,但是其本质并不是什么新鲜的事物,委托本质上就是一个类.只不过一般的类是数据的集合,委托保存的是一个或者多个方法.委托是引用类型,因此委托有引用和对象,同时委托对象中包 ...
- JS 控制 form是否提交表单
问题背景:用php删除数据,希望在点击“删除”(button)的时候JS弹出confirm来确认是否删除. 此段代码为php中的form: <form action="?form=de ...
- fork 函数的一点学习
昨天某位少年问了我一个问题,#include<stdio.h> int main() { fork(); fork(); fork(); printf("hello " ...
- Android 网络交互之MD5为什么要加盐
MD5为什么要加盐 之前面试的时候,遇到一个面试的哥哥.不停的跟我确认我对网络传输过程中的password进行MD5加密的时候,是否加key了. 当时我很纳闷,因为MD5本身已经是不可逆的了,需要破解 ...
- java实现电脑远程控制完整源代码(转)
Java JDK1.4 的Robot对象,该对象可以完成屏幕图像截取操作,控制鼠标,键盘,如此便可以轻而易举地实现远程服务器的控制.本文向大家介绍如何用Java Robot对象实现远程服务器的控制,并 ...
- 安装ubuntu时的注意事项----个人小总结
今天重装了一次ubuntu,以前是别人帮我装的,而这次是我自己照着网上教程装的. 这个教程还是挺不错的,我就是照着这个装成功的 http://jingyan.baidu.com/article/60c ...
- jsp验证表单后再提交
在提交表单时,我们常常需要验证核实表单内容,若都不为空时,方能提交:若有文本框为空则不提交,并获取鼠标焦点到文本框上 ,所以我们可以利用onsubmit的方法来做,请看下面例子: <html&g ...