java匿名类对象的坏处_java匿名内部类的使用注意事项
1、首先匿名内部类要继承自抽象基类或者实现基类接口
like this
abstract class Seed{
int cnt;
public Seed(int x){
cnt=x;
}
abstract void showInfo();
}
class Apple{
int num=300;
public Seed getSeed(final int x){
return new Seed(x){
public void showInfo(){
System.out.println("The apple's seeds are "+num);
}
};
}
2、在类的内部不能对父类字段进行初始化。除非使用初始化块,也不能对外部类的子段进行更改
这样是不行的。//!凝视部分是不对的
abstract class Seed{
int cnt;
public Seed(int x){
cnt=x;
}
abstract void showInfo();
}
class Apple{
int num=300;
public Seed getSeed(final int x){
return new Seed(x){
//!num=200;
//!cnt=100;
public void showInfo(){
System.out.println("The apple's seeds are "+num);
}
};
}原因:
所谓匿名内部类与实名类本质上是同样的,而在类的内部对子段初始化的位置仅仅能是声明的位置或者在构造函数的内部,而对字段值的更改仅仅能在该类方法的内部。在其他位置对字段值的更改是无效的,由于此时的更改和操作没有机会运行,所以编译器会报错。
而在初始化块中对字段的操作和更改是能够的。
这样也是不行的
public class Wrapping{
public int a;
public int b;
//!a=100;
}
java匿名类对象的坏处_java匿名内部类的使用注意事项相关推荐
- Java 匿名类(匿名内部类)
Java 匿名类(匿名内部类) 学习的参考博文:无恨之都 1. 初识 匿名类 标准说法: 内部类包括:成员类.局部类.匿名类(匿名内部类). 匿名类概念: 匿名类可以使你的代码更加简洁 (JDK8之后 ...
- java匿名类_Java匿名类
java匿名类 Java anonymous class are like local class or inner class without a name. We can use java ano ...
- java匿名类序列化问题
Pagination已经继承Serializable,并且具有如下两个属性 private int page;private int pageSize; 变量Integer pageNo, Integ ...
- 解决内存泄漏更加清楚的认识到Java匿名类与外部类的关系
1.事件起因 在做项目的时候,通过Android Studio的Memory Monitor窗口观察程序内存使用情况,发现当程序退出的时候,有一部分应该释放掉的内存没有释放掉,知道程序中应该有内存泄漏 ...
- Java匿名类的使用方法
浅析匿名类的使用方法 匿名类是某种已定义的类的继承,该父类必须真实存在.匿名类属于内部类无法构造静态代码块. 构造匿名类对象主要有以下几种方式: new 类名{类体} 这种方式的例子是注册事件监听器 ...
- java 匿名类调用方法_Java匿名内部类使用与示例
首先说为什么有匿名类(产生的使命) 两个原因 1.简化代码编写 某种情况下,类只需要扩展一个方法,没必要为了一个方法单独去写一个子类,然后然后调用子类,此时需要匿名类 2.在不同的包内的类内调用类的p ...
- java匿名类构造方法_Android(Java) | 你知道吗?Java匿名内部类其实是有“名字”和构造方法的!...
要点 匿名类的概念和用法 语言规范以及语言的横向对比等 内存泄漏的切入点 总结 没有人类认知意义上的名字 只能继承一个父类或实现一个接口 父类是非静态的类型,则需父类外部实例来初始化 如果定义在非静态 ...
- 1.18 Java匿名类,匿名内部类
匿名类是指没有类名的内部类,必须在创建时使用 new 语句来声明类.其语法形式如下: new <类或接口>() {// 类的主体 }; 这种形式的 new 语句声明一个新的匿名类,它对一个 ...
- java匿名类和匿名对象及this的其他用法
/* 匿名内部类:就是内部类的简写格式. 必须前提:内部类必须继承或者实现一个类或者接口. 匿名内部类其实就是一个匿名 子类对象. 格式:new 父类对象 or 接口(){子类内容:(覆盖父类的, 而 ...
最新文章
- 求任意大小矩阵的转置矩阵
- 干货:产品经理怎么做才能在需求评审中少挨打?
- Java进阶学习资料!dockerjar内存
- GCC在C语言中内嵌汇编 asm __volatile__
- oracle 修改2个表,oracle学习笔记2:创建修改表
- 应山有学计算机编程吗,周应山-武汉纺织大学材料科学与工程学院
- Linux _常用命令使用(一)
- 540 - Team Queue
- 最新手机号段归属地数据库(2018年4月)
- 如何在jdk官网下载想要的版本
- 安装VS2012番茄助手
- HTML5游戏引擎(八)-矢量绘图——绘制矩形-drawRect 绘制圆形-drawCircle 绘制直线-moveTo和 lineTo
- 美国市场数据分析初创公司Simon Data获2000万美元融资
- Python 【人工智能】【大数据】【全栈】【自动化】技能-张子夜-专题视频课程...
- 可以写一个表白代码吗
- 飞凌嵌入式FETMX6Q-C
- Shiro入门以及Shiro与web整合
- Android开发知识(二十二)LayoutInflater装载xml布局过程的源码解析
- C语言学生信息管理系统
- if-else走天下,让CPU分支预测技术浮出水面
热门文章
- 1086: [SCOI2005]王室联邦
- 2016.08.30~2017.07.20
- webbrowser 访问iframe拒绝访问_电脑无法删除文件访问被拒绝【解决方案】
- git 刷新远程分支列表_掌握Git命令一张脑图就行
- Python使用OpenCV+pillow提取AVI视频中关键帧图像
- vue如果 显示 如果 隐藏_隐藏在iPhone拨号键盘的4个秘密,如果你只用来打电话就太浪费了...
- sed 分隔符打印_字符截取:cut,格式化输出:printf,字符截取:awk,文件或命令输出编辑:sed...
- autojs命令代码大全_各个主流品牌手机的命令代码大全,安卓工程模式的指令大全!...
- 力扣26,删除重复项(JavaScript)
- jdbc oracle 函数,Oracle系列:(33)JDBC访问Oracle的存储过程和存储函数