课时102:静态导入

简介: 课时102介绍了静态导入的概念及其使用方法。静态导入允许直接调用类中的静态方法,无需通过类名前缀,简化代码书写。例如,通过`import static cn.mldn.util.MyMath.*;`,可以直接在主类中调用`add()`和`sub()`等静态方法,避免了实例化对象的开销,特别适用于工具类或功能集中的场景。

课时102:静态导入

摘要:

1.静态导入概念

2.静态导入

 

01. 静态导入的概念

 

假如现在有一个类,这个类中全部方法都是 Static 方法,按照传统的做法,要先导入程序所在的“包.类”,然后才可以通过类名称调用这些静态方法。

 

范例:定义一个 MyMath 数学类

新建 MyMath.java 文件

代码如下:

package cn.mldn.util;
public class MyMath {
    public static int add(int ... args){ //更高级的写法
        int sum=0;
        for(int temp:args){
            sum+=temp;
        }
        return sum;
    }
    public static int sub(int x,int y){
        return x-y;
    }
}

注:所有方法都是 Static 方法。这种方式避免了实例化对象的开销,直接通过类名访问静态方法,适用于工具类或功能集中的场景

范例:传统使用

新建 TestMath.java 文件

package cn.mldn.test;
import cn.mldn.util.MyMath; //导入其他包的类
public class TestMath {
    public static void main(String[] args) {
       System.out.println(MyMath.add(10,20,30)); //将原始的处理形式导入包
        System.out.println(MyMath.sub(30,20));
    }
}

进行编译,结果如下:

image.png

 

02.  静态导入

 

注:从 JDK1.5 开始对于类中的全部静态方法提供的特殊类是采用静态导入处理形式的

 

范例:静态导入处理

代码如下

package cn.mldn.test;
import static cn.mldn.util.MyMath.*; //加上static
public class TestMath {
    public static void main(String[] args) {
       System.out.println(add(10,20,30));   //无需类名称
        System.out.println(sub(30,20));
    }
}

 

注:使用静态导入后,可以直接在主类中调用静态方法,而无需使用类名作为前缀。 这就好比这些静态方法是直接定义在主类中的一样,可以简化代码编译后发现结果相同

image.png

相关文章
|
小程序 JavaScript 内存技术
用uni-app开发一个名为汉兜的游戏
虽然我是带队,但我希望尽可能让队员们自己去完成游戏的代码部分,我负责出出主意,提供一些美术,玩法创意上的支持。其实一开始大家头脑风暴组队领游戏创意的时候,汉兜这个游戏一直没人领,不得不说,不知道叫啥名队的小伙伴执行力很强,连给游戏起名字都很快,一点都不拖泥带水。
2280 0
用uni-app开发一个名为汉兜的游戏
|
5月前
|
人工智能 JSON 安全
Spring Boot实现无感刷新Token机制
本文深入解析在Spring Boot项目中实现JWT无感刷新Token的机制,涵盖双Token策略、Refresh Token安全性及具体示例代码,帮助开发者提升用户体验与系统安全性。
587 4
|
搜索推荐 容器
containerd环境搭建指南
关于如何搭建containerd环境的详细指南,包括通过yum和二进制方式安装containerd的步骤,以及安装和配置runc的必要性。
1890 3
containerd环境搭建指南
|
8月前
|
设计模式 Windows
课时109:单例设计
课时109介绍了单例设计模式,主要内容包括:1. 单例设计的具体内容;2. 操作步骤,如构造方法私有化、提供静态方法获取实例;3. 设计结构,确保只有一个实例化对象;4. 特点,如构造方法私有化和通过静态方法获取实例。单例模式分为懒汉式(首次使用时实例化)和饿汉式(类加载时实例化)。该模式常用于系统中需要唯一实例的场景,如Windows回收站。
|
8月前
|
前端开发 JavaScript
什么是深拷贝;深拷贝和浅拷贝有什么区别;深拷贝和浅拷贝有哪些方法(详解)
浅拷贝适用于只复制对象的第一层属性,且这些属性不是引用类型。深拷贝适用于需要完全独立的副本,包括对象和数组的嵌套结构。选择哪种拷贝方式取决于你的具体需求和场景。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
8月前
|
Java
课时15:普通代码块
代码块是用“{}”定义的结构,分为普通代码块、构造块、静态块和同步代码块。普通代码块位于方法内,用于拆分结构、避免变量冲突。例如,在`if`语句中定义的变量仅在该块内有效,防止与外部同名变量冲突。同步代码块则主要用于多线程环境。通过合理使用代码块,可以使程序结构更清晰、逻辑更严谨。
|
8月前
课时13:声明static方法
课时13介绍了Static方法的声明与使用。Static方法可通过类名直接调用,无需实例化对象。其主要特点是可以访问静态属性和其他静态方法,但不能直接访问非静态成员。通过示例代码展示了如何定义和调用Static方法,并解释了Static方法与普通方法的区别及限制。例如,在静态方法中不能使用`this`关键字,因为静态方法不依赖于具体的对象实例。此外,非静态方法可以调用静态方法,反之则不行,除非通过类的实例来调用。Static方法适用于描述公共属性或避免实例化对象时的操作。
108 1
|
8月前
课时14:static应用案例
课时14介绍了Static的应用案例,通过两个简单程序加深理解。第一个范例展示了如何使用静态变量统计对象实例化次数;第二个范例则演示了在未传递Title属性时,自动为属性赋值“NOTITLE-编号”,避免Null值问题。这两个例子都利用了静态成员的特性,确保所有对象共享同一份数据,从而简化编程逻辑。
|
11月前
|
设计模式 存储 前端开发
前端必须掌握的设计模式——单例模式
单例模式是一种简单的创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。适用于窗口对象、登录弹窗等场景,优点包括易于维护、访问和低消耗,但也有安全隐患、可能形成巨石对象及扩展性差等缺点。文中展示了JavaScript和TypeScript的实现方法。
481 13
|
运维 C# UED
C# 一分钟浅谈:异常处理的最佳实践
【9月更文挑战第5天】在软件开发中,异常处理对保证程序稳定性和用户体验至关重要。本文从基础概念入手,详细讲解C#中的异常处理策略,并通过代码示例说明如何有效实现异常管理。文章涵盖`try`、`catch`和`finally`块的使用,探讨常见问题如忽略异常和过度捕获,并提出最佳实践建议,如使用具体异常类型、记录异常信息及优雅地处理异常,助力开发者构建更健壮的应用程序。
690 1