我们说这个内部类依附于它的外部类而存在,可能的原因有:
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语言中的静态内部类,也称为嵌套类,是内部类的一种特殊形式,它与非静态内部类(也称为成员内部类)相比有着独特的特点和使用场景。在深入探讨其使用规范之前,我们先理解静态内部类的基本概念。 静态内部类不...
当只需要一次性使用一个类,并且这个类只需要实现一两个方法时,匿名内部类是一个很好的选择。它可以用于事件监听、回调函数等场景。 5. **StringBuffer reverse的使用**: `StringBuffer` 是线程安全的字符串操作...
4. **静态内部类**:静态内部类与实例内部类不同,它不需要外部类的实例就可以被创建。静态内部类不能直接访问外部类的非静态成员,但可以通过外部类的实例来访问。以下是一个静态内部类的例子: ```java public ...
内部类是Java编程语言中的一种特性,它允许我们在一个类的内部定义另一个类。这种设计模式在Android开发中尤其常见,因为它可以有效地管理代码和实现特定的功能。本文将详细探讨内部类、匿名内部类以及内部接口的...
内部类提供了增强封装的能力,使得内部类可以被隐藏在外部类中,仅对外部类可见,从而增加了代码的隐私性和安全性。同时,内部类能够提高代码的可读性和可维护性,因为它们通常用于实现特定的逻辑或与外部类有紧密...
这种内部类可以是成员内部类、局部内部类、匿名内部类或静态内部类,每种都有其特定的用途和使用场景。在这个"java内部类使用例子"中,我们将深入探讨这些类型,并通过实际代码来理解它们的工作原理。 首先,成员...
2. **局部内部类**: 定义在方法、构造器或块中的类被称为局部内部类。它的作用范围仅限于该方法、构造器或块。 3. **静态内部类**: 声明为static的内部类,称为静态内部类。它不持有对外部类的隐式引用,因此可以...
内部类的一个重要应用场景是在事件处理中,例如Swing或Android开发,它们经常用内部类来实现事件监听器。内部类可以轻松地访问外部类的成员,使得代码结构清晰且易于理解。 接下来,让我们转向Stream API。Java 8...
5. **使用场景**:当内部类不需要访问外部类的实例变量时,通常使用静态内部类。这有助于提高代码的性能,因为不需要为外部类创建额外的对象。 #### 三、示例分析 以下是一个具体的静态内部类示例,用于更深入地...
内部类的一个主要应用场景是创建与外部类密切相关的辅助类,比如在清单B中,`LinkedList`类的内部定义了`Node`类,这使得`Node`类的逻辑更加封装,仅在`LinkedList`内部使用,提高了代码的可读性和可维护性。内部类...
- **成员内部类**:这种类型的内部类是定义在外部类的一个成员位置上,它可以访问外部类的所有成员变量和方法。 - **静态内部类**:也称为静态嵌套类,这种内部类通过`static`关键字修饰,不能直接访问外部类的实例...
这体现了成员内部类的使用场景,即当需要一个类能够直接访问另一个类的私有成员时。 具体而言: - `Job`类简单地封装了一个工作的标题。 - `Employee`类封装了员工的姓名和一组工作,这里的工作数组`jobs`是私有的...
2. 局部内部类:定义在方法、构造器或者块中的类被称为局部内部类。它们的作用域仅限于该方法、构造器或块,因此它们可以访问其所在范围内的所有局部变量。然而,局部内部类不能声明静态成员,因为它们的生命周期与...
Java成员内部类是一种在类内部定义的类,它可以访问外部类的所有成员,包括私有成员。成员内部类的使用在Java编程中具有独特的价值,它能够帮助我们更好地封装代码,提高代码的组织性和可读性。以下是关于Java成员...
在Java编程语言中,内部类(也称为嵌套类)是一种强大的特性,它允许我们将一个类定义在另一个类的内部。这种设计模式可以提供更好的封装和抽象,同时还能在某些情况下简化代码。本文将深入探讨内部类和静态内部类的...