提到私有构造方法之前,先来简单说明一下两个名词表示,一个是私有,一个是构造方法。私有用访问修饰符private表示。

Java 的访问修饰符是什么

访问权限修饰符是表明类成员的访问权限类型的关键字。使用这些关键字来限定程序的方法或者变量的访问权限。

它们包含:

public: 所有类都可以访问。

protected: 同一个包内以及所有子类都可以访问。

private: 只有归属的类才能访问默认 : 归属类及相同包下的子类可以访问。

什么是构造方法

在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法。构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时,类都会自动调用构造方法。

构造方法的特点

  • 构造方法没有返回值。
  • 构造方法方法的名称要与本类的名称相同。
/*public:构造方法修饰符Book:构造方法的名称
*/
public Book(){// 构造方法体
}

构造方法中可以为成员变量赋值,这样当实例化一个本类的对象时,相应的成员变量也将被初始化。如果类中没有明确定义构造方法,编译器会自动创建一个不带参数的默认构造方法。

私有构造方法

构造方法同其它方法一样,也可以用private修饰,私有的构造方法无法在本类外部使用,也就导致本类无法用new实例化,这样可以控制对象的生成。

比如,有一本书存在于图书馆里,那么你如果想看,那么你只能去图书馆借,而你自己不能私自翻印,即你不能创建这本书的对象,只能由图书馆管控这本书(借与不借,或者借出多久等),因为这本书的归属权为图书馆。

代码如下:

public class Book{// 私有构造方法private Book(){}// 静态公开方法,向图书馆借书static public Book libraryBorrow(){ // 创建静态方法,返回本类实例对象return new Book();}public static void main(String[] args){// 创建一个书的对象,不是new实例化的,而是通过方法从图书馆借来的Book book = Book.libraryBorrow();    }
} 

其实,这种私有构造方法及对象创建的方式就属于编程设计模式中的单例模式。

Java私有构造方法相关推荐

  1. 通过反射获取私有构造方法并使用

    package cn.learn_02;import java.lang.reflect.Constructor;/** 需求:通过反射获取私有构造方法并使用* private Person(Stri ...

  2. java构造器 权限_一文搞懂Java的 构造方法 和 访问权限

    目录 零.前言 Java是一门当今最火的编程语言之一,拥有很多现成可用的库,在我们编程生涯中,有着无比重要的地位. Java中有个概念叫做访问权限.它们是什么呢?今天我来详细讲解. 本文所有代码已经上 ...

  3. java单例模式构造器初始化_秒懂java单例模式,java私有构造器与一夫一妻制

    在<秒懂java,对于创建一个java对象,你真的会吗?>一文中,讲述了java如何创建一个对象以及如何更优雅的创建对象.此外,java里还有一种比较特殊的创建对象的方式:私有构造器创建对 ...

  4. java中构造方法和方法全面解析

    java中构造方法和方法全面解析 我相信大多说人都对构造方法.方法不陌生,而且很了解,但我也相信有很多像我这样的没有一个很好很清晰很全面的认识,今天就把它整理如下,希望能给大家带来点方便与帮助,也希望 ...

  5. java私有属性和私有方法_Java接口–历年来Java 9之旅–默认方法和私有方法

    java私有属性和私有方法 介绍 Java接口已经比Java版本进行了更多的演变,而Java 8和Java 9则有所发展.在本文中,我们将介绍接口在Java 8之前的样子以及如何在Java 8和Jav ...

  6. java私有属性和私有方法_Java 9中什么是私有的?

    java私有属性和私有方法 在进行面试时,我发现大多数应聘者都不知道Java中的private修饰符真正意味着什么. 他们对此有所了解,足以应付日常编码,但还远远不够. 这不成问题. 足够了解就足够了 ...

  7. java私有属性和私有方法_Java私有,受保护,公共和默认

    java私有属性和私有方法 您是Java程序员,所以您知道我在说什么. public修饰符使方法或字段可从应用程序中的任何位置访问. 那是简单的部分. 但是,您能告诉我protected和包私有的区别 ...

  8. 反射-获取java私有内部类反射类型、私有字段

    获取JAVA私有内部类反射类型 方式一 Class.forName("外部类完整路径$内部私有类类名"); 方式二 通过获取对应私有内部类的字段而获取 完整的类名 Class.fo ...

  9. java私有属性_java私有属性成员

    关于 java私有属性成员的搜索结果 回答 第一步我们首先需要了解java中的封装指的是什么,封装是一种将抽象性接口的实现细节都包装和隐藏起来的方法,它具有减少耦合,类内部结构可以修改,成员变量精准控 ...

最新文章

  1. Office 365用户现可分享含有效期的OneDrive文件链接
  2. 盘点几种MySQL复制的解决方案和常见的错误理解
  3. BZOJ 4422 Cow Confinement (线段树、DP、扫描线、差分)
  4. python的基本语法和语言_Python基本语法
  5. spring事务管理-注解配置aop事务(重点)
  6. Postman status: 415_415亩!白云首宗农村土地规模化流转成功签约
  7. 最长不下降子序列 (O(nlogn)算法)
  8. msm8937 64位开发概要
  9. 新手小白学吉他,如何掌握基础快速入门
  10. 方法引用错误:reason: no instance(s) of type variable(s) exist so that String conforms to Person
  11. Linux 腾讯云服务器账户创建流程
  12. matplotlib绘制直方图之基本配置——万能模板案例
  13. 淘宝高性能可伸缩平台架构简介
  14. vs2013的matconvnet_Windows底下编译MatConvNet工具包CPU版本
  15. Kotlin 学习 (一)
  16. 数字图像处理个人练习02--点运算、空域平滑、空域锐化
  17. 全国计算机二级考试各个科目使用的软件 在这里
  18. 英特尔 82801DB ICH4 - AC'97 Audio 控制器 [A-1] 声卡驱动安装!
  19. IOS 汉字拼音排序
  20. 客厅适合用射灯做基础照明吗?

热门文章

  1. 如何在微信小程序代码里面新增小程序直播插件?
  2. java Gecco的爬虫框架的使用
  3. MySQL8增量备份_mysql增量备份及恢复解决方案
  4. AR其实就在我们身边
  5. 网页js打开微信小程序示例
  6. matlab图像最暗,一种暗图像的亮度增强方法与流程
  7. CMake参考手册(草稿)
  8. mysql8 新特性总结
  9. PyTorch 源码解读之 torch.utils.data:解析数据处理全流程
  10. 李笑来录音暴露区块链乱象,没有信仰只有一群收割的投机者