153 01 Android 零基础入门 02 Java面向对象 07 Java多态 06 内部类 04 方法内部类

153 01 Android 零基础入门 02 Java面向对象 07 Java多态 06 内部类 04 方法内部类

**本文知识点:方法内部类 **

说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进行了截图记录,没有对截图步骤进行详细的文字说明(后面博主时间充裕了,会对目前的博客编辑修改,补充上详细的文字说明);有些步骤和相关知识点缺乏文字描述,可能会难以理解。读者如有不明之处,欢迎博客私信或者微信(本人微信在博客下方的“关于博主”处)与本人交流,共同进步

方法内部类

方法内部类定义及特点

mark

方法内部类代码示例

方法内部类的样子——定义在一个方法里面的内部类
mark
2个错误:
mark

错误1:方法内部类中无法包含静态成员
mark

解决方法:去掉static即可
mark

错误2:找不到Heart类型 因为Heart是方法内部类,所以在方法编译时找不到方法内部的方法内部类类型
mark

解决方法:
将方法类型改为Object,同时在方法中返回一个Heart对象
mark

注意:方法内部类中不允许有静态成员,所以age前的static关键字也要删掉
mark
mark

测试方法内部类:
方法内部类的对象无法直接获取,只有通过调用外部类中用于包裹方法内部类的方法来产生方法内部类的对象——在当前实例中,即通过getHeart方法产生Heart类对象
mark

其实,通常方法内部类对应的外部类的方法,会返回内部类的方法(格式:内部类对象.方法,具体格式样式: new 方法内部类名称.方法内部类中的方法)

因为方法内部类脱离了对应的方法什么都获取不了,所以必须通过上面的方式。
mark

正式开始测试:
要借助外部类的实例对象,调用外部类中方法内部类对应的外部类方法。
本例中,要借助lili对象
mark

测试代码:
mark

测试结果:
mark
结果产生的原因:
mark

方法内部类编译生成的文件的样子

成员内部类编译生成的文件:
mark

方法内部类编译生成的文件什么样子呢?
mark
方法内部类编译生成的文件长上面这个样子,和成员内部类编译生成的文件长的不一样

方法内部类小结

小结
mark
mark

原文地址:https://www.cnblogs.com/xlfcjx/p/13828719.html