工具类
工具类中的方法被共享时,推荐使用类名.方法名的形式访问共享方法
将工具类构造函数私有化,使得外界无法产生工具类对象
例:
package day7.demo5;
/**
* @author NJR10byh
* @date 2022/7/20 16:26:23
* @description 构造方法私有化
*/
public class telTool {
// 构造方法私有化(工具类无需创造对象,外界也无法产生工具类对象)
private telTool() {
}
public static String telHide(String tel) {
String tel_hided = tel.substring(0, 3) + "****" + tel.substring(7, 11);
return tel_hided;
}
}
package day7.demo5;
import java.util.Scanner;
/**
* @author NJR10byh
* @date 2022/7/20 16:08:19
* @description 调用工具类,隐私手机号码
*/
public class task5 {
public static void main(String[] args) {
System.out.print("请输入手机号:");
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
System.out.println(telTool.telHide(s));
}
}
代码块
静态代码块
- 格式:static{}
- 特点:用static关键字修饰,随着类一起被优先加载,只执行一次,在main方法前执行
- 使用场景:可以在类加载的时候进行一些数据的初始化操作
构造代码块
- 格式:{}
- 特点:每次创建对象时,都会被执行,且在构造方法前执行
- 使用场景:初始化实例资源
单例模式
饿汉单例
在用类获取对象时,对象已经提前创建好了
- 1、定义一个类,要把构造器私有化
- 2、用一个静态变量存储一个对象
package day7.demo7;
/**
* @author NJR10byh
* @date 2022/7/20 17:46:44
* @description 单例模式 -- 饿汉单例
*/
public class task7 {
public static void main(String[] args) {
SingleInstance s1 = SingleInstance.instance;
SingleInstance s2 = SingleInstance.instance;
System.out.println(s1 == s2); // true
}
}
package day7.demo7;
/**
* @author NJR10byh
* @date 2022/7/20 17:47:17
* @description 单例模式 -- 饿汉单例
*/
public class SingleInstance {
public static SingleInstance instance = new SingleInstance();
// 构造器私有化
private SingleInstance() {
}
}
懒汉单例
在真正需要改对象的时候,才去创建一个对象
- 1、定义一个类,要把构造器私有化
- 2、用一个静态变量存储一个对象
- 3、提供一个返回单例对象的方法
package day7.demo8;
/**
* @author NJR10byh
* @date 2022/7/20 18:02:05
* @description 单例模式 -- 懒汉单例
*/
public class task8 {
public static void main(String[] args) {
SingleInstance instance1 = SingleInstance.getInstance();
SingleInstance instance2 = SingleInstance.getInstance();
System.out.println(instance1 == instance2); // true
}
}
package day7.demo8;
/**
* @author NJR10byh
* @date 2022/7/20 18:02:29
* @description 单例模式 -- 懒汉单例
*/
public class SingleInstance {
// 构造器私有化
private SingleInstance() {
}
private static SingleInstance instance;
public static SingleInstance getInstance() {
// 只有第一次来创建对象,才创建一个新的对象返回
if (instance == null) {
instance = new SingleInstance();
}
// 如果对象不为null,说明对象已经被创建,直接返回该地址即可
return instance;
}
}
练习代码: day7_code