`
wwty
  • 浏览: 542896 次
  • 性别: Icon_minigender_1
  • 来自: 北京-郑州
社区版块
存档分类
最新评论

内部类使用场景一:只被外部类所使用

阅读更多

我们说这个内部类依附于它的外部类而存在,可能的原因有:
1、不可能为其他的类使用;
2、出于某种原因,不能被其他类引用,可能会引起错误。
3、当前的类过大,比如某个方法,里面写了非常多的代码,需要重构,如果你想抽象到另外一个类里面,那么不妨考虑一下内部类,因为,这些代码是从当前类抽象出来的,只被当前类所使用,那么用内部类实现也是很好的。下面我们以一个大家熟悉的例子来说明。

这段时间做电信的短信下发的项目,需要对上行用户的手机号做特殊处理,然后下发短信,那么主要功能是下短信,但是在下发之前,需要对用户号码做出处理,满足下面下短信的时候使用。
public class SendSms implements SpInfo
{
          public String sendSms(String userID,String productID,int OPType)
          {
                  String res = null;
                  。。。
                  SendSms.AddressBean ab = new SendSms.AddressBean();//获得内部类的实例
                  //用内部类来加工处理用户号码
                  org.apache.axis.types.URI[] addressesuri = ab.getDownAddress(userID);
                  。。。

                  //下面开始组织soapheader,此处也可以用内部类来实现的。
                  RequestSOAPHeader soapHeader = DownHeader.downHeader_ismp(productID, addressesuri);
                  。。。
                  SMS downsms = new SMS();
                  res = downsms.sendSMS(addressesuri, senderName, charging, down_message,
                  receiptRequest, soapHeader);
              return res;
          }
         
          //内部类----此类只被当前的外部类所使用
          public class AddressBean
          {
                  public org.apache.axis.types.URI[] getDownAddress(String senderAddress)
                  {
                          org.apache.axis.types.URI[] addressesuri = null;
                          String proaddress = "tel:" + senderAddress;
                          String[] address = new String[] {proaddress};
                          addressesuri = new org.apache.axis.types.URI[address.length];
                          try
                           {
                                   for (int i = 0; i < address.length; i++)
                                   {
                                            addressesuri[i] = new URI(address[i]);
                                   }
                           }catch(Exception ex)
                           {
                                   ex.printStackTrace();
                           }
                          return addressesuri;
                  }
          }
}

分享到:
评论

相关推荐

    浅谈Java内部类的四个应用场景

    内部类的使用场景之一是当某个类仅需被其外部类使用时。这种情况下,将此类定义为内部类可以提高代码的封装性和可维护性。 ##### 示例:简易数据库连接池实现 在构建企业级Java应用程序时,数据库连接池是一个非常...

    java 内部类使用(内部匿名类)

    Java内部类是Java语言提供的一种独特机制,它允许在一个类的内部定义另一个类。这种设计模式使得代码结构更紧凑,可以更好地封装和隐藏实现细节,同时也增强了代码的复用性。内部类分为几种类型,包括成员内部类、...

    Java的内部类讲解案例代码(成员内部类、局部内部类、匿名内部类、静态内部类、外部类访问四种内部类、其他类访问四种内部类...)

    内部类在Java中广泛应用于各种场景,特别是当一个类与其外部类有紧密联系并且仅在该外部类中使用时。比如,你可以在一个类中定义一个私有的内部类,用于实现某种算法或者提供一个特定的服务。内部类的作用域仅限于其...

    内部类分类及应用

    匿名内部类适合使用场景包括:只用到类的一个实例、类在定义后马上用到、类非常小、给类命名并不会导致你的代码更容易被理解。 在使用匿名内部类时,要记住以下几个原则:匿名内部类不能有构造方法、匿名内部类不能...

    java 静态内部类的使用规范

    Java语言中的静态内部类,也称为嵌套类,是内部类的一种特殊形式,它与非静态内部类(也称为成员内部类)相比有着独特的特点和使用场景。在深入探讨其使用规范之前,我们先理解静态内部类的基本概念。 静态内部类不...

    java代码笔记2010-06-01:Java内部类 静态内部类 局部内部类 明明内部类;StringBuffer reverse的使用;

    当只需要一次性使用一个类,并且这个类只需要实现一两个方法时,匿名内部类是一个很好的选择。它可以用于事件监听、回调函数等场景。 5. **StringBuffer reverse的使用**: `StringBuffer` 是线程安全的字符串操作...

    java 内部类 局部内部类 匿名类 实例代码

    4. **静态内部类**:静态内部类与实例内部类不同,它不需要外部类的实例就可以被创建。静态内部类不能直接访问外部类的非静态成员,但可以通过外部类的实例来访问。以下是一个静态内部类的例子: ```java public ...

    内部类 匿名内部类 内部接口 对比说明

    内部类是Java编程语言中的一种特性,它允许我们在一个类的内部定义另一个类。这种设计模式在Android开发中尤其常见,因为它可以有效地管理代码和实现特定的功能。本文将详细探讨内部类、匿名内部类以及内部接口的...

    java内部类使用总结

    内部类提供了增强封装的能力,使得内部类可以被隐藏在外部类中,仅对外部类可见,从而增加了代码的隐私性和安全性。同时,内部类能够提高代码的可读性和可维护性,因为它们通常用于实现特定的逻辑或与外部类有紧密...

    java内部类使用例子

    这种内部类可以是成员内部类、局部内部类、匿名内部类或静态内部类,每种都有其特定的用途和使用场景。在这个"java内部类使用例子"中,我们将深入探讨这些类型,并通过实际代码来理解它们的工作原理。 首先,成员...

    Java4Android 35_内部类和匿名内部类

    2. **局部内部类**: 定义在方法、构造器或块中的类被称为局部内部类。它的作用范围仅限于该方法、构造器或块。 3. **静态内部类**: 声明为static的内部类,称为静态内部类。它不持有对外部类的隐式引用,因此可以...

    内部类的使用

    内部类的一个重要应用场景是在事件处理中,例如Swing或Android开发,它们经常用内部类来实现事件监听器。内部类可以轻松地访问外部类的成员,使得代码结构清晰且易于理解。 接下来,让我们转向Stream API。Java 8...

    静态内部类

    5. **使用场景**:当内部类不需要访问外部类的实例变量时,通常使用静态内部类。这有助于提高代码的性能,因为不需要为外部类创建额外的对象。 #### 三、示例分析 以下是一个具体的静态内部类示例,用于更深入地...

    使用内部和匿名类优化Java代码

    内部类的一个主要应用场景是创建与外部类密切相关的辅助类,比如在清单B中,`LinkedList`类的内部定义了`Node`类,这使得`Node`类的逻辑更加封装,仅在`LinkedList`内部使用,提高了代码的可读性和可维护性。内部类...

    Java内部类总结

    - **成员内部类**:这种类型的内部类是定义在外部类的一个成员位置上,它可以访问外部类的所有成员变量和方法。 - **静态内部类**:也称为静态嵌套类,这种内部类通过`static`关键字修饰,不能直接访问外部类的实例...

    java内部类的讲解

    这体现了成员内部类的使用场景,即当需要一个类能够直接访问另一个类的私有成员时。 具体而言: - `Job`类简单地封装了一个工作的标题。 - `Employee`类封装了员工的姓名和一组工作,这里的工作数组`jobs`是私有的...

    java中的内部类

    2. 局部内部类:定义在方法、构造器或者块中的类被称为局部内部类。它们的作用域仅限于该方法、构造器或块,因此它们可以访问其所在范围内的所有局部变量。然而,局部内部类不能声明静态成员,因为它们的生命周期与...

    java 成员内部类的使用规范

    Java成员内部类是一种在类内部定义的类,它可以访问外部类的所有成员,包括私有成员。成员内部类的使用在Java编程中具有独特的价值,它能够帮助我们更好地封装代码,提高代码的组织性和可读性。以下是关于Java成员...

    浅谈内部类与静态内部类的应用

    在Java编程语言中,内部类(也称为嵌套类)是一种强大的特性,它允许我们将一个类定义在另一个类的内部。这种设计模式可以提供更好的封装和抽象,同时还能在某些情况下简化代码。本文将深入探讨内部类和静态内部类的...

Global site tag (gtag.js) - Google Analytics