`
dxp4598
  • 浏览: 82975 次
  • 来自: 上海
社区版块
存档分类
最新评论

Java 重载构造器的选择

    博客分类:
  • Java
阅读更多

在Java类中可以重载多个构造器,只要他们有不同的参数声明。

然而在使用中却会碰到这种令人混淆的情况:

 

class A{

   

    public A(Object o){

       //...

    }

 

    public A(String[] strings){

       //...

    }

    

    //...

}

 

构造器调用的地方:

A a = new A( null );

 

这时虚拟机会使用的哪一个构造器来构造A对象呢?

答案:A

 

原因是Java重载的解析过程分为两个阶段:

   1,选取所有可以应用的方法或者构造器

   2,从1的列表中选择最精确的一个

 

Object是所有类型中最不精确的一个,所以null被看成String[]类型。

 

1
0
分享到:
评论

相关推荐

    深入理解java构造器机理

    “深入理解Java构造器机理” 在 Java 编程语言中,构造器是一种特殊的方法,用于初始化对象的创建。它是 Java 类中最重要的一个概念。下面将深入讨论构造器的机理、执行顺序、作用及与其他概念的区别。 一、构造器...

    java 构造器的调用

    - 重载构造器使得创建对象时可以根据需要提供不同的初始化数据。 6. **构造器链**: - 在复杂的继承体系中,构造器调用会形成一个链。每个子类构造器首先调用其父类的构造器,然后进行自身的初始化。 7. **构造...

    java 使用构造方法的重载计算课程的GPA值

    总结来说,通过Java的构造方法重载,我们可以灵活地创建具有不同初始状态的`Course`对象。`GPACalculator`类则负责根据这些课程的信息计算GPA,展示了面向对象编程在解决实际问题时的便利性。在实际开发中,可能还...

    Java重载构造原理与用法详解

    Java重载构造原理与用法详解是Java编程语言中的一种重要概念,它涉及到方法重载、构造器、可变参数、递归算法、封装等多个方面的知识点。下面将对这些知识点进行详细的解释和分析。 一、可变参数 可变参数是Java...

    Java 构造方法

    - **默认构造器**:如果程序员没有定义任何构造方法,Java编译器会自动提供一个无参的默认构造器。但一旦自定义了构造器,这个默认构造器将不再自动生成。 - **参数化构造器**:当需要在创建对象时传入特定值来初始...

    从零开始学JAVA第10章_构造器.ppt

    最后,构造器的名称与类名相同,而方法名则可以自由选择,但需遵循Java的命名规则。 10.2章节讲述了如何实例化对象,即通过new关键字在内存中创建一个对象。例如,如果我们有一个名为`Person`的类,我们可以这样...

    java 静态块实例块构造器调用

    每个类可以有多个构造器,根据参数不同进行重载。当创建对象时,构造器会被调用来初始化对象的属性。 ```java public class Parent { public Parent() { System.out.println("Parent constructor"); } } ``` ##...

    构造方法JAVA构造方法

    - **默认构造器**:当用户没有定义任何构造器时,Java会提供一个无参数的默认构造器。它执行基本的初始化,如将成员变量设置为默认值。 - **自定义构造器**:用户可以根据需要定义带参数的构造器,以实现更复杂的...

    java学习笔记 继承 重载 覆盖

    这样,系统就能够找到Java编译器javac和解释器java。 接着,我们了解Java的数据类型,包括基本类型(如byte、short、int、float、double、char)和引用类型(如String)。特别地,Java会将未指定类型的浮点数默认为...

    Java中构造器内部的多态方法的行为实例分析

    Java中构造器内部的多态方法的行为实例分析是Java编程语言中一个非常重要的知识点,本文将详细介绍Java中构造器内部的多态方法的行为,结合实例形式分析了java构造器内部多态方法相关原理、功能及操作技巧。...

    Java基础教程之构造器与方法重载

    总之,构造器在Java编程中扮演着关键角色,它们允许我们在创建对象时进行定制化初始化,而方法重载则增强了代码的灵活性和可读性。理解这两者是掌握面向对象编程的基础,也是编写高效、易于维护的Java代码的关键。

    java重载代码分享.zip

    下面将详细解释Java重载的概念、规则以及在实际编程中的应用。 1. **概念理解**: - 重载(Overloading)是多态性的一种表现,即在同一个作用域内,一个类可以有多个同名的方法,它们之间的区别在于传入的参数列表...

    构造器的解释.

    5. **默认构造器**:如果类中没有显式地定义任何构造器,Java编译器会自动提供一个不带参数的默认构造器。 #### 三、构造器的应用实例 下面通过两个例子来具体说明构造器的作用和使用方法。 ### 实例一:基本构造...

    corejava笔记

    5) 构造方法重载: 参数不一样的构造器 案例: Point.java 方法签名 = 方法名+参数类型列表 方法重载:a 方法名一样 b 方法参数不一样 也可以说: 方法名一样, 方法签名不同的方法 6) 默认构造器 4 对象的方法...

    java中的继承(子类调用父类构造方法还不懂).doc

    - **调用父类构造器**:最重要的是,`super`可以用于在子类构造器中调用父类的构造器。这对于初始化父类的状态非常有用。 - **追溯父类**:`super`不仅可以用于直接父类,还可以追溯到更远的祖先类。 **2. 调用父类...

    Java中构造方法的特点.pdf

    6. **默认构造器**:如果程序员在定义类时不定义构造方法,Java编译器会自动提供一个无参数的默认构造器。这个默认构造器不执行任何代码,仅用于对象的创建。但是,一旦程序员自定义了一个构造方法,系统就不会再...

    java基础补足和thinking In Java学习.rar

    默认构造器又称为无参构造器,在没有其他构造器的情况下,JAVA会帮助类生成一个默认的构造器即无参构造器,可以被省略不写。 5.4 this关键字 1. this关键字可以指当前对象,即当前类的对象 2. this关键字在同一...

    Java8当重载遇上lambdaJava开发Java经验技

    此外,Java8还引入了方法引用和构造器引用,它们可以进一步简化代码,并且在某些情况下可以与重载方法配合使用。方法引用允许我们直接引用已有方法,而不需要创建Lambda表达式,比如 `System.out::println`。这样,...

    Java构造方法.pdf

    一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。构造方法可以重载,以参数的个数、类型、顺序。 使用构造方法的注意事项 ...

    Java复习题及答案

    这些题目涵盖了Java的核心概念,如类、接口、构造器、包管理、异常处理、方法重载、对象初始化、事件处理和文件I/O。了解这些知识点对于理解Java编程至关重要。 此外,还提到了`final`关键字的用法,它不仅可以修饰...

Global site tag (gtag.js) - Google Analytics