黑马程序员技术交流社区
标题:
内部类使用问题
[打印本页]
作者:
杨盼
时间:
2012-2-26 21:06
标题:
内部类使用问题
为什么需要内部类,什么时候可以使用内部类,求详解
作者:
朱皓
时间:
2012-2-26 21:27
内部类就是在一个类的内部定义的类,内部类中不能定义静态成员
内部类可以直接访问外部类中的成员变量,内部类可以定义在外部类的方法外面,也可以定义在外部类的方法体中
内部类的好处是不用创建对象方便的访问外部类中的私有属性,从而减少代码
作者:
唐学松
时间:
2012-2-26 21:31
如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个 方法的名称,参数相同,你应该怎么办?
这时候,你可以建一个内部类实现这个接口。此乃内部类的作用。
由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直 接实现这个接口的功能。
1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据。
2. 对于同一个包中的其他类来说,内部类能够隐藏起来。
3.匿名内部类可以很方便的定义回调。
4.使用内部类可以非常方便的编写事件驱动程序。
作者:
杨盼
时间:
2012-2-26 21:42
不要书上写的,用大白话介绍介绍,简单程序,加注释滴
作者:
沈样
时间:
2012-2-26 21:54
不要刻意定义内部类,内部类好处就是能访问类的私有变量,其他跟正常类没区别
作者:
杨盼
时间:
2012-2-26 22:07
沈样 发表于 2012-2-26 21:54
不要刻意定义内部类,内部类好处就是能访问类的私有变量,其他跟正常类没区别 ...
好吧,以后碰到使用的时候再具体了解吧,现在弄太头疼了,看了半天都没转过去
作者:
王康
时间:
2012-2-27 10:48
一、 定义
放在一个类的内部的类我们就叫内部类。
二、 作用
1.内部类可以很好的实现隐藏
一般的非内部类,是不允许有 private 与protected权限的,但内部类可以
2.内部类拥有外围类的所有元素的访问权限
3.可是实现多重继承
4.可以避免修改接口而实现同一个类中两种同名方法的调用。
匿名内部类是内部类的一种简化写法:return new Wrapper {
...
};
等价于:Wrapped extends Wrapper {
...
}
return new Wrapped();
匿名内部类的作用不止这一点
考虑一下这样的case:
interface ICount {
int count();
}
class Parent {
int i = 0;
int count() {
return i++;
}
}
有一个类Child,它既想继承Parent的count()方法,又想实现ICount接口中的count方法,这个时候怎么办呢?内部类就可以大显身手了
class Child extends Parent {
ICount getCount() {
return new ICount {
int i = 0;
int count() {
return (i *= 2);
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2