`

Java中的静态嵌套类和内部类

    博客分类:
  • Java
阅读更多
最近写基于Hadoop的程序,期间发现大量静态嵌套类的使用,虽然自己使用Java写程序也有一段时间了,但基本上是把它当作 C 的方便版本来用的.对于面向对象的那些知识基本忘的差不多了...最近国内校园招聘火热,发现Java几乎都是用来做J2EE开发,而对数据结构算法等要求较高的则几乎要求都是C/C++,看来还是得多写点C++方面的程序和项目阿。


class OuterClass {
    ...
    static class StaticNestedClass {
        ...
    }
    class InnerClass {
        ...
    }
}
内嵌类分两种,静态的(static nested class)和非静态的(inner class),前者无法访问外部类中的需要实例化的域和方法,后者可以,这是因为后者想要实例化必须先实例化外部类,而静态的内嵌类不需要(它可以独立于外部类被实例化)

为什么要使用内嵌类,在设计上有什么好处呢?
* It is a way of logically grouping classes that are only used in one place.
如果一个类仅仅对另外一个类有用,那么最好是将这两个类组织在一起,比如外部类是一个数据结构,想要实现一个在它上面的迭代器,则可以在这个类内部定义一个inner class来实现
* It increases encapsulation.
假设有两个类A和B,如果A类的域定义成了Private而B又想直接访问的话,可以将B定义成A的inner class,同时也对外界隐藏了B。
* Nested classes can lead to more readable and maintainable code.
分享到:
评论

相关推荐

    java静态内部类(嵌套类)

    java静态内部类(嵌套类)的实例 。嵌套类意味着: 1. 要创建嵌套类的对象,并不需要其外围类的对象。 2. 不能从嵌套类的对象中访问非静态的外围类对象。

    java和kotlin的内部类静态嵌套类

    简单的入门(上传的资源如果因版权、使用、内容完整度 等原因被举报并通过官方审核,将扣除通过该资源获得的全部积分)

    Java嵌套类和内部类详解

    主要介绍了Java嵌套类和内部类详解,本文讲解了什么是嵌套类及内部类、静态嵌套类、在外部类中定义内部类、在方法中定义内部类、匿名内部类等内容,需要的朋友可以参考下

    JAVA语法总结 - 内部类

    内部类分为成员内部类、静态嵌套类、方法内部类、匿名内部类。 几种内部类的共性: A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。 B、内部类不能...

    几行代码带你彻底搞懂Java内部类

    内部类基本概述语法格式成员内部类局部内部类匿名内部类静态嵌套类静态嵌套类和非静态嵌套类的区别 内部类 基本概述 当一个类的定义放在另一个类的实体时,则该类叫做内部类,该类所在的类叫做外部类 在一个类体中...

    (超赞)JAVA精华之--深入JAVA API

    1.2.2 静态嵌套类 1.2.3 在外部类中定义内部类 1.2.4 在方法中定义内部类 1.2.5 匿名内部类 1.2.6 内部类使用的其它的问题 1.3 文件和流 1.3.1 什么是数据流 1.3.2 InputStream 的方法有: 1.3.3 OutputStream 的...

    JAVA SE学习精华集锦

    1.2.2 静态嵌套类 48 1.2.3 在外部类中定义内部类 48 1.2.4 在方法中定义内部类 49 1.2.5 匿名内部类 49 1.2.6 内部类使用的其它的问题 50 1.3 文件和流 51 1.3.1 什么是数据流 51 1.3.2 InputStream 的方法有: 51 ...

    详细分析内部类的发生内存泄漏的原因

    如果您已了解静态类和内部类,则应该熟悉使用Java代码中的嵌套类的基础知识。在这个相关的技巧中,我将带您了解嵌套类的陷阱之一,这是内部类在JVM中导致内存泄漏和内存不足错误的潜力。 之所以会发生这种类型的内存...

    Java开发技术大全(500个源代码).

    示例描述:本章学习对象和类。 accessMember.java 访问成员变量示例 constructNoPara.java 无参数的构造方法 constructWithPara.java 带参数的构造方法 declareDefault.java 缺省访问权限的使用 declarePrivate...

    java笔试题,java程序员常见的笔试

    Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象

    java面试题大全-基础方面

    Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 ...

    java 语言中常见易错知识点

    Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 ...

    java面试宝典

    注: 静态内部类(Inner Class)意味着1创建一个static内部类 的对象,不需要一个外部类对 象,2 不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是...

    Java中的匿名内部类小结

    java内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类。这篇文章主要介绍了Java中的匿名内部类的相关资料,需要的朋友可以参考下

    Java内部类的一些总结

     内部类分为: 成员内部类、局部内部类、静态嵌套类、匿名内部类 。  1.成员内部类  成员内部类是普通的内部类,它的定义为位于另一个类的内部,形如下面的形式:  class Outter {  private int age = 12;...

    C/C++ 局部类和嵌套类

    局部类  局部类是指在[removed];” onClick=”[removed]tagshow(event, ‘函数’);” target=”_self”>函数中定义类。...  c++内部类与java内部类大的区别是:  c++的内部类对象没有外部类对象的指针

    Java程序员面试陷阱大全.doc

    Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。  注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类...

    java基础知识

    Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象

    Java语言程序设计实验指导书

    3 对象和类 编写程序实现类和对象的操作,掌握构造函数与静态成员的使用。 4 继承与多态 编写程序实现类的继承、多态的实现。 5 抽象类、接口与内部类 编写程序实现类的继承、与接口的编写。 6 异常 编程实现处理...

Global site tag (gtag.js) - Google Analytics