`
anynew2012
  • 浏览: 4265 次
社区版块
存档分类
最新评论

java 构造方法私有的用途

阅读更多
    在一个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类对象没有实例化能力。这就是单例设计模式,从头至尾只有一个对象的实例(单例)
分享到:
评论

相关推荐

    java私有构造函数

    ### Java中的私有构造函数:理解其特殊用途与设计模式应用 #### 一、引言 在Java编程语言中,构造函数(Constructor)是用于初始化新创建的对象的关键组成部分。默认情况下,构造函数的访问级别设置为`public`,...

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

    在Java编程语言中,构造方法和普通方法是两种不同的成员函数,它们各自有着特定的用途和规则。构造方法主要用于初始化类的新实例,而普通方法则是完成特定任务的代码块。 构造方法的关键特性包括: 1. **名称匹配*...

    effective-java.pdf

    从提供的部分节选内容来看,文档专注于讨论在Java中使用静态工厂方法的好处及其与构造方法的区别,以下是对这些内容的详细展开。 1. 静态工厂方法与构造方法的区别 在Java中,获取类的实例通常是通过构造方法来实现...

    Java面向对象总结

    4. **调用子类的构造方法时,会先调用父类的构造方法**:默认情况下,如果子类没有显式地调用父类的构造方法,则会隐式地调用父类的无参构造方法。如果需要调用有参构造方法或其他构造方法,可以通过`super`关键字...

    理解构造器--构造器和方法的区别

    在修饰符方面,构造器与方法有一些共同点,比如它们都可以具有公共、保护、私有或默认的访问修饰符。但构造器不能声明为抽象、最终、本地(native)、静态或同步的,这些都是方法可以具有的非访问性修饰符。 返回...

    java2python--java代码转python工具

    2. 方法和函数:Java的方法在Python中被映射为函数,包括构造函数、抽象方法和重载方法。Python不支持重载,所以转换可能需要合并相似功能的重载方法。 3. 控制流:Java的if、for、while等控制结构在Python中有类似...

    java面向对象编程总结

    - **`this`** 关键字用于引用当前对象,它可以用来区分同名属性和方法,也可以在构造方法中调用其他构造方法,或者作为方法的参数传递。 - **`super`** 关键字则用来引用父类的实例,它可以访问父类的成员,并调用...

    Java基础知识精华总结

    以上是对Java基础知识的一些核心概念的总结,涵盖了对象初始化、继承、构造方法、访问控制符、抽象类、final关键字、接口、多重继承、接口和类的嵌入以及异常处理等方面,对于深入理解Java编程语言提供了坚实的基础...

    JAVA SE基础题

    - 如果类中没有定义任何构造方法,Java会自动生成一个默认的无参构造方法。 #### 21. 调用对象的成员变量和方法 - 使用`.`运算符来访问对象的成员变量和调用其方法。 #### 22. 直接使用类名访问类成员变量和方法的...

    Java语法总结 - 内部类

    匿名内部类可以使用在外部类的方法和构造方法中。 内部类是Java语言中的一种特殊类别,它可以访问外部类的所有成员变量和方法,包括私有的变量和方法。内部类可以分为四种:成员内部类、静态嵌套类、方法内部类和...

    java反射基本方法测试

    Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。...在`TestReflect`这个测试中,你可以实践这些基本反射方法,理解它们的工作原理和用途。

    java反射经典实例

    在本“Java反射经典实例”中,我们将深入探讨这个主题,了解如何利用反射来访问和修改私有属性以及调用私有方法。 1. **反射的概念与用途** - 反射机制是在运行时分析类的能力,它允许我们获取类的信息(如类名、...

    java反射调用实例代码

    1. **动态执行构造方法**:通过`Class`对象的`getConstructors()`或`getDeclaredConstructors()`方法,我们可以获取类的所有构造器。然后使用`newInstance()`方法来创建对象,传入构造器所需的参数。例如: ```java...

    java面向对象基础

    构造方法可以重载,即同一个类中可以有多个构造方法,但它们的参数列表必须不同。 #### 七、重载 重载(Overloading)是指在同一个类中定义多个同名方法,但这些方法的参数列表不同。重载提供了灵活性,使得同一个...

    Tedu一段Java面向对象之继承

    - **默认构造方法**:如果没有显式定义构造方法,Java会自动提供一个无参构造方法。一旦定义了构造方法,这个默认的无参构造方法将不再提供。 #### 二、继承详解 **1. 继承的概念** - **定义**:继承是指一个类...

    Java面试题.docx

    一个类可以定义多个构造方法,但只能有一个无参数的构造方法。 main方法 main方法是Java程序的入口点,用于启动程序。main方法必须写在类里面,Java程序中能够有多个main方法,但只能有一个入口点。 继承 Java...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    p1 调用缺省的构造方法(即没有参数),p2 则调用带参数的构造方法。p1、p2 分别对 应于不同的内存空间,它们的值是不同的,可以完全独立地分别对它们进行操作。虽 然 new 运算符返回对一个对象的引用,但与 C、C++中的...

    如果我将构造函数声明为私有,可以在另一个类中调用此构造函数

    另外,如果我们确实需要在不同类中使用私有构造函数,可以使用工厂方法或者友元类(friend class,Java中没有直接支持这一概念,但可以通过内部类或者持有对方的引用来实现类似效果)。工厂方法是一种设计模式,它...

    Java教程(word格式)

    在深入探讨Java编程的奥秘之前,让我们首先明确几个关键概念:面向对象的程序设计(Object-Oriented Programming, OOP)、类(Class)、对象(Object)、属性(Attributes)、方法(Methods)、构造方法...

Global site tag (gtag.js) - Google Analytics