欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

【Java】6.3 类成员

发布时间:2025/3/20 java 21 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Java】6.3 类成员 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一个Java类中只能包括:成员变量、方法、构造器、初始化块、内部类(包括接口、枚举)

单例类

单例类:某些时候要为某一个类仅允许创建一个实例(注释1)

要实现单例类

  • 构造器不能暴露,用private修饰,否则就可以创建多个实例
  • 要暴露一个方法,用public修饰,让这个方法去创建实例。由于程序必须通过该方法来获取实例,所以在调用该方法之前,肯定没有实例(这个时候要用过一个判断实例是否为null),因此只能通过类来调用 —— 该方法必须用static修饰(注释2
  • 使用静态field来缓存“已有的实例”,每次在获取实力之前,先判断是否能已有“缓存”实例,如果没有缓存过,就创建 ;否则直接返回“缓存”的实例
  • class Singleton{//使用一个类变量来缓存曾经创建的实例private static Singleton instance;//隐藏构造器private Singleton() {}//创建一个静态方法,以便可以让类来调用,用于返回Singleton实例//该方法可以追加自定义控制,保证只产生一个Singleton对象public static Singleton getInstance() {//如果instance为null,表明不存在instance对象//若果instance不为null,表明已经存在了instance对象,就创建一个instance对象if(instance == null) {instance = new Singleton();}return instance;}} public class SingletonTest {public static void main(String[] args) {//对于静态变量,要用静态类来调用方法来实现//因为没有构造器,所以也不能newSingleton s1 = Singleton.getInstance();Singleton s2 = Singleton.getInstance();//已知用==来判断类型时,会判断是否为用一个对象System.out.println(s1==s2); //会输出true,所以为同一个对象} }

    【注释1】频繁穿件对象、回收对象会带来系统的开销问题,导致系统性能下降

    【注释2】因为在调用方法之前还不存在对象,所用用该方法的不可能是对象,只能是类。又因为静态变量不能访问非静态变量,所以,方法必须由static修饰

    总结

    以上是生活随笔为你收集整理的【Java】6.3 类成员的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。