前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Monkey Java》课程7.2之内部类和匿名内部类

《Monkey Java》课程7.2之内部类和匿名内部类

作者头像
GitOPEN
发布2019-01-29 11:02:29
2850
发布2019-01-29 11:02:29
举报

本节课程将学习以下内容:

  • 什么是内部类
  • 内部类的使用方法
  • 匿名内部类的使用方法

什么是内部类

含义:

一个类定义在另一个类内部。

例子1:

1.新建一个名为A.java的源文件:

class A {

	int i;

	// B类就是内部类
	class B {
		int j;
		int funB(){
			// 内部类B可以使用外部类A的成员变量和成员方法
			int result = i + j;
			return result;
		}
	}
}

注意:

在编译A.java源文件后,会生成两个class文件,即A.class和A$B.class。

内部类的使用方法

  • 要生成一个内部类对象,首先要有一个外部类对象。

例子2:

1.新建一个名为Demo01.java的源文件:


class Demo01 {
	public static void main(String[] args) {
		// 生成外部类的对象
		A a = new A();

		// 生成内部类的对象
		A.B b = new A().new B();

		a.i= 3;
		b.j = 1;

		int result = b.funB();
		System.out.println(result);

	}
}

匿名内部类

  • 首先是一个内部类
  • 其次它没有名字

例子3:

1.新建一个名为C.java的源文件:


interface C {
	public void doSomething();
}

2.新建一个名为D.java的源文件:

class D {
	public void fun(C c){
		System.out.println("D类的fun函数");
		c.doSomething();
	}
}

3.新建一个名为Demo02.java的源文件:


class Demo02 {
	public static void main(String[] args) {
		D d = new D();
		// fun括号中就是匿名内部类
		d.fun(new C(){
			public void doSomething() {
				System.out.println("匿名内部类");
			}
		});
	}
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015/07/26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是内部类
    • 例子1:
    • 内部类的使用方法
      • 例子2:
      • 匿名内部类
        • 例子3:
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档