当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>Java入门

Java编程那些事儿59—类(二)

    Java编程那些事儿系列文章(全集目录)

    8.2.2.3 构造方法声明

    构造方法(Constructor),也称作构造函数、构建器等,是初学者在学习时最容易混淆的概念之一。下面首先讲述构造方法和方法的区别。

    构造方法和方法无任何关系,只是在翻译时名称比较类似罢了。而且构造方法和方法的功能不同,声明和调用的语法也不相同。

    构造方法的功能:实现类这种数据类型的变量的初始化。由于类是一种复合数据类型,而复合数据类型的变量也比较复杂,所以专门需要对该类变量进行初始化,则语法上提供了专门的结构——构造方法。这就是构造方法出现的原因。而方法实现的是逻辑的功能,对应于逻辑上的算法,更多的是实现程序逻辑。所以构造方法是语法结构,而方法是逻辑功能,两者之间根本无关。

    构造方法声明的语法格式:

          访问控制符 构造方法名称(参数列表){
              构造方法体;
          }

    在该语法中,访问控制符指声明的构造方法被访问的权限,构造方法名称是标识符,语法上要求构造方法的名称必须类名相同,后续小括号内部是参数列表,其语法格式和方法参数列表的语法格式相同。

    下面是构造方法的示例:

          public class Box{
              int length;
              int width;
              int height;
              public Box(){
                   length = 10;
                   width = 10;
                   height = 10;
              }
              public Box(int l,int w,int h){
                   length = l;
                   width = w;
                   height = h;
              }
          }

    在该Box类中,声明了两个构造方法,一个没有参数,一个包含三个int类型的参数。在没有参数的构造方法中,将三个属性的值都初始化为10.带参数的构造方法中,可以传递进来三个参数,然后在构造方法内部依次把参数的值赋值给属性。

    通常情况下,构造方法的声明放在属性声明和方法声明的中间。

    一个类内部的构造方法可以有任意多个,但是要求这些构造方法不能相同。因为在一个类内部构造方法的名称都是相同的,所以只要参数列表相同的构造方法都是相同的构造方法。例如以下两个构造方法是相同的:

          public Test(int a,int[] b){}
          public Test(int b,int[] a){}

    如果一个类声明中不包含构造方法的声明,则系统会自动为该类添加一个构造方法,当然如果类中已声明了构造方法则系统不会添加,这个系统自动添加的构造方法一般被称为默认构造方法,其声明格式如下:

    public 构造方法名称(){}

    所以以下两个代码是相同的:

          public class DefaultConstructor{
              int a;
          }
     和
          public class DefaultConstructor{
              int a;
              public DefaultConstructor(){}
          }

    在第一个代码中,没有声明构造方法,则系统自动添加默认的构造方法,而第二个代码中声明的构造方法和默认构造方法的结构一致,所以两个代码在功能上是完全相同的。

    总之,构造方法是系统提供的一个结构,该结构的功能是实现对于类的变量的初始化,可以根据逻辑的需要声明对应的构造方法,并在构造方法内部根据需要进行具体的初始化。

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接