偶然发现这个有趣的东东,也许有些地方还能用得到,不过,用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 public ClassName(parameters) { // 初始化代码 } ``` 这里的`ClassName`是类的名称...
总之,类和对象是面向对象编程的基础,它们帮助我们将复杂的问题抽象为独立的实体,而构造方法则是创建和初始化这些实体的关键。理解并熟练运用这些概念,将使你的编程能力得到提升,并能更好地设计和实现复杂的系统...
在本篇文章中,我们将深入探讨PHP类的声明、实例化,以及构造方法和析构方法。 首先,让我们理解类的声明。在PHP中,我们可以使用`class`关键字来声明一个类。例如: ```php class Human { // 类的属性 public $...
1. **限制实例化**:通过私有化构造方法,可以防止外部类直接创建对象,从而控制对象的生命周期和数量,这对于资源管理或者全局唯一的类尤其重要。 2. **实现特定设计模式**:如前所述,单态模式要求类只能有一个...
3. 构造方法不能被声明为private,因为它们用于创建类的实例。 4. 类的实例化过程会自动调用构造方法。 最后,静态方法与非静态方法(实例方法)的区别在于,静态方法不依赖于类的实例,而是直接与类关联。它们不能...
当我们说“实例化”一个类时,意味着我们在内存中创建了一个该类的具体代表。例如: ```php $p = new Person(); ``` 这里,`$p`是一个指向`Person`类实例的引用,可以使用`->`运算符来访问其属性,如`$p->name`和`...
例如,如果类名为`Person`,那么它的构造方法也应该叫做`Person`。 2. **无返回类型**:构造方法不同于普通方法,它没有返回类型,即使`void`也不写。 3. **访问修饰符**:构造方法可以有各种访问修饰符,如`public`...
在Java编程语言中,实例化对象是创建类的实例,使其具有...总的来说,Java实例化对象是编程中的基本操作,它涉及到类的构造,内存分配,方法调用等多个核心概念。理解这一过程对于深入学习Java和面向对象编程至关重要。
每个Java类都默认有一个无参构造方法,如果程序员没有显式定义任何构造方法,Java编译器会提供一个默认的构造方法。这个默认构造方法不执行任何操作,只是简单地调用父类的无参构造方法。 3. 自定义构造方法 当...
Java会为每个类提供一个默认的无参构造方法,如果自定义了构造方法,系统不再自动提供。例如,可以定义一个有参构造方法来初始化`name`和`age`。 ```java public Student(String name, int age) { this.name = ...
如果类中没有显式定义构造方法,Java编译器会为类提供一个默认的无参构造方法,该方法不执行任何操作。但是,一旦开发者自定义了构造方法,编译器将不再提供默认构造器。 构造方法可以有参数,这样就可以在创建对象...
如果程序员没有显式定义任何构造方法,编译器会自动为类提供一个默认的无参构造方法。当子类继承父类时,它同样可以拥有自己的构造方法,既可以是无参的,也可以是有参数的。 ### 1. 子类构造方法的调用 子类构造...
程序员无法直接调用构造方法,而是由Java虚拟机在对象实例化时执行。 4. **初始化对象**:构造方法的主要任务是对新创建的对象进行初始化,通常包括设置对象成员变量的初始值。例如,将传入的参数赋值给对象的属性...
在同一个虚拟机范围内,Singleton的唯一实例只能通过提供的入口获得[例如getInstance()方法], 事实上,通过Java反射机制是能够实例化构造方法为private的类的,那基本上会使所有的Java单例实现失效,我们不考虑java...
通过本文的学习,读者应能深刻理解Java中构造方法的作用和使用方式,掌握构造方法与普通方法的区别,学会如何定义带参构造方法来初始化对象的属性,并理解实例化对象时构造方法自动调用的原理。此外,通过实际编程...
- 在 `TestClass` 中,构造方法被声明为私有,这意味着除了 `TestClass` 本身,其他任何类都无法直接实例化 `TestClass`。 ```java private TestClass() { System.out.println("构造方法被封装了!"); } ``` ...
- **构造方法**:`super`用于调用超类的构造器,确保子类在实例化时能正确初始化父类的状态。同样,`super`调用必须位于构造方法的第一行。 - **普通方法**:`super`用于调用被重写的超类方法,确保在子类中能够执行...