`
yhef
  • 浏览: 69700 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

如何实例化构造方法为private的类

    博客分类:
  • Java
阅读更多
偶然发现这个有趣的东东,也许有些地方还能用得到,不过,用java.lang.Math来做实验是没有任何意义的。

package com.yhef.test.jdktest;

import java.lang.reflect.Constructor;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {

		Class clazz = Class.forName("java.lang.Math");
		Constructor[] declaredConstructors = clazz.getDeclaredConstructors();
		// 因为Math只有一个构造方法,所以我就不遍历了。
		Constructor constructor = declaredConstructors[0];
		// 设置可见性,不知这个方法设计的初衷到底是干啥用的,有时候挺烦人的。
		constructor.setAccessible(true);
		// 构造一个实例对象
		Math mathInstance = (Math) constructor.newInstance(null);

		System.out.println(mathInstance);
		System.out.println(mathInstance.PI);
		System.out.println(mathInstance instanceof Math);

	}
}


分享到:
评论

相关推荐

    构造方法JAVA构造方法

    - 抽象类的子类在实例化时,必须调用抽象类的构造方法来初始化父类的状态。 总结,Java构造方法在创建和初始化对象时起着至关重要的作用。通过理解并熟练运用构造方法,开发者可以更好地设计和实现类,提高代码的...

    java枚举类的属性、方法和构造方法应用实战

    本文将详细介绍 Java 枚举类的属性、方法和构造方法应用实战,结合实例形式分析了 Java 枚举类的定义、构造及相关应用操作技巧。 枚举类的属性 在 Java 中,枚举类是一种特殊的类,它可以拥有自己的属性。枚举类的...

    java 构造方法的资源

    当一个类被实例化时,Java会自动调用该类的构造方法来完成初始化工作。 二、构造方法的声明 构造方法的声明格式如下: ```java public ClassName(parameters) { // 初始化代码 } ``` 这里的`ClassName`是类的名称...

    类和对象、构造方法总结

    总之,类和对象是面向对象编程的基础,它们帮助我们将复杂的问题抽象为独立的实体,而构造方法则是创建和初始化这些实体的关键。理解并熟练运用这些概念,将使你的编程能力得到提升,并能更好地设计和实现复杂的系统...

    PHP类的声明与实例化及构造方法与析构方法详解

    在本篇文章中,我们将深入探讨PHP类的声明、实例化,以及构造方法和析构方法。 首先,让我们理解类的声明。在PHP中,我们可以使用`class`关键字来声明一个类。例如: ```php class Human { // 类的属性 public $...

    Java语言中的构造方法私有化.pdf

    1. **限制实例化**:通过私有化构造方法,可以防止外部类直接创建对象,从而控制对象的生命周期和数量,这对于资源管理或者全局唯一的类尤其重要。 2. **实现特定设计模式**:如前所述,单态模式要求类只能有一个...

    c#面向对象静态类、构造方法、静态方法介绍.zip

    3. 构造方法不能被声明为private,因为它们用于创建类的实例。 4. 类的实例化过程会自动调用构造方法。 最后,静态方法与非静态方法(实例方法)的区别在于,静态方法不依赖于类的实例,而是直接与类关联。它们不能...

    PHP的类、对象、构造方法。

    当我们说“实例化”一个类时,意味着我们在内存中创建了一个该类的具体代表。例如: ```php $p = new Person(); ``` 这里,`$p`是一个指向`Person`类实例的引用,可以使用`->`运算符来访问其属性,如`$p->name`和`...

    Java 构造方法

    例如,如果类名为`Person`,那么它的构造方法也应该叫做`Person`。 2. **无返回类型**:构造方法不同于普通方法,它没有返回类型,即使`void`也不写。 3. **访问修饰符**:构造方法可以有各种访问修饰符,如`public`...

    java实例化对象的过程

    在Java编程语言中,实例化对象是创建类的实例,使其具有...总的来说,Java实例化对象是编程中的基本操作,它涉及到类的构造,内存分配,方法调用等多个核心概念。理解这一过程对于深入学习Java和面向对象编程至关重要。

    Java构造方法解析.zip

    每个Java类都默认有一个无参构造方法,如果程序员没有显式定义任何构造方法,Java编译器会提供一个默认的构造方法。这个默认构造方法不执行任何操作,只是简单地调用父类的无参构造方法。 3. 自定义构造方法 当...

    实验三 类的定义、封装;构造方法的定义、重载

    Java会为每个类提供一个默认的无参构造方法,如果自定义了构造方法,系统不再自动提供。例如,可以定义一个有参构造方法来初始化`name`和`age`。 ```java public Student(String name, int age) { this.name = ...

    Java中的构造方法分析.pdf

    如果类中没有显式定义构造方法,Java编译器会为类提供一个默认的无参构造方法,该方法不执行任何操作。但是,一旦开发者自定义了构造方法,编译器将不再提供默认构造器。 构造方法可以有参数,这样就可以在创建对象...

    java 子类构造方法

    如果程序员没有显式定义任何构造方法,编译器会自动为类提供一个默认的无参构造方法。当子类继承父类时,它同样可以拥有自己的构造方法,既可以是无参的,也可以是有参数的。 ### 1. 子类构造方法的调用 子类构造...

    Java中构造方法的特点.pdf

    程序员无法直接调用构造方法,而是由Java虚拟机在对象实例化时执行。 4. **初始化对象**:构造方法的主要任务是对新创建的对象进行初始化,通常包括设置对象成员变量的初始值。例如,将传入的参数赋值给对象的属性...

    设计模式的代码样例

    在同一个虚拟机范围内,Singleton的唯一实例只能通过提供的入口获得[例如getInstance()方法], 事实上,通过Java反射机制是能够实例化构造方法为private的类的,那基本上会使所有的Java单例实现失效,我们不考虑java...

    Java零基础-构造方法.md

    通过本文的学习,读者应能深刻理解Java中构造方法的作用和使用方式,掌握构造方法与普通方法的区别,学会如何定义带参构造方法来初始化对象的属性,并理解实例化对象时构造方法自动调用的原理。此外,通过实际编程...

    Java中构造方法被别封装后的调用.docx

    - 在 `TestClass` 中,构造方法被声明为私有,这意味着除了 `TestClass` 本身,其他任何类都无法直接实例化 `TestClass`。 ```java private TestClass() { System.out.println("构造方法被封装了!"); } ``` ...

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

    - **构造方法**:`super`用于调用超类的构造器,确保子类在实例化时能正确初始化父类的状态。同样,`super`调用必须位于构造方法的第一行。 - **普通方法**:`super`用于调用被重写的超类方法,确保在子类中能够执行...

Global site tag (gtag.js) - Google Analytics