课时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

相关文章
|
2月前
|
Java
课时47:主方法组成分析
主要讲解了Java中的主方法及其组成。首先,介绍了主方法的访问权限,包括public、private和static等关键字。然后,通过实例演示了如何使用位名称调用程序,以及如何在编译后执行。接着,讲解了如何设置启动参数,并通过空格分割将参数输出。
35 11
课时47:主方法组成分析
|
2月前
|
Java
课时65:final关键字
我今天分享的是 Java 中 Final 关键字的相关知识。主要分为以下三个部分。 1. Final锁死继承路 2. Final封印复写门 3. Final打造常量库
|
2月前
课时129:匿名内部类
1.匿名内部类的定义 2.匿名内部类的形式 3.匿名类的基本处理形式
|
2月前
|
Java
课时3:类与对象的定义及使用
在明晰了类与对象的关系之后,下面我们来了解一下在Java中类与对象的语法定义。
|
2月前
|
Java 开发者
课时98:泛型接口
本文聚焦Java泛型接口,阐述泛型不仅能在位(类)上定义,还可在接口中使用。通过实际代码示例,详细介绍泛型接口的定义以及子类实现泛型接口的两种方式,帮助读者理解其概念和应用,强调在实际编程中理解和掌握这些知识的重要性。 1.泛型接口的定义 2.泛型接口的子类实现方式
|
2月前
|
设计模式
课时99:泛型方法
泛型方法是将泛型标记写在方法上,使其能够处理多种数据类型。即使类未定义泛型,也可以使用泛型方法。例如,`IMessage<T>`接口和`MessageImpl<S>`类展示了泛型方法的使用。代码示例中,`JavaDemo`类通过泛型方法`fun(T... args)`返回泛型数组,并在`main`方法中调用该方法,传递整数参数。此外,工厂设计模式结合泛型可以简化接口和实现类的创建过程,减少重复代码,提高开发效率。
|
2月前
课时2:类与对象简介
既然提及了面向对象,那其中有两个极为重要的概念,我们必须率先明晰。要知道,面向对象是一个颇为庞大的话题,然而再庞大的话题也有其核心组成部分,而这核心部分便是类与对象。接下来,我们就针对类与对象展开分析,先来看看类与对象的简介。
|
2月前
|
设计模式 Java
课时89:工厂设计模式
课时89介绍工厂设计模式(Factory),涵盖接口的定义与使用、程序结构设计及工厂设计的核心概念。通过实例代码展示如何利用接口实现子类的向上转型,并通过工厂类解耦主类与子类的关系,从而实现更灵活和可扩展的设计。工厂模式使客户端无需关心具体子类的创建过程,仅需通过工厂类获取对象实例,简化了系统的维护和扩展。
|
2月前
|
Java
课时16:构造代码块
课时16介绍了构造代码块的概念及其在Java中的应用。构造代码块定义在类中,优先于构造方法执行,每次实例化对象时都会调用。示例程序展示了构造块和构造方法的执行顺序:构造块先执行,随后是构造方法。通过创建多个`Person`对象,可以清楚地看到这一特点。构造块用于初始化代码,确保每个新对象实例化时都能正确初始化。
|
2月前
|
Java
课时17:静态代码块
1. 静态代码块及其分类 2. 非主类中静态块定义 3. 静态代码块主要目的 4. 主类中静态代码定义
OSZAR »