}
public void eat(){
System.out.println(name + " 吃饭!");
}
}
这是一个平平无奇的类,假如我们要弄个类继承Fu,然后重写eat方法,一般会这么写:
public class Zi extends Fu{
@Override
public void eat() {
System.out.println(“这是Zi类的eat方法!”);
}
}
这样做当然是可以的,但是会有这样的情况,就是我们希望有个类,仅仅重写了eat方法,而且很确定不会在别的地方再使用该子类了,就可以new一个匿名子类对象:
Fu f = new Fu(){
@Override
public void eat() {
System.out.println(“eat方法被重写了!”);
}
};
这样就可以省去多写一个类的麻烦。
步骤 2 匿名子类的构造器
先看一段代码
public static void main(String[] args) {
Fu f = new Fu(){
/** 这里再打一个打括号,就是在匿名子类的构造器中写东西 */
{
setName(“Zi”);
}
@Override
public void eat() {
/** this.getClass为匿名类*/
System.out.println(this.getClass());
System.out.println(this.getName() + " eating…");
}
};
f.eat();
}
这种写法也很奇特,但是真的有用!你可以在生成匿名子类对象的时候,把数据初始化一下。
步骤 3 实战应用1.给HashMap赋初值
Map<String,Object> study = new HashMap<String,Object>(){{
put(“name”,“java小白翻身”);
put(“url”,“java18.cn”);
}};
System.out.println(study);
这下是真的学到了,因为生成的对象还是Map(因为多态),所以不会有任何影响,赶紧拿去秀翻同事吧~~
步骤 4 实战应用2.给ArrayList赋初值
List list = new ArrayList(){{
add(1);
add(2);
add(3);
}};
System.out.println(list);
步骤 5 实战应用3.传参的时候直接new接口
这种情况是非常普遍的!
这种情况是非常普遍的!
这种情况是非常普遍的!
重要的话说三遍,如果你喜欢翻看源码,这种技巧真的是随处可见。比如:
//直接开启一个线程
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(“线程开启!”);
}
}).start();
一般这种情况都是直接new接口,实际上是new一个接口的匿名实现类啦,不过我一般喜欢说new一个接口。
如果这个接口中只有一个抽象方法,就可以用lamda表达式:
new Thread(() -> {
System.out.println(“线程开启!”);
}).start();
步骤 6 神级展开: 我顺手做了个小框架?!
这部分内容是我突然想到的,既然这个匿名子类对象这么好用,我是不是可以用这个特性来做个SQL生成器?
最终做出来的效果是这样的:
String sql = new SQL(){{
select(“*”).from(“t_user”).where(“uname like ‘j%’”)
.and(“sex=‘男’”).orderby(“id desc”);
}}.toString();
System.out.println(sql);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/3800e195054c0055bcdbe98820c537a4.jpeg)
最后
作为过来人,小编是整理了很多进阶架构视频资料、面试文档以及PDF的学习资料,针对上面一套系统大纲小编也有对应的相关进阶架构视频资料
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
作为过来人,小编是整理了很多进阶架构视频资料、面试文档以及PDF的学习资料,针对上面一套系统大纲小编也有对应的相关进阶架构视频资料
[外链图片转存中…(img-RRI8t11D-1713292547528)]
[外链图片转存中…(img-OflLZiBa-1713292547528)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!