博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java内部类
阅读量:4701 次
发布时间:2019-06-09

本文共 925 字,大约阅读时间需要 3 分钟。

内部类(inner class):定义在还有一个类中的类。

为什么须要使用内部类呢?原因有二:

一、内部类方法能够訪问该类定义所在作用域中的数据。包含私有的数据。

二、当想要定义一个回调函数且不想编写大量代码时,使用匿名(anonymous)内部类比較便捷。

对于原因一:

看以下样例,通过凝视一目了然:

public class OuterClass {	private String outer = "OUTER";		public void test(){		InnerClass inner = new InnerClass();//同一般类一样。先创建类对象		//补全:OuterClass.InnerClass inner = this.new InnerClass();		inner.test();//调用方法同一般类一样	}	class InnerClass implements ActionListener{		String inner = outer;//就如类的方法一样。可直接訪问类外部域				public void test(){			System.out.println("TEST");		}		@Override		public void actionPerformed(ActionEvent e) {			String s = OuterClass.this.outer;			//OuterClass.this 表示外围类引用,否则默认隐式參数是this(内部类的引用)		}	}}

从上面样例可看出,内部类也没什么特别的。就像一个普通的方法,只是它是一个类而已。还能够在同一包下的其它类中通过new OuterClass().new InnerClass()得到此InnerClass对象,这不和调用类的方法一样吗。

对于原因二:

见下图中的代码:

当中选中的代码段可被以下的actionListener取代。匿名即不须要actionListener这种命名,直接new一个对象当作方法的參数就可以。

转载于:https://www.cnblogs.com/mfrbuaa/p/5378460.html

你可能感兴趣的文章
CSS 文字溢出 变成省略号 ...
查看>>
Spring事务
查看>>
java编程基础(三)流程控制语句
查看>>
让数据库跑的更快的7个MySQL优化建议
查看>>
jquery 取id模糊查询
查看>>
解决在vue中,自用mask模态框出来后,下层的元素依旧可以滑动的问题
查看>>
修改node节点名称
查看>>
PAT(B) 1014 福尔摩斯的约会(Java)
查看>>
PAT甲级题解-1123. Is It a Complete AVL Tree (30)-AVL树+满二叉树
查看>>
项目开发总结报告(GB8567——88)
查看>>
SSH加固
查看>>
端口扫描base
查看>>
iOS IM开发的一些开源、框架和教程等资料
查看>>
FansUnion:共同写博客计划终究还是“流产”了
查看>>
python 二维字典
查看>>
pip 警告!The default format will switch to columns in the future
查看>>
Arrays类学习笔记
查看>>
实验吧之【天下武功唯快不破】
查看>>
2019-3-25多线程的同步与互斥(互斥锁、条件变量、读写锁、自旋锁、信号量)...
查看>>
win7-64 mysql的安装
查看>>