课时127:static定义内部类

简介: 1.使用 Static 定义内部类2.使用 Static 定义内部接口3.Static 定义内部接口的主要功能

课时127:static定义内部类

摘要:

1. 使用 Static 定义内部类

2.Static 定义内部接口的形式

 

01.使用 Static 定义内部类

 

1.1 Static 的定义


在内部类上使用 Static 定义,那么这个内部类就变成“外部类 ”,Static 定义的都是独立于类的结构,所以该类结构就是一个独立的程序类。需要注意的是,Static 定义的不管是类还是方法只能够访问 Static 成员,所以 Static 定义的内部类只能够访问外部类中的 Static 属性或方法:

 

1.2 范例:使用 Static 定义内部类


class Outer  {
private static final String MSG  = "www.mldn.cn" ;
static class Inner  {
public void print ()  {
System.out.println(Outer.MsG)  ;
}
}
}

image.png

这个时候的 Inner 类是一个独立的类,如果此时要想实例化 Inner 类对象,只需要根据“外部类.内部类”的结构实例化对象即可,格式如下:外部类.内部类 内部类对象 = new 外部类.内部类()

这个时候的类名称带有“.”。

范例:实例化 Static 内部类对象

public class JavaDemo {
public static void main(stringargs [] ) {
Outer.Inner in =new Outer.Inner() ;
in.print () ;
}
}

image.png

 

02.Static 定义内部接口的形式

 

2.1 Static 定义的内部类


在开发之中发现类名称上提供有“.”这是一个内部类的结构,如果可以直接进行实例化,则这是一个 Static 定义的内部类。


以 Static 定义内部类的形式并不常用,Static 定义内部接口的形式最为常用。

 

2.2 范例:使用 Static 定义内部接口


interface IMessageWarp  {  // 消息包装
static interface IMessage  {
public string getContent () ;
    }
static interface IChannel { 
public boolean connect () ;  // 消息的发送通道
    }
Public static void send(IMessage msg,IChannel channel ) { 
If (channel.connect() )  {
System.out.println(msg.getContent () ) ;
} else {
System.out.println("消息通道无法建立,消息发送失败!") ;
          }
}
}
class DefaultMessage implements IMessageWarp.IMessage {
public String getContent() { 
return "www.mldn.cn" ;
}
}
class NetChannel implements IMessageWarp.Ichannel {
public boolean connect () {
return true ;
}
}
public class JavaDemo  {
public static void main(string args[]) { 
IMessageWarp.send(new DefaultMessage() , new Netchannel() ) ;
        }
}

image.png

 

2.3总结


使用 Static 可定义的内部接口,是属于一组相关的定义,有了外部接口之后,可以更加明确的描述出这些接口的主要功能。


这些接口都是作为一个统一的管理,所以内部接口在我们日后开发中,它会出现的比较多,而且在系统库学习中也会见到许多的内部接口加 Static 出现形式较多。

相关文章
|
6月前
|
人工智能 自然语言处理 前端开发
面向六个月后的 AI Code,也许影响的不只是前端
本文探讨了AI在编程领域的快速发展及其对程序员职业的影响。随着AI技术的不断进步,特别是Codebase Indexing和MCP(Model Context Protocol)等技术的应用,AI已能够更好地理解企业内部知识并生成符合项目规范的代码。文章指出,未来六个月AI代码生成将形成“规范驱动→知识沉淀→协议贯通→智能执行”的闭环架构,大幅提升开发效率。同时, Anthropic CEO Dario Amodei预测,初级程序员可能在18个月内被AI取代,强调了职业规划更新的重要性。文章还对比了Function Call与MCP的技术路线,并提供了相关参考链接。
572 71
面向六个月后的 AI Code,也许影响的不只是前端
|
7月前
课时121:异常处理模型
前面已经学习了异常处理格式: Try、Catch、Finally、Throws、Throw,现在合起来使用,下面通过一个具体的程序来演示一下。 要求定义一个可以实现除法计算的方法,在这方法之中,开发要求如下: (1)在进行数学计算开始与结束的时候,进行信息提示; (2)如果在程序之中,在进行计算的过程中,产生了异常,则要交给调用处进行异常处理。
|
8月前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
Dubbo 应用服务中间件 微服务
分布式事物【Hmily实现TCC分布式事务、Hmily实现TCC事务、最终一致性分布式事务解决方案】(七)-全面详解(学习总结---从入门到深化)(上)
分布式事物【Hmily实现TCC分布式事务、Hmily实现TCC事务、最终一致性分布式事务解决方案】(七)-全面详解(学习总结---从入门到深化)
196 1
|
12月前
|
运维 Linux
Linux查找占用的端口,并杀死进程的简单方法
通过上述步骤和命令,您能够迅速识别并根据实际情况管理Linux系统中占用特定端口的进程。为了获得更全面的服务器管理技巧和解决方案,提供了丰富的资源和专业服务,是您提升运维技能的理想选择。
695 1
|
12月前
|
负载均衡 算法 网络安全
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
阿里云平台WoSign品牌SSL证书是由阿里云合作伙伴沃通CA提供,上线阿里云平台以来,成为阿里云平台热销的国产品牌证书产品,用户在阿里云平台https://www.aliyun.com/product/cas 可直接下单购买WoSign SSL证书,快捷部署到阿里云产品中。
2662 8
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
|
9月前
|
存储 资源调度 JavaScript
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具。npm 是官方默认的包管理器,提供依赖管理、安装和更新等功能;cnpm 是由阿里巴巴开发的 npm 镜像,专为中国大陆用户优化,解决下载速度慢的问题;pnpm 通过硬链接技术提高安装速度并节省磁盘空间,特别适合磁盘资源紧张的环境。三者命令类似,但各有特色,开发者可根据需求选择合适的工具。
943 5
|
网络协议
LabVIEW中如何在网络上使用远程VI服务器
LabVIEW中如何在网络上使用远程VI服务器
203 2
|
传感器 开发框架 JSON
聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例
聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例
568 0