当前位置首页 > 百科资料> 正文

java 构造函数

2022-06-30 11:51:17 百科资料

构造函数是一种特殊的函数。其主要功能是用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。构造函数与类名相同,可重载多个不同的构造函数。在JAVA语言中,构造函数与C++语言中的构造函数相同,JAVA语言中普遍称之为构造方法。

  • 中文名 java 构造函数
  • 释    义 关于JAVA 的构造函数讲解
  • 特    点 方法名必须与类名相同
  • 又    称 java构造方法

​名词解释

  一般我们讲的"函数"就是"方法";

  构造函数=构造方法;

特点

  构造方法是一种特殊的方法,具有以下特点。

  (1)构造方法的方法名必须与类名相同。

  (2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。

  (3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。

  (4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。

  (5)构造方法可以重载,以参数的个数,类型,顺序。

构造函数

  java构造函数的继承问题//不能继承

  (1)子类只继承父类的默认(缺省)构造函数,即无形参构造函数。如果父类没有默认构造函数,那子类不能从父类继承默认构造函数。

  (2)子类从父类处继承来的父类默认构造函数,不能成为子类的默认构造函数。

  (3)在创建对象时,先调用父类默认构造函数对对象进行初始化,然后调用子类自身自己定义的构造函数。

  (4)如果子类想调用父类的非默认构造函数,则必须使用super来实现。

  (5)子类必须调用父类的构造函数。可以通过系统自动调用父类的默认构造函数,如果父类没有默认构造函数时,子类构造函数必须通过super调用父类的构造函数。

执行过程

  java 构造函数的执行过程

  类初始化时构造函数调用顺序:

  (1)初始化对象的存储空间为零或null值;

  (2)调用父类构造函数;

  (3)按顺序分别调用类成员变量和实例成员变量的初始化表达式;

  class Dollar {

  Money m = new Money();

  Rmb r = new Rmb();

  public Dollar() {

  System.out.println("Dollar is construct!");

  }

  public static void main(String[] args) {

  new Dollar();

  }

  }

  class Money {

  public Money() {

  System.out.println("Money is construct!");

  }

  }

  class Rmb {

  public Rmb() {

  System.out.println("RMB is construct!");

  }

  }

  输出结果:

  Money is construct

  RMB is construct

  Dollar is construct!

不同之处

  JAVA 与C#构造函数执行顺序的不同之处

  public static void main(String[] args)

  {

  Child child = new Child();

  }

  }

  class Parent

  {

  Parent()

  {

  System.out.println("to construct Parent.");

  }

  }

  class Child extends Parent

  {

  Child()

  {

  System.out.println("to construct Child.");

  }

  Delegatee delegatee = new Delegatee();

  }

  class Delegatee

  {

  Delegatee()

  {

  System.out.println("to construct Delegatee.");

  namespace ConsoleApplication1

  {

  public class Test

  {

  public static void Main(String[] args)

  {

  Child child = new Child();

  }

  }

  class Parent

  {

  public Parent()

  {

  Console.WriteLine("to construct parent");

  }

  }

  class{

  public Child()

  {

  Console.WriteLine("to construct Child.");

  }

  Delegatee delegatee = new Delegatee();

  }

  class Delegatee

  {

  public Delegatee()

  {

  Console.WriteLine("to construct Delegatee.");

  }

  }

  }

  结果是

  to construct Delegatee.

  to construct Child.

  to construct Parent.

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net