GitOPEN's Home.

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

Word count: 395 / Reading time: 2 min
2015/07/26 Share

转发请注明出处:
安卓猴的博客(http://sunjiajia.com)


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

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

什么是内部类

含义:

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

例子1:

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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的源文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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的源文件:

1
2
3
4
interface C {
public void doSomething();
}

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

1
2
3
4
5
6
class D {
public void fun(C c){
System.out.println("D类的fun函数");
c.doSomething();
}
}

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

1
2
3
4
5
6
7
8
9
10
11
12
class Demo02 {
public static void main(String[] args) {
D d = new D();
// fun括号中就是匿名内部类
d.fun(new C(){
public void doSomething() {
System.out.println("匿名内部类");
}
});
}
}

关于我

  • 微信公众号:Android奇想录(android_amazing)

扫描二维码关注公众号


欣慰帮到你 一杯热咖啡
【奋斗的Coder!】企鹅群
【奋斗的Coder】公众号
CATALOG
  1. 1. 什么是内部类
    1. 1.1. 例子1:
  2. 2. 内部类的使用方法
    1. 2.1. 例子2:
  3. 3. 匿名内部类
    1. 3.1. 例子3:
    2. 3.2. 关于我