当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

成立成员内部类的注意事项[Java编程]

赞助商链接



  本文“成立成员内部类的注意事项[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

注意事项一:在内部类中可以随便利用外部类的成员办法以及成员变量.

众所周知,在定义成员办法大概成员变量的时刻,可以给其加上一些权限的修饰词,以避免其他类的拜候.如在成员变量大概成员办法前面,加上Private关键字,则其他类就无法调用这个类中的成员办法或则和成员变量.但是,假如这个类有成员内部类,则不受这方面的限制.也就是说,在成员内部类中可以随便引用外部类的成员办法以及成员变量,即便这些类成员办法大概成员变量被修饰了private.如在成员外部类中定义了一个i变量,并且操纵private关键字来修饰.此时在其他类中是不可以引用这个私有成员变量的.但是这个类的成员内部类的办法中,则不但可以引用这个外部类的私有变量,并且还可以对其举行赋值等操作.这个赋值操作关于外部类也是有效的.即成员内部类可以更改外部类中私有变量的值.

注意事项二:要在外部类中实例化内部类对象的引用.

假如一个类定义在别的一个类中,成为成员内部类,此时一定要注意,内部类的实例一定要绑定在外部类的实例上.也就是说,要从外部类中初始化一个内部类的对象,此时内部类的对象就会绑定在外部类的对象上.这跟普通的类有所差别.普通的类,成立完之后,不一定即刻需求实例化.在需求用到这个对象的时刻,再举行实例化便可.但是,假如一个类成为别的一个类的成员内部类,则就差别了.必必要在外部类中实例化内部类对象的引用,以实现将内部类的实例绑定在外部类的实例上.简单的说,就是在定义外部类的时刻,假若有成员内部类,那么就不要望了在外部类中操纵new关键字来实例化内部类对象的引用.而关于外部类来说,则可以在需求的时刻再举行实例化.如此便可以保证,操纵外部类成立对象的同时成立了内部类的对象.从而可以保证内部类的实例绑定在外部类的实例上.

注意事项三:成员内部类中成员办法与成员变量的私有性.

作为成员内部类,可以随便引用外部类中的成员变量与成员办法.那么在成员内部类中定义的成员变量,外部类能否也可以随便拜候呢?答案能否定的.内部类可以拜候它外部类的成员,但是内部类的成员(如成员变量大概成员办法)只有在内部类的范围之内是可知的,不可以被外部类直接引用.如目前在外部类中定义了一个变量i,在内部类中定义了另一个变量ii.此时在成员内部类中,可以直接引用这个外部类中的变量i,也可以对其直接举行赋值,如i=5等等.但是在外部类中,则不可以直接引用内部类中的成员变量.如在外部类中,操纵ii=5的赋值语句改变这个变量的值,就属于语法错误,在编译的时刻就会呈现错误.假如外部类真的要引用内部类的成员,那也不是不可以.只是不可以举行直接的引用,而是要利用内部类对象引用的办法才可以调用内部类的成员变量.这一点程序开辟人员需求牢记.成员内部类与外部类彼此拜候彼此的成员办法限制是差别的.分外需求注意的是,假如在外部类和非静态办法之外实例化内部对象,则需求利用外部类.内部类的情势来拟定这个对象的范例.这非常的麻烦.为此要尽大概避免在外部类和非静态办法之外实例化内部类对象.再者,内部类对象会依靠于外部类对象,除非已经存在一个外部类对象,不然类中不会呈现内部类对象.简单的说,内部类对象与外部类对象之间的关系非常的精密.有时刻即像一对父子(成员内部类可以随便利用外部类的成员),有时刻又像是陌生人(外部类不可以直接利用内部类中的成员).作为一个呈现的程序开辟人员,必必要深化理解外部类对象与内部类对象的关系.因为在实际工作中,在外部类中定义成员内部类还是很常见的.只有理解他们彼此之间的关系,在编写利用程序中,才可以把控好他们.

注意实现四:利用this关键字获得内部类与外部类对象的引用.

在外部类和成员内部类中,都可以定义变量.成员内部类可以随便拜候外部类中的变量,而外部类不可以直接拜候内部类中的变量,只有通过利用内部类对象来引用内部类的成员变量.不过需求注意的是,在外部类中定义的变量与内部类中定义的变量名字可以相同.也就是说,在外部类中可以定义一个变量i,在内部类中也可以定义一个变量i.此时新的问题就出来了.由于在内部类中可以随便拜候外部类中成员办法与成员变量.但是此时成员内部类与外部类的变量名相同,那么假如要在内部类利用这个变量i,编译器怎么知道目前需求调用外部类的变量i,还是内部类的变量i呢?

在实际工作中,应当尽大概避免这种情形.即在定义变量名字的时刻,内部类中的变量名字尽大概不要与外部类中的变量名字相同.但是假如真的发生这种情形的话,Java编译器还是有手段可以办理这个变量名字的冲突问题.假如在类中的成员内部类中碰到成员变量名字与外部类中的成员变量名字相同,则可以通过利用this关键字来加以辨别.如目前有一个类名字叫做student.而在这个类中又成立了一个成员内部类,名字叫做age.目前在这两个类中各自定义了一个成员变量i,用来做循环之用.此时假如在成员内部类中调用这个变量,该若何举行辨别呢?普通情形下,假如利用this.i 的方法来调用变量,则表示这个变量是成员内部类中定义的变量.而通过利用student.this.i的情势调用变量时表示此时引用的是外部类的成员变量.也就是说,假如内部类中引用外部类中同名的成员,需求通过外部类迷名字.this.外部类成员名字的方法加以引用.并且,在引用成员内部类自己的定义的成员时也需求利用this关键字,以加以辨别.明显这非常的麻烦.为此笔者仍旧要夸大一遍,除非有非常特别的必要,不然的话要尽大概避两外部类与成员内部类中成员变量大概成员办法采取相同的名字.不然的话,会给后续的引用带来很大的麻烦.

从以上的总结中可以看出,成员内部类与外部类之间的关系确切很复杂.作为一个Java程序开辟人员,必必要理解内部类与外部类成员彼此之间引用的原则、内部类对象与外部类对象的关系.在编写代码的时刻,尽大概避免内部类与外部类中成员变量与成员办法的命名冲突.假如真的发生重名的话,要学会操纵this关键字来消除这个冲突.笔者上面谈的一些注意实现也是一些对比抽象的内容,需求开辟人员在实际工作中去领悟.


  以上是“成立成员内部类的注意事项[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 成立成员内部类的注意事项
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .