首页 > 编程语言 >JAVA私有构造函数---java笔记

JAVA私有构造函数---java笔记

时间:2024-03-05 17:15:49浏览次数:27  
标签:Singleton JAVA 私有 private --- instance 实例 构造函数

在Java中,构造函数是一种特殊的方法,它用于初始化新创建的对象。当我们创建一个类的实例时,构造函数会自动被调用。

构造函数可以有不同的访问修饰符,如publicprotecteddefault(即包级私有)和private。其中,private构造函数是Java中一种特殊的构造函数。

私有构造函数(Private Constructor)的特点和用途如下:

  1. 特点:

    • 构造函数被声明为private,这意味着它只能在类的内部被调用,而不能在类的外部被访问。
    • 由于私有构造函数的存在,外部代码无法直接通过new关键字创建该类的实例。
  2. 用途:

    • 单例模式:私有构造函数经常与单例模式一起使用。单例模式是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点。通过使构造函数为私有,可以确保外部代码无法创建新的实例,从而确保类的唯一性。
    • 工厂模式:在某些情况下,我们可能希望使用工厂方法来创建对象,而不是直接使用new关键字。私有构造函数可以与静态工厂方法结合使用,以实现这种目的。
    • 延迟初始化:有时,我们可能希望在第一次真正需要对象时才进行初始化,而不是在类加载时就进行。私有构造函数可以与静态内部类或其他延迟加载机制结合使用,以实现这种目的。

示例(单例模式):

 
public class Singleton {  
    private static Singleton instance;  
  
    // 私有构造函数  
    private Singleton() {  
    }  
  
    public static Singleton getInstance() {  
        if (instance == null) {  
            instance = new Singleton();  
        }  
        return instance;  
    }  
}

 

 

在上面的示例中,Singleton类有一个私有构造函数,因此外部代码无法直接创建Singleton的实例。但是,通过getInstance()方法,外部代码可以获取Singleton的唯一实例。

标签:Singleton,JAVA,私有,private,---,instance,实例,构造函数
From: https://www.cnblogs.com/WG11/p/18054431

相关文章

  • 3月5日-java随笔(雪花算法)
    一、简单介绍一下雪花算法原理1、雪花算法生成一个64bit的长整型标识符,其内部结构包含四个部分。首先,最左侧的一个bit通常被置为0作为符号位(在实际应用中往往无意义)。接下来的41bit用于存储自某个时间起点以来的毫秒级时间戳,以此确保生成的ID具有时间上的有序性。第三个组成部分......
  • Vue学习笔记33-生命周期
    示例一: <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>引入生命周期</title>......
  • 网页浏览器Chrome开发者调试工具-Console(控制台)
    前言全局说明网页浏览器Chrome开发者调试工具-Console(控制台)一、网页浏览器Chrome开发者调试工具-Console(控制台)控制台,可以用来打印变量值、计算等待类似于终端命令行,控制台是浏览器的命令行,只要显示页面能完成的控制器也不在话下。免责声明:本号所涉及内容仅供......
  • 动手学强化学习(八.2):double-DQN
    一、代码importrandomimportgymimportnumpyasnpimporttorchimporttorch.nn.functionalasFimportmatplotlib.pyplotaspltimportrl_utilsfromtqdmimporttqdmclassQnet(torch.nn.Module):'''只有一层隐藏层的Q网络'''de......
  • mybatis面试高频问题---执行流程/延迟加载/缓存
    mybatis一.mybatis执行流程理解了各个组件的关系Sql的执行过程(参数映射、sql解析、执行和结果处理)二.mybatis支持延迟加载1.立即加载查询用户信息的同时也可以查询到相关订单信息UserMapper:OrderMapper:UserTest.java打印输出用户信息执行结果:2.延迟加载f......
  • mint21.3 安装ADS2020.01 提示缺少libwebkitgtk-3.0-0
    参考之前的方法:https://www.cnblogs.com/zjxcyr/p/15705024.html但是/etc/apt/sources.list中增加:debhttp://cz.archive.ubuntu.com/ubuntubionicmainuniverse然后update就报错。$sudoaptupdateGet:1http://security.ubuntu.com/ubuntujammy-securityInRelease......
  • 1-8高灵敏度电容式水位检测芯片VK36W系列 电容式触摸IC原厂【FAE技术支持】
     产品型号:VK36W1D产品品牌:VINKA/永嘉微电封装形式:SOT23-6产品年份:新年份深圳市永嘉微电科技有限公司,原厂直销,原装现货更有优势!工程服务,技术支持,让您的生产高枕无忧!量大价优,保证原装正品。您有量,我有价!概述VK36W1D具有1个触摸检测通道,可用来检测水从无到有和水从有到无的......
  • spring面试高频问题---springboot自动配置
    springboot自动配置1.springboot自动配置原理自动配置主要依赖于@SpringBootApplication注解,其中还包含了三个注解@SpringBootConfiguration:该注解与@Configuration注解作用相同,用来声明当前也是个配置类。@ComponentScan:组件扫描,默认扫描当前引导类所在包及其子包。@Ena......
  • resurfaceio goreplay output-s3 minio 兼容处理
    实际上此问题与以前版本goreplay对于s3的支持是一样的参考处理添加了新的环境变量AWS_FORCE_PATH_STYLE以及AWS_DISABLE_SSL,具体代码在rongfengliang/goreplay-new/blob/resurface/s3_reader.go中参考使用exportAWS_ACCESS_KEY_ID=minioexportAWS_SECRET_ACCE......
  • spring面试高频问题---spring框架中常见的注解常见注解
    Spring-框架中常见的注解1.spring常见注解2.springmvc常见注解3.springboot常见注解......