java内部类写法,Java匿名内部类
Pragma mark — NO.1 匿名内部类
public class Main {
public static void main(String[] args) {
Outer o = new Outer();
o.print();
o.method1();
}
}
/*
* 匿名内部类
* 就是内部类的简化写法
* 前提:存在一个类或者接口
* 这里的类可以是具体类也可以是抽象类
* 格式:
* new 类名或者接口名() {
* 重写方法;
* };
*本质是:
* 是一个继承了该类或者是实现了该接口的子类匿名对象
* */
//创建一个接口
interface Inter {
public void method();
}
//先用有名字的内部类实现外部接口
class Outer {
//内部类实现外部接口
class Inner implements Inter {
public void method(){
System.out.println("这是一个内部类实现接口");
}
}
//再整个方法
public void print(){
Inner i = new Inner();
i.method();
}
//匿名内部其实是局部内部类,必须放在方法中
public void method1 (){
//注意匿名内部类的书写格式
//new 后面如果是类名就是继承自父类的名字
//如果是接口名,就是这个类要实现的接口
//整个这个代表子类对象,那么可以调用这个重写后的method方法。要好好理解下
new Inter () {//实现Inter接口
public void method(){
System.out.println("我是一个匿名内部类");
}
}.method();//这后面这个分号不能丢了
}
}
Pragma mark — NO.2 匿名内部类调用多个重写方法
public class Nimingneibulei1 {
public static void main (String[] args){
Test1 t = new Test1();
t.method();
}
}
//匿名内部类中重写多个方法调用
interface Inter1 {
public void show1();
public void show2();
}
class Test1 {
//通过如下例子我们就建议匿名内部类就用在只调用一个方法的情况
public void method(){
//匿名内部类
// new Inter1() {
//
// public void show1(){
//
// System.out.println("这是show1方法");
// }
// public void show2(){
// System.out.println("这是show2方法");
// }
//
// }.show1();
//
// new Inter1() {
//
// public void show1(){
//
// System.out.println("这是show1方法");
// }
// public void show2(){
// System.out.println("这是show2方法");
// }
//
// }.show2();
//换个简单点的写法
Inter1 i = new Inter1() {
public void show1(){
System.out.println("这是show1方法");
}
public void show2(){
System.out.println("这是show2方法");
}
};
i.show1();
i.show2();
}
}
Pragma mark — NO.3 匿名内部类的应用
public class Nimingneibulei2 {
public static void main (String[] args){
//我们要求是调用PersonDemo中的method方法
PersonDemo pd = new PersonDemo();
//这里要求我们传一个抽象类对象,但是抽象类对象不能够初始化。
//所以要我们传一个匿名内部类进去,这里不能直接传抽象类对象,我们可以
//传两种,要么传有名的子类对象,要么传匿名内部对象
// Person p = new Student();
// pd.method(p);
//我们用匿名内部类来做一下--匿名内部类当做参数传递,把匿名内部类当做一个对象
pd.method(new Person(){
//重写show()方法
public void show(){
System.out.println("匿名内部类实现");
}
});
}
}
//写个抽象类
abstract class Person{
public abstract void show();
}
//普通类
class PersonDemo {
public void method(Person p){
p.show();
}
}
//再创建个子类对象去继承抽象类
class Student extends Person {
public void show(){
System.out.println("我是一个有名的子类");
}
}
java内部类写法,Java匿名内部类相关推荐
- java内部类写法_Java匿名内部类的写法示例
前言 在Java中调用某个方法时,如果该方法的参数是一个接口类型,除了可以传入一个参数接口实现类,还可以使用匿名内部类实现接口来作为该方法的参数. 匿名内部类其实就是没有名称的内部类,在调用包含有接口 ...
- java内部类文件,Java内部类学习
Java内部类学习 1.内部类的实例与外部类的实例共享一种特殊的关系,这种特殊的关系为内部类中的代码提供对封装(外部)类成员的访问.其实,内部类就是外部类的一部分.不仅仅是"一部分" ...
- java内部类写法_Java学习-内部类
一.概念 内部类:在一个类的内部定义的一个类: 分类: 可以分为 成员内部类.局部内部类.匿名内部类和静态内部类: <Think in java>): 1.内部类可以用多个实例,每个实例都 ...
- java内部类写法_java内部类怎么写
一.内部类基础 二.深入理解内部类 三.内部类的使用场景和好处 四.常见的与内部类相关的笔试面试题 若有不正之处,请多谅解并欢迎批评指正. 一.内部类基础 在Java中,可以将一个类定义在另一个类里面 ...
- java 内部类泛型,java – 使用泛型强制转换为内部类
请考虑以下代码: public class Outer { public class Inner{ } public static Outer.Inner get(){ Object o = new ...
- Java内部类(匿名内部类)
Java内部类(匿名内部类) 一.内部类 二.静态内部类 三.成员内部类 四.局部内部类(了解即可) 五.匿名内部类(重要) 一.内部类 1.概述 内部类就是一个定义在一个类里面的类,里面的类可以理解 ...
- java内部类之成员内部类、局部内部类和匿名内部类
内部类概念 一个类中包含另外一个类. 分类 成员内部类. 局部内部类(包含匿名内部类). 成员内部类 定义格式: 修饰符 class 类名称 {修饰符 class 类名称 {//...}//... } ...
- Java内部类和匿名内部类的用法
Java内部类和匿名内部类的用法 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51981163 一.内部类: ...
- java中带参数匿名内部类_Java内部类之匿名内部类
我们都知道Java中可以使用内部类,将一个类的定义放在另一个类的定义的内部,这就是内部类,但是匿名内部类往往使我们摸不着头脑,因为它并没有特定的名称,那么该如何使用它呢? 定义一个匿名内部类 publ ...
最新文章
- C#装箱和拆箱(值类型和引用类型之间的转换)
- Flask == scoped_session
- Idea缺少Version Control 底部菜单
- mybatis学习(53):构造方法映射
- 小学数学动画 android,小学数学动画教学下载-小学数学动画 安卓版v5.0-pc6手机下载...
- 软件行业大牛告诉你何谓成功?
- 《spring-boot学习》-07-spring data jpa
- 实验楼Python项目
- SVM中的核函数什么意思
- 报错’TypeError: only integer scalar arrays can be converted to a scalar index‘
- arma模型预测 matlab,MATLAB中ARMA模型预测差分问题
- 德芙网络营销策略ppt_德芙网络营销案例ppt采集
- 国外开放知识图谱_什么是开放知识,如何传播?
- 带权图 Weighted Graph
- テクニカルアーティストの基本的な役割と、もう1つ重要な役割
- 企业微信开发,嵌入自定义项目,及JS-SDK的引用
- java openni rgb显示_3D将深度映射到RGB(Kinect OpenNI Depthmap到OpenCV RGB Cam)
- js 12:00时间加上半小时,返回小时和分钟
- rt3290+linux驱动下载,Ralink雷凌RT3290蓝牙驱动
- Java操作wkhtmltopdf实现Html转PDF
热门文章
- 没人脉怎么干副业?适合没人脉的副业?
- mysql字符集和表字符集_Mysql数据库表引擎与字符集
- cordic算法反正切c语言,Cordic 算法之 反正切
- php遍历目录图片并显示,PHP读取目录下所有图片并输出一张图片地址
- 点号java_java的classpath路径中加点号 ‘.’ 的作用
- Ubuntu批量新建文件
- 【华为OD机试 2023】货币单位换算(C++ Java JavaScript Python)
- 计算机蓝屏原因原理,电脑蓝屏的正确处理方式
- paddle实现lenet5
- java世界中几种html解析的工具