【前端学java】语法练习-工具类的封装(13)

往期回顾:

前端中,我们经常会封装一些常用方法

js 复制代码
// utils.js
export function isEmpty(str){
	if(str === null || str ===  undefined || str === "") retrun true
  retrun false
}

便于在其他文件内引入使用

js 复制代码
// index.js
import { isEmpty } from "./utils.js"
let str = "1234"
let isHaveStr = isEmpty(str)

那么,java中我们如何封装一些方法方便使用呢?

语法封装的原则

Java中,没有前端这种"对象"概念、需要面向"类"来编程,因此,我们的方法自然是定义在一个类上。但是,使用类通常需要实例对象才能使用(new 一下),这很麻烦。

所以,我们的工具类在设计时,方法和属性 应该声明为静态的,可以直接使用。

我们复习一下类的静态成员静态方法的概念:

静态成员

静态变量是与类关联的变量,可以理解为类自身的属性,实例对象是木有的。静态变量可以用类名直接访问,而不需要创建类的实例。例如:

public class MyClass { static int count }

使用类名访问静态成员变量。例如:MyClass.count = 10;

静态方法

静态方法是与类关联的方法。与静态变量一样,无需创建类的实例即可访问静态方法。

使用类名调用静态方法。例如:MyClass.printMessage();


再者,工具类对外提供的属性或方法应该是公共的,所以用public声明。

封装示例

我们封装一个字符串的工具类 、提供空值判断生成随机字符串等功能

空值判断

java 复制代码
package 工具类;

public class My_Utils {
    public static void main(String[] args) {

    }
}

// 封装一个字符串工具类

class StringUtil {
    // 非空判断
    public static boolean isEmpty(String str){
        if (str == null || "".equals(str.trim())){
            return  true;
        }
        return  false;
    }
}

这个示例代码非常简单,里面有几个小概念,我们先熟悉下

  • 在Java中,=== 符号并不存在 、也没有undefined这个概念
  • Java使用 == 操作符来比较两个值是否相等,当比较两个基本数据类型(如 int、char、double 等时,== 操作符的效果是相同的
  • 在比较两个对象 的内容是否相等时,不能使用 == 操作符 !在Java中,对象比较的是它们的引用,而不是它们的值。在这种情况下,你应该使用 ****.equals() ****方法来比较两个对象的内容
  • trim()方法用于删除字符串开头和结尾的空白字符(包括空格、制表符、换行符等)。这个方法是从java.lang.String类中继承的。
  • String类的equals()方法被用于比较两个字符串是否相等。这个方法会判断两个字符串的内容是否完全相同。

我们验证下

嗯,非常丝滑~

生成随机字符串

java中生成uuid非常简单,借助UUID这个类就可以

java 复制代码
package 工具类;

import java.util.UUID;

public class My_Utils {
    public static void main(String[] args) {
        System.out.println(StringUtil.makeString());  
        // 打印结果:ec2443d4-da6f-48d8-8055-1fa1e67eec8d
    }
}
// 封装一个字符串工具类
class StringUtil {
    public static String makeString(){
        return UUID.randomUUID().toString();
    }
}
相关推荐
搬码后生仔1 小时前
asp.net core webapi项目中 在生产环境中 进不去swagger
chrome·后端·asp.net
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
Lx3522 小时前
Pandas数据重命名:列名与索引为标题
后端·python·pandas
小池先生2 小时前
springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失
java·spring boot·后端
小蜗牛慢慢爬行3 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
wm10434 小时前
java web springboot
java·spring boot·后端
龙少95435 小时前
【深入理解@EnableCaching】
java·后端·spring
溟洵7 小时前
Linux下学【MySQL】表中插入和查询的进阶操作(配实操图和SQL语句通俗易懂)
linux·运维·数据库·后端·sql·mysql
SomeB1oody10 小时前
【Rust自学】6.1. 定义枚举
开发语言·后端·rust
SomeB1oody10 小时前
【Rust自学】5.3. struct的方法(Method)
开发语言·后端·rust