这一章节我们来讨论一下内部类。
1.概念
在类的内部创建的类就是内部类。
package com.ray.ch08;
public class Test {
class Destination {
}
class Content {
}
}
上面的Destination和Content就是内部类。
2.为什么需要内部类?
(1)隐藏代码
package com.ray.ch08;
import com.ray.ch08.Test.Destination;
public class Test {
class Destination {
}
private class Content {
}
}
class Ship {
// Content content = new Test().new Content();//error
}
我们可以使用private来隐藏某些实现类。
当我们需要调用某个类的内部类时,必须先new 外部类,就像下面的Destination类一样。
package com.ray.ch08;
import com.ray.ch08.Test.Destination;
public class Test {
class Destination {
}
private class Content {
}
}
class Ship {
Destination destination = new Test().new Destination();
// Content content = new Test().new Content();//error
}
(2)通过与外部类的通信
package com.ray.ch08;
public class Test {
private int id = 0;
class Destination {
private void print() {
System.out.println(id);// 这里的id是int com.ray.ch08.Test.id
}
}
private class Content {
}
}
上面的代码演示了内部类可以改变外部类的属性域,这里可以衍生很多变化,在后面会详细展开。
(3)代码更加优雅
这一点就不用代码演示,因为根据不同的需求要求各不相同。
总结:这一章节主要讲述了内部类的概念与使用的原因。
这一章节就到这里,谢谢。
-----------------------------------