现在的位置:首页 > 软件开发技术 > 新闻详情

java中创建成员内部类的注意事项

  在java的学习中,成员内部类与外部类之间的关系很复杂,淄博软件开发的软件开发工程师给出了分析此类关系的几点注意事项。
  注意事项一:在内部类中可以随意使用外部类的成员方法以及成员变量。
  众所周知,在定义成员方法或者成员变量的时候,可以给其加上一些权限的修饰词,以防止其他类的访问。如在成员变量或者成员方法前面,加上Private关键字,则其他类就无法调用这个类中的成员方法或则和成员变量。
  但是,如果这个类有成员内部类,则不受这方面的限制。也就是说,在成员内部类中可以随意引用外部类的成员方法以及成员变量,即使这些类成员方法或者成员变量被修饰了private。如在成员外部类中定义了一个i变量,并且利用private关键字来修饰。此时在其他类中是不能够引用这个私有成员变量的。但是这个类的成员内部类的方法中,则不仅可以引用这个外部类的私有变量,而且还可以对其进行赋值等操作。这个赋值操作对于外部类也是有效的。即成员内部类可以更改外部类中私有变量的值。
  注意事项二:要在外部类中实例化内部类对象的引用。
  如果一个类定义在另外一个类中,成为成员内部类,此时一定要注意,内部类的实例一定要绑定在外部类的实例上。也就是说,要从外部类中初始化一个内部类的对象,此时内部类的对象就会绑定在外部类的对象上。这跟普通的类有所不同。普通的类,创建完之后,不一定马上需要实例化。
  在需要用到这个对象的时候,再进行实例化即可。但是,如果一个类成为另外一个类的成员内部类,则就不同了。必须要在外部类中实例化内部类对象的引用,以实现将内部类的实例绑定在外部类的实例上。简单的说,就是在定义外部类的时候,如果有成员内部类,那么就不要望了在外部类中利用new关键字来实例化内部类对象的引用。而对于外部类来说,则可以在需要的时候再进行实例化。
  如此就可以保证,利用外部类创建对象的同时创建了内部类的对象。从而可以保证内部类的实例绑定在外部类的实例上。
  注意事项三:成员内部类中成员方法与成员变量的私有性。
  作为成员内部类,可以随意引用外部类中的成员变量与成员方法。那么在成员内部类中定义的成员变量,外部类是否也可以随意访问呢?答案是否定的。内部类可以访问它外部类的成员,但是内部类的成员(如成员变量或者成员方法)只有在内部类的范围之内是可知的,不能够被外部类直接引用。如现在在外部类中定义了一个变量i,在内部类中定义了另一个变量ii。此时在成员内部类中,可以直接引用这个外部类中的变量i,也可以对其直接进行赋值,如i=5等等。但是在外部类中,则不能够直接引用内部类中的成员变量。如在外部类中,利用ii=5的赋值语句改变这个变量的值,就属于语法错误,在编译的时候就会出现错误。如果外部类真的要引用内部类的成员,那也不是不可以。只是不能够进行直接的引用,而是要使用内部类对象引用的方法才能够调用内部类的成员变量。这一点程序开发人员需要切记。成员内部类与外部类相互访问彼此的成员方法限制是不同的。特别需要注意的是,如果在外部类和非静态方法之外实例化内部对象,则需要使用外部类。内部类的形式来制定这个对象的类型。这非常的麻烦。为此要尽量避免在外部类和非静态方法之外实例化内部类对象。再者,内部类对象会依赖于外部类对象,除非已经存在一个外部类对象,否则类中不会出现内部类对象。简单的说,内部类对象与外部类对象之间的关系非常的紧密。有时候即像一对父子(成员内部类可以随意使用外部类的成员),有时候又像是陌生人(外部类不能够直接使用内部类中的成员)。
  从以上的总结中可以看出,成员内部类与外部类之间的关系确实很复杂。作在编写代码的时候,尽量避免内部类与外部类中成员变量与成员方法的命名冲突。如果真的发生重名的话,要学会利用this关键字来消除这个冲突。笔者上面谈的一些注意实现也是一些比较抽象的内容,需要开发人员在实际工作中去领悟。
  所以,为一个java程序开发人员,必须要了解内部类与外部类成员相互之间引用的准则、内部类对象与外部类对象的关系。Java内容博大精深,需要开发人员在工作的过程中去领悟。

想要了解更多详情欢迎来电咨询18678812288,或登陆网址www.wfydkj.net。联系人:王经理。

软件开发行业资讯

公司新闻

软件开发成功案例 查看更多+

  • 淄博、潍坊检察机关检察人员分类

    淄博、潍坊检察机关检察人员分类

  • 淄博交规速成系统|潍坊交规考试软

    淄博交规速成系统|潍坊交规考试软

  • 检察院网络服务大厅软件平台

    检察院网络服务大厅软件平台

  • 企业在线考试系统

    企业在线考试系统

  • 党员在线考试系统

    党员在线考试系统

  • 赢德P2P网贷系统

    赢德P2P网贷系统

  • 淄博心理测评软件|潍坊心理测评系

    淄博心理测评软件|潍坊心理测评系

  • 潍坊内部培训管理系统|淄博出国留

    潍坊内部培训管理系统|淄博出国留

  • 潍坊物流软件开发|淄博快递软件开

    潍坊物流软件开发|淄博快递软件开

  • 狠刹“四风”网络监督平台软件

    狠刹“四风”网络监督平台软件

  • 党员领导干部德廉知识在线学习测

    党员领导干部德廉知识在线学习测

  • 潍坊在线考试系统|淄博在线考试软

    潍坊在线考试系统|淄博在线考试软

  • 菏泽新巨龙煤矿采掘资料达标管理

    菏泽新巨龙煤矿采掘资料达标管理

  • 科技信息评价信息系统

    科技信息评价信息系统

  • 绩效考核系统

    绩效考核系统

  • 济钢炼铁厂管理信息系统

    济钢炼铁厂管理信息系统

  • 国税房产企业所得税监控管理系统

    国税房产企业所得税监控管理系统

  • 人力资源管理信息系统

    人力资源管理信息系统

  • 三维数字矿山信息系统

    三维数字矿山信息系统

  • 展屏系统

    展屏系统

无标题文档