匿名内部类的注意事项和类作为成员变量类型
对格式"new 接口名称(){...};"进行解析
1.new代表创建对象的动作
2.接口名称就是匿名内部类需要实现哪个接口
3.{...}这才是匿名内部类的内容
另外还要注意几点问题:
1.匿名内部类,在创建对象的时候,只能使用唯一一次。
如果希望多次创建对象,而且类内容一样的话,那么就必须使用单独定义的实现类了。
2.匿名对象在调用方法的时候,只能调用唯一一次,如果希望同一个对象,调用多次方法,那么就必须给对象起个名字
3.匿名内部类是省略了实现类、子类名称但是匿名对象是省略了对象名称
匿名内部类和匿名对象不是一回事
类最为成员变量类型
//游戏当中的英雄角色类
public class Hero {
private String name;//英雄名称
private int age;//英雄的年龄
private Weapon weapon;//武器
@Override
public String toString() {
return "Hero{" +
"name='" + name + '\'' +
", age=" + age +
", weapon=" + weapon +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Weapon getWeapon() {
return weapon;
}
public void setWeapon(Weapon weapon) {
this.weapon = weapon;
}
public Hero() {
}
public Hero(String name, int age, Weapon weapon) {
this.name = name;
this.age = age;
this.weapon = weapon;
}
public class Weapon {
private String code;//武器的代号
@Override
public String toString() {
return "Weapon{" +
"code='" + code + '\'' +
'}';
}
public Weapon() {
}
public Weapon(String code) {
this.code = code;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
public class MyTest {
public static void main(String[] args) {
//创建一个英雄角色
Hero hero = new Hero();
//为英雄起一个名字并且设置年龄
hero.setName("大傻战神");
hero.setAge(100);
Weapon weapon = new Weapon("大宝剑");
hero.setWeapon(weapon);
String s = hero.toString();
System.out.println(s);
}
}
分类:
java基础+进阶
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本