本人在看Android文档的时候发现有个Java语法还挺有意思的,就是Java Nested class,查看了sun的文档,原来是类里面的嵌套类。http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html
本人介绍一篇文章给大家看看:http://www.cn-java.com/www1/bbs/redirect.php?tid=13595&goto=lastpost&sid=D7zYoM
为什么要使用 Nested class???官方的解释如下
1、类在逻辑山的分组
2、增加封装性
3、代码可以更好地维护
Why Use Nested Classes?
There are several compelling reasons for using nested classes, among
them:
-
It is a way of logically grouping classes that are only used in one
place.
-
It increases encapsulation.
-
Nested classes can lead to more readable and maintainable code.
Logical grouping of classes
—If a class is useful to only one
other class,
then it is logical to embed it in that class and keep the two together.
Nesting such "helper classes"
makes their package more streamlined.
Increased encapsulation
—Consider two top-level classes, A and B,
where B needs access to
members of A that would otherwise be declared private
. By
hiding class B within class
A, A's members can be declared private and B can access them. In
addition, B itself can be hidden from the outside world.
More readable, maintainable code
—Nesting small classes within
top-level classes
places the code closer to where it is used.
分享到:
相关推荐
Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)
Java 面试题 经典 第一,谈谈final, finally, finalize的区别。...第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。 第四,&和&&的区别。 第五,HashMap和Hashtable的区别。
在上面的例子中,`StaticNestedClass`可以直接访问`OuterClass`的静态成员`str_2`,并通过持有`OuterClass`的实例引用`outer`来访问实例成员`str_1`及实例方法`print_instance()`。 #### 三、非静态嵌套类(内部类...
内部类有两种形式:静态内部类(Static Nested Class)和非静态内部类(Non-static Nested Class)。 - **非静态内部类**:非静态内部类需要一个外部类的对象来实例化,它可以直接访问外部类的非静态成员。这种...
Java编程语言中存在一些易混淆的概念,今天我们将探讨 Anonymous Inner Class、final、finally、finalize 的区别,Static Nested Class 和 Inner Class 的不同,&和&&的区别,HashMap 和 Hashtable 的区别,...
OuterClass.StaticNestedClass nestedObj = new OuterClass.StaticNestedClass(); ``` ##### 2.2 内部类 - **定义**:未被`static`关键字修饰的类被称为内部类。 - **特点**: - 必须依赖于外部类的实例存在...
OuterClass.StaticNestedClass nested = new OuterClass.StaticNestedClass(); ``` 总结起来,Inner Class和Static Nested Class的主要区别在于: 1. **依赖性**:Inner Class实例化需要外部类的实例;而Static ...
标题中的"xia__nested_class.rar_SWT"提示我们这个压缩包包含的是一个使用SWT实现的嵌套类示例,可能是一个Eclipse插件或独立应用。 SWT是JFace和RCP(Rich Client Platform)的基础,它们都是Eclipse框架的重要...
本文将详细解释JAVA程序员面试中的32个问题,涵盖final、finally、finalize的区别、Anonymous Inner Class、Static Nested Class、HashMap和Hashtable的区别、Collection和Collections的区别、断言的使用、GC的概念...
Java中的Static class详解及实例代码 Java中的Static class是指在Java中可以使用的静态实例变量、静态方法、静态块,还可以有静态类。静态类是指在一个类里面定义的静态内部类,也就是nested class。外部类中的静态...
第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。 第四,&和&&的区别。 这个问得很少。 第五,HashMap和Hashtable的区别。 常问。 第六,Collection 和 ...
Inner Class 是一个内部类,需要外部类对象来访问,而 Static Nested Class 不需要外部类对象。Inner Class 可以访问外部类对象的成员变量,而 Static Nested Class 不能。 4. &和&&的区别 & 是位运算符,用于...
Java中的静态内部类(Static Class),也称为嵌套静态类,是Java语言提供的一种独特机制,它允许我们在一个外部类内部定义一个静态的类。这种类的声明前面带有`static`关键字,与普通的内部类(非静态内部类)有所...
内部类分为几种类型,包括静态成员类(Static member class)、局部内部类(Local inner class)、匿名内部类(Anonymous inner class)以及嵌套接口(Nested interface)。在本讨论中,我们将主要聚焦于静态成员类...
本文将对 Java 面试题进行详解,涵盖 final、finally、finalize、Anonymous Inner Class、Static Nested Class、Inner Class、& 和&&、HashMap 和 Hashtable、Collection 和 Collections 等知识点。 一...
在Android开发中,Gson库是Google提供的一个强大的工具,它能够方便地将Java对象转换为JSON字符串,以及将JSON字符串反序列化回Java对象。当我们处理的数据结构包含嵌套的对象或数组时,Gson的这种能力显得尤为重要...
StaticNestedClass nested = new StaticNestedClass(); nested.display(); } } ``` #### 总结 内部类提供了强大的功能来组织和封装代码。通过理解不同类型的内部类以及如何使用它们,你可以更有效地编写清晰、...
5. 静态内部类单例(Static Nested Class): 这种方式在类加载时不会立即初始化单例,只有当getInstance()被调用时,内部类才会被加载,从而创建单例。`SingleInstance5.java`可能实现了这种模式。这种方法也避免...
在这个例子中,`NestedClass` 是 `OuterClass` 的静态嵌套类,可以在不创建 `OuterClass` 实例的情况下直接创建 `NestedClass` 的实例。 五、总结 嵌套类在Java等编程语言中提供了强大的工具,帮助我们编写更加...