构造方法是私有的,则意味着无法从除自身之外的任何类访问它。这是Java提供的访问控制机制。
使用得当,它可以产生安全性和功能性。构造函数(如常规方法)也可以声明为私有。可能想知道为什么需要一个私有构造函数,因为它只能从它自己的类访问。
扩展资料:
工作原理
由四方面组成:
1,Java编程语言。
2,Java类文件格式。
3,Java虚拟机。
4,Java应用程序接口。
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类。
通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。
参考资料来源:百度百科-Java
如果构造方法是私有的,则意味着无法从除自身之外的任何类访问它。这是Java提供的访问控制机制。
如果使用得当,它可以产生安全性和功能性。构造函数(如常规方法)也可以声明为私有。您可能
想知道为什么我们需要一个私有构造函数,因为它只能从它自己的类访问。当一个类需要阻止调用
者创建对象时。私人建筑师是合适的。对象只能在内部构建。
一个应用是单例设计模式。该策略是该类中只应存在一个对象。所以没有其他类可以访问构造函
数。这确保了类的单实例存在。私有构造函数已在JDK中广泛使用,以下代码是Runtime类的一部
分。
public class Runtime {
private static Runtime currentRuntime = new Runtime ();
public static Runtime getRuntime () {
return currentRuntime ;
}
//不要让其他人实例化此类
private Runtime () {
} }
扩展资料:
私有化构造方法一般出现在单例模式中
单例模式是Gang of Four设计模式的一部分,它被归类为创造性设计模式。
就建模而言,它是最简单的设计模式之一,但另一方面,就使用的复杂性而言,这是最具争议的模
式之一。
在Java中,单例模式将确保在Java虚拟机中只创建一个类的实例。它用于提供对象的全局访问点。
在实际使用方面,Singleton模式用于日志记录,高速缓存,线程池,配置设置,设备驱动程序对
象。设计模式通常与工厂设计模式结合使用。此模式也用于Service Locator JEE模式。
将一个类的构造函数私有化,可以使得该类不被实例化,和不能被继承。要创建这个类的实例,唯一的办法是提供一个公共静态方法。这种方式被称为单例模式。
私有化代码示例如下:
package test;
class Some{
private Some(){}
public static void dosome(){
System.out.println("dnali");
}
}
public class Singeleton {
public static void main(String[] args) {
//Some s=new Soem();无法实例化Some的对象
Some.dosome();
}
}
扩展资料:
java 构造函数的执行过程
类初始化时构造函数调用顺序:
(1)、初始化对象的存储空间为零或null值;
(2)、调用父类构造函数;
(3)、按顺序分别调用类成员变量和实例成员变量的初始化表达式;
参考资料:百度百科-java 构造函数
构造方法私有化,也就是说,这个类的构造方法是私有的。比如:
public class Person{
private String name;
Private Person(String Name){ //私有的构造方法
this.name = name;
}
}
我们不能在外部实例化这个Person对象的类!
比如:
Public Class TestPerson{
public static void main(String args[]){
Person per = new Person(); //此步是错误的!因为你已经将person类的构造方法设置为
private 了
}
}
如果我们想在Person类的外部使用Person类的对象,只能在person类的内部实例化一个Person类的对象,然后调用这个对象,而不能再外部实例化新的对象。
public class Person{
private String name;
Private Person newPerson; //Person类唯一的实例化对象
Private Person(String Name){ //私有的构造方法
this.name = name;
}
newperson = new Person("百度知道");
Public Person getInstance(){ //将newperson返回给外部调用处!!!
return newperson;
}
}
外部的Person类的所有对象只能是对Person内部newperson对象的引用。
外部一千一万个对象也都只能是对Person内部newperson对象的引用。
因为外部定义的Person类对象没有实例化能力。这就是单例设计模式,从头至尾只有一个对象的实例(单例)
构造方法的作用是什么? 自动的做一些初始操作,让你的对象真正成为可用的有意义的对象,把对象的基本初始操作封装起来,这也是OO的基本特征。 分配