当前位置:  技术问答>java相关

Think in Java 大讨论一 ( 关于 Inner class )

    来源: 互联网  发布时间:2017-03-23

    本文导语:  我熟悉 C++ , 对面向对象编程也有相当的了解, 近日通过Think in Java 学习Java 感到对 Inner class 不是很理解:     在P267说 :         如果你定义了某个匿名的 inner class , 并且希望用到定义于匿名 inner class ...

我熟悉 C++ , 对面向对象编程也有相当的了解, 近日通过Think in Java 学习Java
感到对 Inner class 不是很理解:
 
  在P267说 :

        如果你定义了某个匿名的 inner class , 并且希望用到定义于匿名 inner
class 之外的某个对象, 编译器会限制该外部对象必须为 final.

        我想问, 为什么要限制对象为 final.

|
《Thinking in java》我没仔细看过,感觉不是一本初级Java书,所以Java语言的很多细节没有讲清楚。
Java里的class跟C++比要丰富的多,分类标准多样,但按照规范,总可以分为顶层类和嵌套类(nested class,指定义在其它类的body里)两种。嵌套类又可以细分为两种:成员类(member class)和本地类(local class,定义在代码块中);成员类分为静态德和非静态的,特性区别很大,非静态成员类真正称为内部类(inner class),但现在内部类被滥用了,所有嵌套类都叫成inner class了!本地类可分为匿名类和非匿名类,本地类被限制为不能访问所在代码块有效范围里的非final变量。呵呵,明白了吗?举个例子:
public class TopLevelClass {
    static class StaticMemberClass {};
    class InnerClass {};
    void f(final int a, int b) {
        final int c;
        int d;
        class NonAnonymousClass {
            void f() {
                //可以访问a,c;b,d不可见
            }
        };
        new NonAnonymousClass() {//匿名类,继承了NonAnonymousClass
            void f() {//覆盖其f()方法
                //
            }
        }.f();
    }
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 哪里还有Think in java!答者给分,谢谢
  • Think in Java
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • Think in java 源码
  • THINK IN JAVA版本问题!
  • 什么地方有 Think in java 的代码下载(50分)在线等候!!!
  • 新手求助!!哪里有《THINK IN JAVA》免费下载?
  • 《think in java》出第三版了!!!!
  • think in java书店有卖吗?
  • 有人能提供THINK IN JAVA 第二版的简体中文下载吗?
  • 关于Think in Java一书
  • Think第二版发布了!(本人开发的C语言跨平台开发库)
  • 哪里有THINK IN JAVA 下载呀?(中文的)
  • 请问《Think in Java》的作者的网站网址是多少?
  • 请问到哪儿能下载think in java.的电子版。
  • 各位高手,那有think in java 的电子书下载
  • 哪有Think In Java的中文版和关于Corba的书下载?
  • 高分征集Think in java(第2版)中文电子版
  • 谁有候捷的think in java 的电子书阿?请
  • 我记得有位大哥发给我一份中文版的think in java,能不能重发一次,谢谢!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3