内部类 指在另一个类内部的类,它可以继承外部类或实现接口。除非是在宿主类的非static方法里,不然创建内部类的对象必须使用 OuterClassName.InnerClassName的形式。
......
public static void main(String[] args) {
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.createInnerClass();
}
......
内部类可以声明为 private 和 protected, 外部类则不可以, 它们只可能是 public 和 package。
class Test3 {
private class C3 implements Contents {
private int i;
public int value() {return i;}
}
protected class D3 implements Desc {
private int i;
public int value() {return i;}
}
public Desc newDesc() {
return new D3();
}
public Contents newContents() {
return new C3();
}
}
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Test3 test3 = new Test3();
Contents c = test3.newContents();
}
}
内部类还可以用于方法和作用域中。这种叫本地内部类 local inner classes,它们不能有访问控制符,因为它不属于宿主类,但它可以访问当前代码段的 finnal 变量以及宿主的所有变量。
......
void test() {
class Test2 {
......
}
Test2 t2 = new Test2();
......
}
......
匿名内部类 更改上面如下: 可以看到 可以定义时初始化成员变量,但要是final类型。
......
public Contents newContents(final int j) {
return new Contents() {
int i = j;
public int value() {return i;};
};
}
static 的内部类称为 嵌套类, 普通的内部类都包含着其宿主类的对象。
它的特点是:1 无需宿主类的对象就能创建嵌套类的对象
2 不能在嵌套类类里访问非static的宿主类对象。
普通的内部类里不能有static的成员。
为甚么使用内部类?
每个内部类都可以独立实现某个实现, 因此内部类不会受“宿主类是否已经继承了别的实现”的束缚。它彻底的解决了多重继承问题。
分享到:
相关推荐
Handler对象中使用匿名内部类或非静态内部类正确地释放消息避免内存泄漏或增加Native内存,在Android中,Handler对象通常会被用来在主线程(UI线程)中处理消息,以更新UI界面。当我们在Handler对象中使用匿名内部类...
Java 基础第七章内部类与异常类 Java 语言支持在一个类中定义另一个类,这样的类称做内部类。内部类和外嵌类之间存在着紧密的关系:内部类可以访问外嵌类的成员变量和方法,而外嵌类也可以使用内部类声明的对象作为...
Java 中的匿名内部类总结 Java 中的匿名内部类是一种特殊的内部类,它没有名字,因此也称为匿名类。匿名内部类是一种简洁的编程方式,能够简化代码编写,但它也有一些限制和特点。 匿名内部类的定义 匿名内部类是...
1.接口-简介 2.接口-作用 3.接口-定义方式 4.接口-实现 5.接口-与抽象类之区别 6.接口-应用示例(设计模式...内部类-局部内部类 12.内部类-匿名内部类 13.内部类-静态内部类 14.综述
Java内部类是Java言语的一个很重要的概念,《Java编程思想》花了很大的篇幅来讲述这个概念。但是我们在实践中很少用到它,虽然我们在很多时候会被动的使用到它,但它仍然像一个幕后英雄一样,不为我们所知,不为我们...
内部类分类
内部类可以分为非静态内部类、局部内部类、静态内部类和匿名内部类四种。 非静态内部类是指定义在另一个类的非静态成员中的类。非静态内部类可以访问外部类的成员变量和成员方法,同时也可以被外部类访问。在外部类...
java 内部类 实例内部类 局部内部类 匿名类 静态内部类 实例代码
java 匿名内部类的使用规范 java 匿名内部类的使用规范 java 匿名内部类的使用规范
Java内部类Java内部类Java内部类Java内部类Java内部类Java内部类Java内部类
相关android开发中内部类 匿名内部类 内部接口 对比说明
实验报告8++内部类与异常类
java 成员内部类使用 内部匿名类 方法参数匿名类 方法匿名类
成员内部类、局部内部类、静态内部类、匿名内部类
主要讲述了JAVA中内部类和匿名内部类的相关问题。
java的内部类
反射私有内部类的例子 反射私有内部类的例子反射私有内部类的例子
- 不同类型的内部类(静态内部类、成员内部类、局部内部类和匿名内部类)的区别和用法 - 内部类的优缺点以及使用场景 这些目标将帮助你理解和掌握内部类的概念,并能够在适当的时候使用内部类来解决问题...
java 利用反射获取内部类静态成员变量的值操作.docx
java内部类详解