java 上下文变量_匿名类可直接使用上下文已定义变量

mu c / os-iii内核实现应用开发板

129元

包邮

(需用券)

去购买 >

5d24263c87823a251e59255e07eb9a50.png

前言

昨天晚上听到潘老师解答邢彦年学长的问题,听了半天也是云里雾里,毕竟身为一个“假的”计算机专业的学生,我什么都不知道知道,什么匿名类,匿名函数......这些我都没印象了,我只记得那位教面向对象程序设计的老师一节课能讲60多页,六页的知识用两句话就能讲完,现在既然接触到了这个东西就得学明白了。

bVbDVJO

bVbDVJP

匿名类

首先来看一下匿名类的定义

匿名类,就是内部类,是没有类名的类,其名称由Java编译器给出,一般是形如:外部类名称+$+匿名类顺序,没有名称也就是其他地方就不能引用,不能实例化,只用一次,当然也就不能有构造器。

匿名类就是利用父类的构造函数和自身类体构造成一个类。

匿名类可以继承父类的方法,也可以重写父类的方法。

匿名类可以访问外部类的成员变量和方法,匿名类的类体不可以声明称static成员变量和static方法。

匿名类由于是一个new的结果,所以其实可以赋值给一个父类对象。因此可以分为两种匿名类,成员匿名类和局部匿名类(作为函数参数)

匿名类的语法:

new () { 成员定义} ;

匿名类实现接口

interface hello

{

String start();

}

public class OK

{

public String hello()

{

hello sentence =new hello() //这个地方就是匿名类

{

String start()

{

return "hello world";

}

}

return sentence;

}

}

通过代码看出,实际上hello是一个接口,本身接口是不能直接new的,但是呢在new的时候,hello这个接口后面带了一对花括号,那么这个就表示实际上现在new的是这个接口的实现类。但是发现,这个实现类是没有名字的,所以这个实现类叫匿名类。

匿名类继承父类

public class Add

{

public int add(int a, int b)

{

return a + b;

};

}

public class Demo

{

int c = 6;

Add result = new Add() //匿名类

{

public int add(int a, int b)

{

return result.add(5,c);

}

};

}

这里的匿名类用到了类外的变量c,上文中的变量可以在匿名类中使用。那么上面的问题也就解决了,父类传入了参数klass,那么匿名类就可以直接使用该参数。

匿名类的特点

匿名内部类顾名思义就是没有名字的内部类。

因为没有名字,所以匿名内部类只可以使用一次。

匿名内部类常用来简化代码的编写。

使用内部类有一个前提条件,必须继承父类或实现一个接口。

匿名内部类常常用于多线程。

总结

这篇博客写了好久,一开始一点都看不懂,面对许多专业名词,我真的是一脸懵,是真的一脸懵,后来问了问学长,总算是理解了那么一点,希望这次的学习能给以后带来许多便利吧。

引用

感谢这些文章的作者的分享

java匿名类的定义

匿名类

Java之匿名内部类详解

java 11官方入门(第8版)教材

79.84元

包邮

(需用券)

去购买 >

f0f3f55624fb396b1764d42d6df88864.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值